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

adandelion 2007-06-13 09:30:27
我想测试以下两个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
)

...全文
1022 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
---涛声依旧--- 2007-06-15
  • 打赏
  • 举报
回复
我觉得第一种方法快

--内联接
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
)
zjcxc 元老 2007-06-15
  • 打赏
  • 举报
回复
执行计划随数据的变化会有变化的.

所以除非你非常清楚执行计划会怎么来, 否则看现在的执行计划的意义不大
zjcxc 元老 2007-06-15
  • 打赏
  • 举报
回复
数据量大的时候是哪个快
-----------------------------


这个是压力测试了, sql 没有提供有压力测试的工具
GEPIN 2007-06-15
  • 打赏
  • 举报
回复
CTRL+L
adandelion 2007-06-15
  • 打赏
  • 举报
回复
谢谢回复

执行计划 在哪里?

董董 2007-06-14
  • 打赏
  • 举报
回复
查看“执行计划”啊,为什么快,为什么慢,怎么解决,都可以分析出来。当然了,这是需要背景知识和实践经验的。

另外,Quest公司有专门的性能调优解决方案和软件产品,感觉是属于比较傻瓜化的那种。
y_dong119 2007-06-14
  • 打赏
  • 举报
回复
n那就前一个快,我顶

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧