Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92201122
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Sybase

2008-04-11 10:58:56

    来源:赛迪网    作者:limeinane

每次向数据库发送语句时,服务器必须首先准备语句。准备语句可以包括:

•语法分析语句并将它转换为内部形式。

•例如,通过检查查询中所指的列是否确实存在,来验证对数据库对象的所有引用的正确性。

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

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

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

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

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

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

1. 准备语句

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

2. 反复执行预准备语句

在这一步,提供每次执行语句时要使用的值。不必每次都准备该语句。

3. 删除语句

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

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

通常,不应该准备那些将只执行一次的语句。单独的准备和执行会产生

轻微的性能损失,并且它会给应用程序带来不必要的复杂性。

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

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

阅读(391) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~