WEB开发网
开发学院数据库MSSQL Server SQL Server SQL语句调优技巧 阅读

SQL Server SQL语句调优技巧

 2007-05-15 09:27:01 来源:WEB开发网   
核心提示:通过例子和解析计划,本文展示了在Microsoft SQL Server上提高查询效率有效的一些技巧,SQL Server SQL语句调优技巧,在编程中有很多小提示和技巧,了解这些技巧可以扩展你在性能优化上的可用机能,此外,这两种情况伴随着相同的结果集,在这部分里我们所有的例子都选择使用Microsoft SHOWPL

通过例子和解析计划,本文展示了在Microsoft SQL Server上提高查询效率有效的一些技巧。在编程中有很多小提示和技巧。了解这些技巧可以扩展你在性能优化上的可用机能。

在这部分里我们所有的例子都选择使用Microsoft SHOWPLAN_ALL输出,因为它更紧凑并且展示典型的信息。(Sybase的查询计划基本与此相同,可能包含其它一些信息)大部分的例子都是要么基于PUBS数据库,要么基于标准系统表的。我们在PUBS数据库中对用到的表进行了很大扩充,对很多表增加了好几万行。

子查询优化

一条好的值得称赞的规则是尽量用连接代替所有的子查询。优化器有时可以自动将子查询“扁平化”,并且用常规或外连接代替。但那样也不总是有效。明确的连接对选择表的顺序和找到最可能的计划给出了更多的选项。当你优化一个特殊查询时,了解一下是否去掉自查询可产生很大的差异。

示例

下面查询选择了pubs数据库中所有表的名字,以及每个表的聚集索引(如果存在)。如果没有聚集索引,表名仍然显示在列表中,在聚集索引列中显示为虚线。两个查询返回同样的结果集,但第一个使用了一个子查询,而第二个使用一个外连接时。比较Microsoft SQL Server产生的查询计划:

不必更深探索,我们可以看到在CPU和总的实耗时间方面连接更快,仅需要子查询方案逻辑读的一半。此外,这两种情况伴随着相同的结果集,虽然排序的顺序不同,这是因为连接查询(由于它的GROUP BY子句)有一个隐含的ORDER BY:

1 2 3 4 5  下一页

Tags:SQL Server SQL

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