Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 编程 » 使用 SQL Anywhere 编程简介 » 在应用程序中使用 SQL

 

准备语句

每次向数据库发送语句时,数据库服务器必须执行以下步骤:

  • 服务器必须分析语句并将其转换为内部形式。这有时称为准备语句。

  • 服务器必须验证对数据库对象的所有引用的正确性,例如通过检查查询中提到的列是否确实存在。

  • 如果语句涉及连接或子查询,则查询优化程序会生成访问计划。

  • 在所有的这些步骤都已经执行之后,它会执行该语句。

重复使用预准备语句可以改善性能

如果要反复使用同一语句,例如,在表中插入多行,那么重复准备语句会产生很大不必要的开销。为消除这种开销,一些数据库编程接口提供了使用预准备语句的方法。预准备语句是包含一系列占位符的语句。当要执行语句时,您所要做的只是给占位符赋值,而不是再次重新准备整个语句。

使用预准备语句在执行多个类似的操作(如插入多行)时特别有用。

一般来讲,使用预准备语句需要执行下面的步骤:

  1. 准备语句

    在这一步,一般都要为语句提供一些占位符而非实际的值。

  2. 反复执行预准备语句

    在此步骤中,提供每次执行语句时要使用的值。不必每次都准备语句。

  3. 删除语句

    在此步骤中,释放与预准备语句关联的资源。一些编程接口会自动处理此步骤。

不要准备那些只使用一次的语句

通常,不应该准备那些将只执行一次的语句。单独的准备和执行会产生轻微的性能损失,并且它会给应用程序带来不必要的复杂性。

然而,在一些接口中,确实需要准备一个语句以将它与游标关联。

有关游标的信息,请参见游标简介

用来准备和执行语句的调用并不是 SQL 的组成部分,并且它们也因接口而异。SQL Anywhere 中的每一个编程接口都提供了使用预准备语句的方法。


如何使用预准备语句