SQL Server操作系统相关动态管理对象
sys.dm_os_performance_counters:视图返回SQL Server直接相关的性能统计。
SELECT (
CAST(SUM(CASE LTRIM(RTRIM(counter_name))
WHEN 'Buffer cache hit ratio'
THEN CAST(cntr_value AS INTEGER) ELSE NULL END) AS FLOAT) /
CAST(SUM(CASE LTRIM(RTRIM(counter_name))
WHEN 'Buffer cache hit ratio base'
THEN CAST(cntr_value AS INTEGER) ELSE NULL END) AS FLOAT)
) * 100
AS BufferCacheHitRatio
FROM sys.dm_os_performance_counters
WHERE LTRIM(RTRIM([object_name])) LIKE '%:Buffer Manager' AND
[counter_name] LIKE 'Buffer Cache Hit Ratio%'
索引相关动态管理视图和函数
sys.dm_db_index_physical_stats:这个动态管理函数为数据表格和视图返回相关数据及索引信息。
SELECT * FROM sys.dm_db_index_physical_stats (DB_ID(),
OBJECT_ID('Test'),NULL,NULL, 'DETAILED')
其中avg_page_space_used_in_percent域,它说明数据页面有多大。
执行相关的动态管理视图和函数
sys.dm_exec_requests:显示发生在实例中的每个请求的有关信息。可用此视图查询服务器阻塞。
sys.dm_exec_sessions:SQL Server上每个得到验证的会话由它返回一行。可用此视图找出连接到数据库服务器的所有用户时。
sys.dm_exec_sql_text:sql操作返回SQL Server语句的动态管理函数。
查询数据库中所有当前用户请求执行的会话、阻塞会话、程序、主机和SQL语句:
SELECT r.session_id, r.blocking_session_id, s.program_name,
s.host_name, t.text
FROM sys.dm_exec_requests r
INNER JOIN sys.dm_exec_sessions s ON r.session_id = s.session_id
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) t
WHERE s.is_user_process = 1