sqlserver数据库的性能查询?

xiongyu777888 2010-08-27 09:46:36
因业务需要,现要对SqlServer数据库的性能进行监控,比如说:cpu使用情况、内存使用情况、死锁等信息,望各位大虾帮帮忙写出SQL语句!
...全文
282 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengdu2012 2010-08-29
  • 打赏
  • 举报
回复
1、检查SQL阻塞原因
select blocking_session_id, wait_duration_ms, session_id
from sys.dm_os_waiting_tasks
where blocking_session_id is not null

2、检查前10个等待资源的SQL语句
select top 10 *
from sys.dm_os_wait_stats
order by wait_time_ms desc

--3、查询显示 CPU 平均占用率最高的前50个SQL 语句

SELECT TOP 50 total_worker_time/execution_count AS [Avg CPU Time],
(SELECT SUBSTRING(text,statement_start_offset/2,(CASE WHEN statement_end_offset = -1 then
LEN(CONVERT(nvarchar(max), text)) * 2 ELSE statement_end_offset end -statement_start_offset)/2)
FROM sys.dm_exec_sql_text(sql_handle)) AS query_text, *
FROM sys.dm_exec_query_stats
ORDER BY [Avg CPU Time] DESC
4、CPU 瓶颈通常由以下原因引起:查询计划并非最优、配置不当、设计因素不良或硬件资源不足。下面的常用查询可帮助您确定导致CPU瓶颈的原因。下面的查询使您能够深入了解当前缓存的哪些批处理或过程占用了大部分CPU资源。
SELECT TOP 50
SUM(qs.total_worker_time) AS total_cpu_time,
SUM(qs.execution_count) AS total_execution_count,
COUNT(*) AS number_of_statements,
qs.sql_handle
FROM sys.dm_exec_query_stats AS qs
GROUP BY qs.sql_handle
ORDER BY SUM(qs.total_worker_time) DESC
xman_78tom 2010-08-27
  • 打赏
  • 举报
回复
lz 的要求可以通过 windows 系统的性能监视器(perfmon.msc)去做。

用性能监视器跟踪相关的 processor、memory、logicaldisk、sql server:databases、sql server:buffer manager、sql server:locks 性能计数器。
「已注销」 2010-08-27
  • 打赏
  • 举报
回复
我的目的就是做一个日常记录,当客户需要时,能够展示给客户看看!
Mr_Nice 2010-08-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 xiongyu777888 的回复:]
因业务需要,现要对SqlServer数据库的性能进行监控,比如说:cpu使用情况、内存使用情况、死锁等信息,望各位大虾帮帮忙写出SQL语句!
[/Quote]

参考楼上!

性能监控的目的要明确。 监控什么? 日常记录,建立基线? 异常情况,需要追踪?
claro 2010-08-27
  • 打赏
  • 举报
回复
这样的监控没有意义,因为您没有计划。这个计划是指监控的目的,要解决或尝试发现哪些问题?
如果现在你有了一堆数据,关于CPU和内存消耗值,死锁等,接下来呢?
建议不仅要了解从哪些方面入手,还要尝试定性问题。
obuntu 2010-08-27
  • 打赏
  • 举报
回复
http://www.itpub.net/viewthread.php?tid=1328193&page=1#pid16148848

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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