易客CRM,中小企业最忠实的合作伙伴!

查询sqlserver中比较慢的sql语句

未分类 admin 960℃

今天贝因美的CRM系统出奇的慢,sqlserver经常占用cpu 100%,经分析,只能从sql语句入手,看是不是索引的问题,经研究,在SqlServer2005中通过以下语句找到比较慢的前20条sql语句:
SELECT TOP 20 SUBSTRING(qt.text, (qs.statement_start_offset/2)+1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(qt.text)
ELSE qs.statement_end_offset
END - qs.statement_start_offset)/2)+1),
qs.execution_count,
qs.total_logical_reads, qs.last_logical_reads,
qs.min_logical_reads, qs.max_logical_reads,
qs.total_elapsed_time, qs.last_elapsed_time,
qs.min_elapsed_time, qs.max_elapsed_time,
qs.last_execution_time,
qp.query_plan
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
WHERE qt.encrypted=0
ORDER BY qs.total_logical_reads DESC


原文在这里:http://blog.brianhartsock.com/2008/12/16/quick-and-dirty-sql-server-slow-query-log/

注:mysql可以通过配置my.cnf log_slow_queries来获取慢sql语句
找到比较慢的sql语句,再通过sqlsever 2005的性能分析工具找出原因,根据sqlserver 2005提供的修改建议建索引,部分sql语句的执行性能明显提高了不少,这个方法非常不错。
明天客服上班后继续观察一下系统,看问题是否已解决,Sql Server的问题还有待跟踪。
PS:盖茨 真的不是“盖”的,SqlServer 2005还是非常好用,冲优化这方面必须顶比尔盖茨,:)  .

转载请注明:易客CRM官方博客 » 查询sqlserver中比较慢的sql语句

喜欢 (0)or分享 (0)