SQL 过程的性能: 提示和技巧
2008-09-17 16:29:00 来源:WEB开发网刚开始的时候(DB2 通用数据库 V7 GA),只允许在 SQL 过程中使用 SQL 过程语言(通常称为 SQL PL)。后来(在 DB2 UDB V7.2 中),在 SQL 函数和触发器主体中开始支持该语言的子集。SQL PL 的这个子集即所谓的 内联(inline)SQL PL。“内联”一词突出显示了它与完整语言的重要区别。SQL PL 过程是通过将其单独的 SQL 查询静态地编译成包中的节实现的,而内联 SQL PL 函数就象其名称所展示的,是通过将函数主体内联到使用它的查询中实现的。稍后我们将再看一下内联 SQL PL 及其用法的一些示例。
现在,让我们研究在使用 SQL 过程语言时可用来提高性能的一些具体工作。
在只使用一条语句即可做到时避免使用多条语句
让我们从一个简单的编码技巧开始。如下所示的单个 INSERT 行序列:
INSERT INTO tab_comp VALUES (item1, price1, qty1);
INSERT INTO tab_comp VALUES (item2, price2, qty2);
INSERT INTO tab_comp VALUES (item3, price3, qty3);
可以改写成:
INSERT INTO tab_comp VALUES (item1, price1, qty1),
(item2, price2, qty2),
(item3, price3, qty3);
执行这个多行 INSERT 语句所需时间大约是执行原来三条语句的三分之一。孤立地看,这一改进看起来似乎是微乎其微的,但是,如果这一代码段是重复执行的(例如该代码段位于循环体或触发器体中),那么改进是非常显著的。
类似地,如下所示的 SET 语句序列:
SET A = expr1;
SET B = expr2;
SET C = expr3;
可以写成一条 VALUES 语句:
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接