运维联盟俱乐部

 找回密码
 立即注册
12
返回列表 发新帖
楼主: admin

sql server常用查询语句

[复制链接]
  • TA的每日心情
    开心
    2023-8-9 11:05
  •  楼主| 发表于 2020-1-13 22:33:00 | 显示全部楼层
    1. SELECT o.name AS [table_name], i.name AS [index_name], ios.index_id, ios.partition_number,
    2.         SUM(ios.row_lock_wait_count) AS [total_row_lock_waits],
    3.         SUM(ios.row_lock_wait_in_ms) AS [total_row_lock_wait_in_ms],
    4.         SUM(ios.page_lock_wait_count) AS [total_page_lock_waits],
    5.         SUM(ios.page_lock_wait_in_ms) AS [total_page_lock_wait_in_ms],
    6.         SUM(ios.page_lock_wait_in_ms)+ SUM(row_lock_wait_in_ms) AS [total_lock_wait_in_ms]
    7. FROM sys.dm_db_index_operational_stats(DB_ID(), NULL, NULL, NULL) AS ios
    8. INNER JOIN sys.objects AS o WITH (NOLOCK)
    9. ON ios.[object_id] = o.[object_id]
    10. INNER JOIN sys.indexes AS i WITH (NOLOCK)
    11. ON ios.[object_id] = i.[object_id]
    12. AND ios.index_id = i.index_id
    13. WHERE o.[object_id] > 100
    14. GROUP BY o.name, i.name, ios.index_id, ios.partition_number
    15. HAVING SUM(ios.page_lock_wait_in_ms)+ SUM(row_lock_wait_in_ms) > 0
    16. ORDER BY total_lock_wait_in_ms DESC OPTION (RECOMPILE);
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-8-9 11:05
  •  楼主| 发表于 2020-1-13 22:33:42 | 显示全部楼层
    1. WITH DB_CPU_Stats
    2. AS
    3. (SELECT pa.DatabaseID, DB_Name(pa.DatabaseID) AS [Database Name], SUM(qs.total_worker_time/1000) AS [CPU_Time_Ms]
    4. FROM sys.dm_exec_query_stats AS qs WITH (NOLOCK)
    5. CROSS APPLY (SELECT CONVERT(int, value) AS [DatabaseID]
    6.               FROM sys.dm_exec_plan_attributes(qs.plan_handle)
    7.               WHERE attribute = N'dbid') AS pa
    8. GROUP BY DatabaseID)
    9. SELECT ROW_NUMBER() OVER(ORDER BY [CPU_Time_Ms] DESC) AS [CPU Rank],
    10.        [Database Name], [CPU_Time_Ms] AS [CPU Time (ms)],
    11.        CAST([CPU_Time_Ms] * 1.0 / SUM([CPU_Time_Ms]) OVER() * 100.0 AS DECIMAL(5, 2)) AS [CPU Percent]
    12. FROM DB_CPU_Stats
    13. WHERE DatabaseID <> 32767 -- ResourceDB
    14. ORDER BY [CPU Rank] OPTION (RECOMPILE);
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-8-9 11:05
  •  楼主| 发表于 2020-1-13 22:34:10 | 显示全部楼层
    1. SELECT CAST(100.0 * SUM(signal_wait_time_ms) /
    2. SUM (wait_time_ms) AS NUMERIC(20,2)) AS Pct_Signal_CPU_Waits,
    3. 'if Perc_signal_cpu_waits is > 15%, it means we have CPU pressure' as Comment,
    4. CAST(100.0 * SUM(wait_time_ms - signal_wait_time_ms) /
    5. SUM (wait_time_ms) AS NUMERIC(20,2)) AS Pct_Resource_Waits
    6. FROM sys.dm_os_wait_stats
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-8-9 11:05
  •  楼主| 发表于 2020-1-13 22:35:23 | 显示全部楼层
    1. SELECT TOP 10 DB_NAME(qt.dbid) as DBName,
    2. o.name AS ObjectName,
    3. qs.total_worker_time / 1000000 / qs.execution_count AS Avg_MultiCore_CPU_time_sec,
    4. qs.total_worker_time / 1000000 As Total_MultiCore_CPU_time_sec,
    5. qs.total_elapsed_time / 1000000 / qs.execution_count As Average_Seconds,
    6. qs.total_elapsed_time / 1000000 As Total_Seconds,
    7. (total_logical_reads + total_logical_writes) / qs.execution_count as Average_IO,
    8. total_logical_reads + total_logical_writes as Total_IO,
    9. qs.execution_count as Count,
    10. qs.last_execution_time as Time,
    11. SUBSTRING(qt.[text], (qs.statement_start_offset / 2) + 1,
    12. (
    13. (
    14. CASE qs.statement_end_offset
    15. WHEN -1 THEN DATALENGTH(qt.[text])
    16. ELSE qs.statement_end_offset
    17. END - qs.statement_start_offset
    18. ) / 2
    19. ) + 1
    20. ) as Query
    21. --,qt.text
    22. --,qp.query_plan
    23. FROM sys.dm_exec_query_stats AS qs
    24. CROSS APPLY sys.dm_exec_sql_text(qs.[sql_handle]) AS qt
    25. CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) AS qp
    26. LEFT OUTER JOIN sys.objects o ON qt.objectid = o.object_id
    27. where qs.execution_count > 5 --more than 5 occurrences
    28. ORDER BY Total_MultiCore_CPU_time_sec DESC
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-8-9 11:05
  •  楼主| 发表于 2020-1-13 22:36:08 | 显示全部楼层
    1. SELECT TOP 10 DB_NAME(qt.dbid) AS DBName,
    2. o.name AS ObjectName,
    3. qs.total_worker_time / 1000000 / qs.execution_count As Avg_MultiCore_CPU_time_sec,
    4. qs.total_worker_time / 1000000 as Total_MultiCore_CPU_time_sec,
    5. qs.total_elapsed_time / qs.execution_count / 1000000.0 AS Average_Seconds,
    6. qs.total_elapsed_time / 1000000.0 AS Total_Seconds,
    7. qs.execution_count as Count,
    8. qs.last_execution_time as Time,
    9. SUBSTRING (qt.text,qs.statement_start_offset/2,
    10. (CASE WHEN qs.statement_end_offset = -1
    11. THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2
    12. ELSE qs.statement_end_offset END - qs.statement_start_offset)/2) AS Query
    13. --,qt.text
    14. --,qp.query_plan
    15. FROM sys.dm_exec_query_stats qs
    16. CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as qt
    17. CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) AS qp
    18. LEFT OUTER JOIN sys.objects o ON qt.objectid = o.object_id
    19. where last_execution_time > getdate()-1
    20. ORDER BY average_seconds DESC
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-8-9 11:05
  •  楼主| 发表于 2020-1-13 22:36:58 | 显示全部楼层
    1. declare @count int
    2. select @count = count(1) from msdb.dbo.sysjobs as sj
    3. join msdb.dbo.sysjobhistory as sjh on sj.job_id = sjh.job_id
    4. where sj.enabled != 0
    5. and sjh.sql_message_id > 0
    6. and sjh.run_date > CONVERT(char(8), (select dateadd (day,(-1), getdate())), 112)
    7. and sjh.Step_id <= 1
    8. if (@count >= 1)
    9. begin
    10. select distinct sj.name as SQLJobName
    11. from msdb.dbo.sysjobs as sj
    12. join msdb.dbo.sysjobhistory as sjh on sj.job_id = sjh.job_id
    13. where sj.enabled != 0
    14. and sjh.sql_message_id > 0
    15. and sjh.run_date > CONVERT(char(8), (select dateadd (day,(-1), getdate())), 112)
    16. and sjh.Step_id <= 1
    17. order by name
    18. end
    19. else
    20. begin
    21. Select 'No Job Failed in Last 24 Hours' as SQLJobName
    22. end
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-8-9 11:05
  •  楼主| 发表于 2020-1-13 22:37:34 | 显示全部楼层
    1. SELECT TOP (30) bs.machine_name, bs.server_name, bs.database_name AS [Database Name], bs.recovery_model,
    2. CONVERT (BIGINT, bs.backup_size / 1048576 ) AS [Uncompressed Backup Size (MB)],
    3. CONVERT (BIGINT, bs.compressed_backup_size / 1048576 ) AS [Compressed Backup Size (MB)],
    4. CONVERT (NUMERIC (20,2), (CONVERT (FLOAT, bs.backup_size) /
    5. CONVERT (FLOAT, bs.compressed_backup_size))) AS [Compression Ratio],
    6. DATEDIFF (SECOND, bs.backup_start_date, bs.backup_finish_date) AS [Backup Elapsed Time (sec)],
    7. bs.backup_finish_date AS [Backup Finish Date]
    8. FROM msdb.dbo.backupset AS bs WITH (NOLOCK)
    9. WHERE DATEDIFF (SECOND, bs.backup_start_date, bs.backup_finish_date) > 0
    10. AND bs.backup_size > 0
    11. AND bs.[type] = 'D' -- Change to L if you want Log backups
    12. AND database_name = DB_NAME(DB_ID())
    13. ORDER BY bs.backup_finish_date DESC OPTION (RECOMPILE);
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-8-9 11:05
  •  楼主| 发表于 2020-1-13 22:38:12 | 显示全部楼层
    1. exec sp_who 'active';
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-8-9 11:05
  •  楼主| 发表于 2020-1-13 22:38:52 | 显示全部楼层
    1. exec master..xp_msver
    2. EXEC sys.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'HARDWARE\DESCRIPTION\System\CentralProcessor\0', N'ProcessorNameString';
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-8-9 11:05
  •  楼主| 发表于 2020-6-19 23:05:09 | 显示全部楼层
    1. select * from Sys.traces
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-8-9 11:05
  •  楼主| 发表于 2020-6-19 23:07:48 | 显示全部楼层
    1. SELECT
    2.         d.object_id ,
    3.         DB_NAME(d.database_id) DBName ,
    4.         OBJECT_NAME(object_id, database_id) 'SPName' ,
    5.         d.cached_time ,
    6.         d.last_execution_time ,
    7.         d.total_elapsed_time/1000000    AS total_elapsed_time,
    8.         d.total_elapsed_time / d.execution_count/1000000
    9.                                         AS [avg_elapsed_time] ,
    10.         d.last_elapsed_time/1000000     AS last_elapsed_time,
    11.         d.execution_count ,
    12.         d.total_physical_reads ,
    13.         d.last_physical_reads ,
    14.         d.total_logical_writes ,
    15.         d.last_logical_reads ,
    16.         et.text SQLText ,
    17.         eqp.query_plan executionplan
    18. FROM    sys.dm_exec_procedure_stats AS d
    19. CROSS APPLY sys.dm_exec_sql_text(d.sql_handle) et
    20. CROSS APPLY sys.dm_exec_query_plan(d.plan_handle) eqp
    21. WHERE   OBJECT_NAME(object_id, database_id) = 'xxxx'
    22. ORDER BY [total_worker_time] DESC;
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-8-9 11:05
  •  楼主| 发表于 2020-6-19 23:10:30 | 显示全部楼层
    1. declare @tableName varchar(50) = 'LbaListAlertDetail'
    2. declare @tableId int

    3. select @tableId = object_id
    4. from sys.objects
    5. where name = @tableName

    6. SELECT OBJECT_NAME(IX.OBJECT_ID) Table_Name
    7.        ,IX.name AS Index_Name
    8.        ,IX.type_desc Index_Type
    9.        ,SUM(PS.[used_page_count]) * 8 IndexSizeKB
    10.        ,IXUS.user_seeks AS NumOfSeeks
    11.        ,IXUS.user_scans AS NumOfScans
    12.        ,IXUS.user_lookups AS NumOfLookups
    13.        ,IXUS.user_updates AS NumOfUpdates
    14.        ,IXUS.last_user_seek AS LastSeek
    15.        ,IXUS.last_user_scan AS LastScan
    16.        ,IXUS.last_user_lookup AS LastLookup
    17.        ,IXUS.last_user_update AS LastUpdate
    18. FROM sys.indexes IX
    19. INNER JOIN sys.dm_db_index_usage_stats IXUS ON IXUS.index_id = IX.index_id AND IXUS.OBJECT_ID = IX.OBJECT_ID
    20. INNER JOIN sys.dm_db_partition_stats PS on PS.object_id=IX.object_id
    21. WHERE OBJECTPROPERTY(IX.OBJECT_ID,'IsUserTable') = 1
    22.     and IX.OBJECT_ID = @tableId
    23. GROUP BY OBJECT_NAME(IX.OBJECT_ID) ,IX.name ,IX.type_desc ,IXUS.user_seeks ,IXUS.user_scans ,IXUS.user_lookups,IXUS.user_updates ,IXUS.last_user_seek ,IXUS.last_user_scan ,IXUS.last_user_lookup ,IXUS.last_user_update
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-8-9 11:05
  •  楼主| 发表于 2020-6-19 23:13:09 | 显示全部楼层
    1. select name ,size*8/1024 as Totalsize_MB ,CAST(FILEPROPERTY(name,'SpaceUsed') AS int)*8/1024 as Usedsize_MB,
    2. size*8/1024 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)*8/1024 AS Availabesize_MB
    3. from sys.master_files where database_id=db_id(N'DBNAME')
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-8-9 11:05
  •  楼主| 发表于 2020-6-21 08:47:00 | 显示全部楼层
    1. select *
    2. from
    3.     sys.configurations
    复制代码
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    运维联盟俱乐部 ( 冀ICP备19036648号 )

    GMT+8, 2024-5-7 01:43 , Processed in 0.047425 second(s), 16 queries , Gzip On.

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表