WEB开发网
开发学院数据库MSSQL Server 调优 SQL 过程 阅读

调优 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 的一些技巧吗?如果是这样的话,本文将描述一些调优 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 函数时,其主体就是扩展到调用者中的宏。

1 2 3 4 5 6  下一页

Tags:SQL 过程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接