- 浏览: 31348 次
- 性别:
- 来自: 深圳
文章分类
最新评论
--Begin Cpu 分析优化的相关 Sql --使用DMV来分析SQL Server启动以来累计使用CPU资源最多的语句。例如下面的语句就可以列出前50名。 select c.last_execution_time,c.execution_count,c.total_logical_reads,c.total_logical_writes,c.total_elapsed_time,c.last_elapsed_time, q.[text] from (select top 50 qs.* from sys.dm_exec_query_stats qs order by qs.total_worker_time desc) as c cross apply sys.dm_exec_sql_text(plan_handle) as q order by c.total_worker_time desc go
-- 返回最经常运行的100条语句 SELECT TOP 100 cp.cacheobjtype,cp.usecounts,cp.size_in_bytes,qs.statement_start_offset,qs.statement_end_offset,qt.dbid ,qt.objectid ,SUBSTRING(qt.text,qs.statement_start_offset/2, (case when qs.statement_end_offset = -1 then len(convert(nvarchar(max), qt.text)) * 2 else qs.statement_end_offset end -qs.statement_start_offset)/2) as statement FROM sys.dm_exec_query_stats qs cross apply sys.dm_exec_sql_text(qs.sql_handle) as qt inner join sys.dm_exec_cached_plans as cp on qs.plan_handle=cp.plan_handle where cp.plan_handle=qs.plan_handle and cp.usecounts>4 ORDER BY [dbid],[Usecounts] DESC
-- 返回做IO数目最多的50条语句以及它们的执行计划 select top 50 (total_logical_reads/execution_count) as avg_logical_reads, (total_logical_writes/execution_count) as avg_logical_writes, (total_physical_reads/execution_count) as avg_phys_reads, Execution_count, statement_start_offset as stmt_start_offset, statement_end_offset as stmt_end_offset, substring(sql_text.text, (statement_start_offset/2), case when (statement_end_offset -statement_start_offset)/2 <=0 then 64000 else (statement_end_offset -statement_start_offset)/2 end) as exec_statement, sql_text.text,plan_text.* from sys.dm_exec_query_stats cross apply sys.dm_exec_sql_text(sql_handle) as sql_text cross apply sys.dm_exec_query_plan(plan_handle) as plan_text order by (total_logical_reads + total_logical_writes) /Execution_count Desc -- 计算signal wait占整wait时间的百分比 -- 指令等待 CPU 资源的时间占总时间的百分比。如果超过 25% ,说明 CPU 紧张 select convert(numeric(5,4),sum(signal_wait_time_ms)/sum(wait_time_ms)) from Sys.dm_os_wait_stats
-- 计算'Cxpacket'占整wait时间的百分比 -- Cxpacket:Sql Server 在处理一句代价很大的语句,要不就是没有合适的索引或筛选条件没能筛选足够的记录,使得语句要返回大量的结果,当 >5% 说明有问题 declare @Cxpacket bigint declare @Sumwaits bigint select @Cxpacket = wait_time_ms from Sys.dm_os_wait_stats where wait_type = 'Cxpacket' select @Sumwaits = sum(wait_time_ms) from Sys.dm_os_wait_stats select convert(numeric(5,4),@Cxpacket/@Sumwaits)
-- 查询当前数据库上所有用户表格在Row lock上发生阻塞的频率 declare @dbid int select @dbid = db_id() Select dbid=database_id, objectname=object_name(s.object_id) , indexname=i.name, i.index_id --, partition_number , row_lock_count, row_lock_wait_count , [block %]=cast (100.0 * row_lock_wait_count / (1 + row_lock_count) as numeric(15,2)) , row_lock_wait_in_ms , [avg row lock waits in ms]=cast (1.0 * row_lock_wait_in_ms / (1 + row_lock_wait_count) as numeric(15,2)) from sys.dm_db_index_operational_stats (@dbid, NULL, NULL, NULL) s, sys.indexes i where objectproperty(s.object_id,'IsUserTable') = 1 and i.object_id = s.object_id and i.index_id = s.index_id order by row_lock_wait_count desc
--返回sqlserver中最慢的10条语句 select distinct top 10 substring(t.text, (s.statement_start_offset/2)+1, (((case s.statement_end_offset when -1 then datalength(t.text) else s.statement_end_offset end) - s.statement_start_offset)/2) + 1) as SqlText , (case when s.statement_start_offset > 0 then substring(t.text, 0, (s.statement_start_offset/2)+1) else '' end) as SqlParameters , s.execution_count as ExecutionCount , (s.max_elapsed_time/1000) as MaxElapsedTimeMs , (s.min_elapsed_time/1000) as MinElapsedTimeMs , isnull((s.total_elapsed_time/1000) / nullif(s.execution_count, 0), 0) as AvgElapsedTimeMs , s.creation_time as LogCreatedOn , s.last_execution_time as LastExecutionTime , isnull(s.execution_count / nullif(datediff(s, s.creation_time, getdate()), 0), 0) as FrequencyPerSec from sys.dm_exec_query_stats as s cross apply sys.dm_exec_sql_text(s.sql_handle) as t order by isnull((s.total_elapsed_time/1000) / nullif(s.execution_count, 0), 0) desc --End Cpu 分析优化的相关 Sql
发表评论
-
SQLServer2008 Express数据库备份和还原
2012-12-30 12:00 1194BACKUP DATABASE [AdventureWorks ... -
SQL Server 使用索引视图
2012-11-27 12:27 947我们在使用视图的时候有时想怎么能给视图加索引呢,其实,视图和普 ... -
Sql Server数据库全文搜索脚本
2012-07-25 10:24 827---------------------------- ... -
SqlServer2005数据库字典--表结构
2012-07-27 12:48 672SELECT TOP 100 PERCENT --a.i ... -
SqlServer数据库字典--表.视图.函数.存储过程.触发器.主键.外键.约束.规则
2012-07-27 12:48 1201SELECT DISTINCT TOP ... -
SqlServer数据库字典--索引
2012-07-27 12:48 843SELECT TOP 100 PERCENT --a.i ... -
SQL Server 数据库(DB)日常维护总结
2012-07-27 12:48 871以下为个人日常维护总结,进攻参考,不断完善中: 1. ... -
全文索引性能优化
2012-07-27 12:48 655Sql Server 全文索引的性能一直都不是太好,今天 ... -
Sql Server Cpu 100% 的常见原因及优化
2012-07-25 10:26 645Sql Server Cpu 100% 的情况并不太常见 ... -
Sql Server 索引使用情况及优化的相关 Sql
2012-07-25 10:25 821--Begin Index(索引) 分析优化的相关 Sql ... -
监控 SQL Server 的运行状况/使用DMV和DMF分析数据库性能
2012-07-24 17:07 1466Microsoft SQL Server 提供了一些工具来监控 ...
相关推荐
### SQL Server 排查 CPU 占用高情况详解 #### 背景介绍 SQL Server 是一款广泛使用的数据库管理系统,在企业级应用中占有重要地位。然而,在实际的应用场景中,可能会遇到诸如 CPU 使用率异常增高、系统响应变慢等...
本文主要通过一下几个方面介绍:使用SQLDMV查找慢速查询、通过APM解决方案查询报告、SQLServer扩展事件、SQLAzure查询性能洞察等相关内容。本文来自博客园,由火龙果软件Anna编辑、推荐。SQLServer的一个重要功能是...
SQL Server CPU 使用率高排查 在使用 SQL Server 过程中,可能会出现 CPU 使用率高达 100% 的情况,这种情况可能是由于多种原因导致的。下面将从几个方面对此进行分析和排查。 1. Max degree of Parallelism 设置...
"Spotlight on SQL Server"很可能是指一款专门针对SQL Server的监控和性能优化工具,它可以帮助管理员深入了解SQL Server的运行状态,识别并解决性能瓶颈。 1. **SQL Server基础知识**:SQL Server是一个全面的...
总的来说,这个工具集提供了一个强大而全面的解决方案,帮助SQL Server管理员监控系统健康状况,定位性能问题,以及进行故障排查。通过对这些组件的理解和使用,我们可以更有效地管理和优化SQL Server环境,提高系统...
### SQL Server SQL优化 #### 一、SQL优化的重要性与原则 在SQL Server的实际运行过程中,随着数据量的增长和用户访问频率的提升,数据库性能问题逐渐显现。根据所谓的“二八法则”,即大约20%的慢查询消耗了系统...
总的来说,SQL Server 2005/2008 Express Profiler 是一个强大的工具,通过它,你可以有效地监控和优化SQL Server 2008 Express数据库的性能,确保系统稳定运行并解决可能出现的问题。安装文件"SqlExpressProfiler....
8. **性能监控**:部分工具会集成性能监视器,实时展示SQL Server的性能指标,如CPU使用率、内存使用、磁盘I/O等,帮助诊断和优化性能问题。 9. **报表生成**:有的数据库查看器能自动生成报表,展示数据库统计信息...
SQL Server健康检查脚本通常包含一系列查询,这些查询旨在收集关于服务器状态的关键信息,包括但不限于CPU使用率、内存使用情况、磁盘I/O性能、数据库事务日志的增长、备份状况、索引碎片、锁和阻塞等。通过执行这些...
"SQLServer 2012 一键卸载工具"就是为了解决这个问题而设计的,它提供了简洁、方便的方式来移除SQL Server 2012实例。 SQL Server 2012是一个功能强大的关系型数据库管理系统,它包含了多种服务组件,如数据库引擎...
SQL Server和SQL Server Agent服务在Windows事件日志中分别以"MSSQLSERVER"和"SQLSERVERAGENT"作为来源,提供了一定程度的错误和信息记录。 - **SQL Server错误日志**:SQL Server的错误日志与Windows事件日志类似...
《SQL Server数据库巡检手册》是一份详细的指南,旨在帮助管理员对SQL Server环境进行系统性的检查和维护。这份文档发布于2015年9月15日,分为三个主要部分,分别是“巡检报告”、“巡检脚本”和“巡检方法”。通过...
本文提供了逐步指引,使用公开可用的工具如 SQLServer Profiler、性能监视器、DMV、SQLServer 扩充事件和数据收集器来诊断和排查常见性能问题。这些工具可以帮助 DBA 快速地诊断和解决性能问题,从而提高 SQL Server...
综上所述,《Professional SQL Server 2012 Internals and Troubleshooting》这本书深入浅出地介绍了 SQL Server 2012 的各个方面,不仅覆盖了其内部架构和硬件配置,还包括了性能监控和故障排查等多个方面。...
1. **性能监控**:该插件可能提供了一套全面的性能监控工具,帮助管理员实时查看SQL Server的资源使用情况,如CPU、内存、磁盘I/O等,以便及时发现并解决问题。 2. **自动化调整**:sqlassis可能具备自动调整数据库...
1. **定期更新**:保持SQL Server 2008及其相关组件的最新版本。 2. **优化配置**:根据实际需求合理配置服务参数,避免资源浪费或不足。 3. **监控性能**:定期检查服务器性能指标,及时发现并解决问题。 4. **备份...
利用“SQLserver挂起小工具”SQLup.exe,可以简化问题排查和解决的过程,使得非专业人员也能有效地处理这一问题。但为了保证系统的稳定性和安全性,我们在使用这类工具时应遵循正确的操作流程,并保持对最新技术支持...