首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

Sql server 2000/2005 有自带的性能分析工具吗?测试两个SQL语句的性能 多谢

2012-01-03 
Sql server 2000/2005 有自带的性能分析工具吗?测试两个SQL语句的性能 谢谢!我想测试以下两个Sql语句的性

Sql server 2000/2005 有自带的性能分析工具吗?测试两个SQL语句的性能 谢谢!
我想测试以下两个Sql语句的性能,SQL本身有什么工具吗?

事件探查器 也就是profiler   里的   trace   可以根据一个语句的执行时间.发现前者要快些,但不知道数据量大的时候是哪个快,所以需要个工具.


--嵌套
select   a.OS_EFFORT_FORM_id,b.effort_date
from   OS_EFFORT_FORM   as   a   inner   join  
(select   os_effort_form_id,max(effort_date)   as   effort_date  
from   OS_EFFORT_FORM_DETAIL  
group   by   os_effort_form_id   )   as   b     on   a.os_effort_form_id=b.os_effort_form_id  

--内联接
select   a.OS_EFFORT_FORM_id,b.effort_date
from   OS_EFFORT_FORM   as   a   inner   join  
OS_EFFORT_FORM_DETAIL     as   b
  on   a.os_effort_form_id=b.os_effort_form_id  
where   not   exists(
select   1   from   OS_EFFORT_FORM_DETAIL   where   os_effort_form_id   =   b.os_effort_form_id     and   effort_date   > b.effort_date
)



[解决办法]
n那就前一个快,我顶
[解决办法]
查看“执行计划”啊,为什么快,为什么慢,怎么解决,都可以分析出来。当然了,这是需要背景知识和实践经验的。

另外,Quest公司有专门的性能调优解决方案和软件产品,感觉是属于比较傻瓜化的那种。

[解决办法]
CTRL+L
[解决办法]
数据量大的时候是哪个快
-----------------------------


这个是压力测试了, sql 没有提供有压力测试的工具
[解决办法]
我觉得第一种方法快

--内联接
select a.OS_EFFORT_FORM_id,b.effort_date
from OS_EFFORT_FORM as a inner join
OS_EFFORT_FORM_DETAIL as b
on a.os_effort_form_id=b.os_effort_form_id
where not exists(
select TOP 1 --此处最好加上TOP 1
1 from OS_EFFORT_FORM_DETAIL where os_effort_form_id = b.os_effort_form_id and effort_date > b.effort_date
)

热点排行