调优 SQL 过程
2008-09-09 10:03:14 来源:WEB开发网您想学习调优 SQL PL 的一些技巧吗?如果是这样的话,本文将描述一些调优 IBM® DB2® Universal Database™(UDB)V8.2 for Linux,UNIX®, and Windows® 中的 SQL 过程的常见例子,并将特别关注从其他数据库管理系统中移植过来的过程。动机
SQL 过程语言(SQL PL)是许多 DB2 开发人员工具箱中的一个流行工具。当将应用程序从 Oracle、Sybase 或 Microsoft® SQL 服务器迁移或移植到 DB2 中时,更是如此。然而,SQL PL 的即时可用性也给它带来了一些问题:
首先,在许多开发人员的意识中,开发过程逻辑比编写 SQL 要容易得多。因此,虽然已经证明 DB2 是带有最前沿优化器的关系引擎,但它并没有得到充分利用。
其次,诸如 Migration Tool Kit(MTK)之类的自动化工具将生成对 T-SQL 或 PL/SQL 所创建逻辑的 SQL PL 模拟。众所周知,纯粹模拟的性能总是不如其原型。
在前面的文章中,我曾描述了分别利用 SQL PL Profiler 和 SQL 过程跟踪 来发现性能和逻辑问题。本文中,我将使用 SQL PL Profiler 来说明一组慢速 SQL PL 的常见例子,并说明 DB2 V8.2 如何独自优化它们,或者您自己如何可以调优 SQL PL。
普通 SQL 过程
如果您有 Microsoft SQL Server 或 Sybase 方面的背景知识,那么您就会很好地了解这些过程。除了一条 CALL 语句,这个范例的应用程序中将不存在任何 SQL。通过这个范例所认识到的好处有两个:
首先是封装。例如,如果查询十分复杂,就不应重复查询多次,而是应该将它存储在某一个地方。
其次是缓存。存储过程中的代码是预先编译的。而应用程序中的代码通常是动态 代码。
为了解决第一个问题,DB2 支持内联 SQL PL 的概念。DB2 允许将简单逻辑或查询封装在 SQL 函数中。当从调用者执行该 SQL 函数时,其主体就是扩展到调用者中的宏。
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
- ››sql server 2008 在安装了活动目录以后无法启动服...
- ››sqlserver 每30分自动生成一次
- ››sqlite 数据库 对 BOOL型 数据的插入处理正确用法...
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
赞助商链接