2、DB2 应用开发入门指南

DB2 应用开发入门指南

1. DB2 动态 SQL 优化

在许多动态编程语言(如 PHP 或 Ruby on Rails)中,SQL 是动态运行的。程序员常常会编写除字段值不同外基本相同的 SQL 语句,例如:

SELECT lastname, salary FROM employee where firstnme = 'Raul'
SELECT lastname, salary FROM employee where firstnme = 'Jin'

DB2 会将这些语句视为不同的动态 SQL 语句,在运行时会分别准备和执行,多次准备相同语句会导致性能下降。在 DB2 9.7 之前,建议使用参数标记来编写语句,如:

SELECT lastname, salary FROM employee where firstnme = ?

使用参数标记后,程序只需准备一次语句,然后通过执行语句为参数标记提供不同的值。

在 DB2 9.7 中,引入了语句集中器技术,它会自动将除字段值外相同的语句合并为一个带参数标记的语句,然后执行不同值的执行语句。不过,语句集中器也能判断何时不合并某些语句,例如当你故意添加一些子句来影响 DB2 优化器时。

在性能方面,静态 SQL 通常比动态 SQL 表现更好,因为静态 SQL 的访问计划是在预编译时确定的,而不是在运行时。但对于有大量插入和删除操作的环境,预编译时计算的统计信息可能过时,导致静态 SQL 的访问计划不是最优的。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值