Each time a statement is sent to a database, the database server must perform the following steps:
It must parse the statement and transform it into an internal form. This process is sometimes called preparing the statement.
It must verify the correctness of all references to database objects by checking, for example, that columns named in a query actually exist.
If the statement involves joins or subqueries, then the query optimizer generates an access plan.
It executes the statement after all these steps have been carried out.
If you use the same statement repeatedly, for example inserting many rows into a table, repeatedly preparing the statement causes a significant and unnecessary overhead. To remove this overhead, some database programming interfaces provide ways of using prepared statements. A prepared statement is a statement containing a series of placeholders. When you want to execute the statement, assign values to the placeholders, rather than prepare the entire statement over again.
Using prepared statements is useful when carrying out many similar actions, such as inserting many rows.
Generally, using prepared statements requires the following steps:
In general, you should not prepare statements if they are only executed once. There is a slight performance penalty for separate preparation and execution, and it introduces unnecessary complexity into your application.
In some interfaces, however, you do need to prepare a statement to associate it with a cursor.
The calls for preparing and executing statements are not a part of SQL, and they differ from interface to interface. Each of the SAP Sybase IQ programming interfaces provides a method for using prepared statements.