SQL Server 2000优化SELECT语句方法
2007-05-17 09:34:59 来源:WEB开发网核心提示: 相反,考虑下面这个脚本在事务的前后分别捕获时间并以秒的形式报告总持续时间(你也可以使用毫秒):DECLARE @start_time DATETIMESELECT @start_time=GETDATE()<any query or a script thatyou want to
相反,考虑下面这个脚本在事务的前后分别捕获时间并以秒的形式报告总持续时间(你也可以使用毫秒):
DECLARE @start_time DATETIME
SELECT @start_time=GETDATE()
<any query or a script that
you want to time, without a GO>
SELECT ’Elapsed Time,sec’
=DATEDIFF(second, @start_time,GETDATE())
GO
如果你的脚本被GO分成几步,你不能用本地变量来保存开始时间。变量在GO命令执行后就被销毁。但你可以象这样在临时表里保存开始时间。
CREATE TABLE #save_time (start_time DATETIME NOT NULL)
INSERT #save_time VALUES ( GETDATE())
GO
< any script that you want to time (may include GO) >
GO
SELECT ‘Elapsed Time, sec’ =
DATEDIFF ( second, start_time, GETDATE())
FROM TABLE #save_time
DROP TABLE #save_time
GO
请注意,SQL Server’s DATETIME 数据类型存储的时间是以3毫秒为增量。使用DATETIME数据类型不可能获得比这更细的时间粒度。
SHOWPLAN 输出和分析
这篇文章通过explain plan(解析计划)解释Microsoft SQL Server 2000 使用SET SHOWPLAN_TEXT ON 所输出内容的意义和用处。一个explain plan(也被叫做查询计划,执行计划,或者优化计划)提供了数据库查询引擎执行SQL事务的十分详细的步骤。知道如何阅读explain plan有助于提高高端查询调整和最优化的能力。
注:大部分的例子要么是基于PUBS数据库,要么是基于SQL Server系统表的.针对这些实例,我们给很多表增加了好几万条记录以便于在评估查询计划时体现查询优化器的实际作用。
[]
更多精彩
赞助商链接