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

调优 SQL 过程

 2008-09-09 10:03:14 来源:WEB开发网   
核心提示: 第二种方法就是具有专用的处理程序,“捕捉”各条语句所“抛出”的任何或特定错误条件,调优 SQL 过程(5),Java™ 和 C++ 编程人员都熟悉这一概念,SQL/PSM 标准为 SQL 过程语言定义了使用处理程序的第二种方法,

第二种方法就是具有专用的处理程序,“捕捉”各条语句所“抛出”的任何或特定错误条件。Java™ 和 C++ 编程人员都熟悉这一概念。

SQL/PSM 标准为 SQL 过程语言定义了使用处理程序的第二种方法。然而,通常当从 Sybase 或 Microsoft SQL 服务器移植 TSQL 过程时,或当仅仅对 SQL PL 应用 C 技巧时,都可以避免更现代的处理程序方法,而支持更为传统的错误检查方法。

这些情况下要做的事情就是定义一个通用的“万能(catch-all)”处理程序,用于在局部变量中保存所有错误信息。然后,使用过程体中的显式错误处理代码进行错误处理。下面是这种类型的一个简单场景。

调优 SQL 过程

在这个场景中,要处理一条 SELECT INTO 语句。在处理这条语句之前,要重新设置本地错误变量,其代价虽然不高,但仍要花费一些 CPU 时间。然而,问题是用于保存错误变量的 VALUES INTO 语句的花费几乎与 SELECT INTO 语句的一样高。

具有讽刺意味的是,在许多情况下,程序甚至可能不在乎检查 SELECT INTO 的结果是什么,因此,条件处理程序的工作是徒劳的。本例中,将完成以下几件事。

首先,可以显式地检查 NOT FOUND 警告(如果想这样做的话),而不必在局部变量中保存 SQLCODE 和 SQLSTATE。事实的确如此,因为该警告可用于 SQL 过程中的下一条语句。

其次,所有错误或意想不到的警告实际上应该由异常处理程序来处理。除了按照发明者所计划的方式来使用该语言之外,这样做可避免复制和重新设置局部变量。

调优 SQL 过程

可预测的是,上面的调优版本免除了所有处理程序成本,并使性能提高了一倍。

上一页  1 2 3 4 5 6 7  下一页

Tags:SQL 过程

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