Sql Server 查询系统资源的使用情况 (恢复模式, 事务日志的大小等)
2021腾讯云限时秒杀,爆款1核2G云服务器298元/3年!(领取2860元代金券),
地址:https://cloud.tencent.com/act/cps/redirect?redirect=1062
2021阿里云最低价产品入口+领取代金券(老用户3折起),
入口地址:https://www.aliyun.com/minisite/goods
推荐:Sql Server 索引使用情况及优化的相关 Sql
Sql Server 索引使用情况及优化的相关 Sql 语句,非常好的SQL语句,记录于此: --Begin Index(索引) 分析优化的相关 Sql -- 返回当前数据库所有碎片率大于25%
- CPU以及资源等待所占的百分比
-- Clear Wait Stats,清理等待的统计。
--如果你的SQL Server运行很长时间,并且进行了重大改变,例如添加了一个新索引,那么你应该考虑清理旧的统计信息,否则旧的累计统计数据会影响结果。
DBCC SQLPERF('sys.dm_os_wait_stats', CLEAR) ;
-- Total waits are wait_time_ms (high signal waits indicates CPU pressure)
SELECT CAST(100.0 * SUM(signal_wait_time_ms) / SUM(wait_time_ms) AS NUMERIC(20,2)) AS [%signal (cpu) waits] ,
CAST(100.0 * SUM(wait_time_ms - signal_wait_time_ms) / SUM(wait_time_ms) AS NUMERIC(20, 2)) AS [%resource waits]
FROM sys.dm_os_wait_stats ;
此查询可用于帮助确认 CPU 压力。因为信号等待时间等待 CPU 服务线程,如果记录总信号等待它大致大比 10%到 15%,则表明这是一种很好的 CPU 压力指标
- 确定占用时间的最多资源
-- Isolate top waits for server instance since last restart
-- or statistics clear
WITH Waits AS ( SELECT wait_type , wait_time_ms / 1000. AS wait_time_s , 100.* wait_time_ms / SUM(wait_time_ms) OVER ( ) AS pct ,
ROW_NUMBER() OVER ( ORDER BY wait_time_ms DESC ) AS rn
FROM sys.dm_os_wait_stats
WHERE
wait_type NOT IN ( 'CLR_SEMAPHORE', 'LAZYWRITER_SLEEP', 'RESOURCE_QUEUE', 'SLEEP_TASK', 'SLEEP_SYSTEMTASK', 'SQLTRACE_BUFFER_FLUSH', 'WAITFOR', 'LOGMGR_QUEUE',
'CHECKPOINT_QUEUE', 'REQUEST_FOR_DEADLOCK_SEARCH', 'XE_TIMER_EVENT', 'BROKER_TO_FLUSH', 'BROKER_TASK_STOP', 'CLR_MANUAL_EVENT', 'CLR_AUTO_EVENT',
'DISPATCHER_QUEUE_SEMAPHORE', 'FT_IFTS_SCHEDULER_IDLE_WAIT', 'XE_DISPATCHER_WAIT', 'XE_DISPATCHER_JOIN' ) )
SELECT W1.wait_type , CAST(W1.wait_time_s AS DECIMAL(12, 2)) AS wait_time_s , CAST(W1.pct AS DECIMAL(12, 2)) AS pct ,
CAST(SUM(W2.pct) AS DECIMAL(12, 2)) AS running_pct
FROM Waits AS W1
INNER JOIN Waits AS W2 ON W2.rn <= W1.rn
GROUP BY W1.rn , W1.wait_type , W1.wait_time_s , W1.pct
HAVING SUM(W2.pct) - W1.pct < 95 ; -- percentage threshold
此脚本将会帮助您找到实例级最大的瓶颈。这可以帮助您您优化的努力集中在一个特定类型的问题。例如,如果累积顶部等待类型是我/O 有关,磁盘,然后会要调查这一问题进一步使用磁盘相关 DMV 查询和性能监视器计数器。
- 查询数据库恢复模式、 日志重用等待描述、 事务日志的大小、 使用的日志空间、 日志使用百分比、 兼容级别和页面验证
-- Recovery model, log reuse wait description, log file size,
-- log usage size and compatibility level for all databases on instance
SELECT db.[name] AS [Database Name] , db.recovery_model_desc AS [Recovery Model]
, db.log_reuse_wait_desc AS [Log Reuse Wait Description] , ls.cntr_value AS [Log Size (KB)]
,lu.cntr_value AS [Log Used (KB)]
, CAST(CAST(lu.cntr_value AS FLOAT) / CAST(ls.cntr_value AS FLOAT) AS DECIMAL(18,2)) * 100 AS [Log Used %]
, db.[compatibility_level] AS [DB Compatibility Level] , db.page_verify_option_desc AS [Page Verify Option]
FROM sys.databases AS db
INNER JOIN sys.dm_os_performance_counters AS lu ON db.name = lu.instance_name
INNER JOIN sys.dm_os_performance_counters AS ls ON db.name = ls.instance_name
WHERE lu.counter_name LIKE 'Log File(s) Used Size (KB)%' AND
ls.counter_name LIKE 'Log File(s) Size (KB)%' ;
一、查询磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率: 1、查询各个磁盘分区的剩余空间: Exec master.dbo.xp_fixeddrives 2、
相关阅读排行
- 1在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接
- 2Microsoft SQL Server 2008安装图解(Windows 7)
- 3win8系统下安装SQL2005(SQL Server 2005)图文教程
- 4C#连接SQL SERVER数据库的详细步骤!
- 5SQL Server 2008 R2 序列号 key 产品密钥