常用Sqlserver中的查询语句
/* 連接數(shù) */
select connectnum=count(distinct net_address)-1 from master..sysprocesses
/* 返回一組有關(guān)計(jì)算機(jī)和有關(guān) SQL Server 可用資源及其已占用資源的有用雜項(xiàng)信息 */
?select * from sys.dm_os_sys_info
/* 從操作系統(tǒng)返回內(nèi)存信息 */
select * from sys.dm_os_sys_memory
/* 返回有關(guān)調(diào)用進(jìn)程的虛擬地址空間中的頁范圍的信息 */
select * from sys.dm_os_virtual_address_dump
/* 命令提供了SQL Server的當(dāng)前內(nèi)存狀態(tài)的快照,也可以作為我們分析內(nèi)存瓶頸的重要依據(jù) */
?DBCC MemoryStatus
/* 計(jì)數(shù)器視圖,主要對緩沖區(qū)管理器和內(nèi)存管理器的一些計(jì)數(shù)器進(jìn)行監(jiān)控,比如頁面的生存周期、檢查點(diǎn)、惰性寫入器和緩沖命中率等指標(biāo) */
?select * from sys.dm_os_performance_counters
/* 緩沖池內(nèi)數(shù)據(jù)庫緩沖池中各個數(shù)據(jù)庫的分布情況 */
select case database_id when 32767 then 'resourceDb' else db_name(database_id) end as database_name,count(*) as cached_pages_count from sys.dm_os_buffer_descriptors group by db_name(database_id),database_id order by cached_pages_count desc;
/* 返回?cái)?shù)據(jù)和日志文件的 I/O 統(tǒng)計(jì)信息 */
select * from sys.dm_io_virtual_file_stats(null,null)
/* 當(dāng)前緩存的哪些批處理或過程占用了大部分 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
/* 緩存計(jì)劃所占用的 CPU 總使用率 */
SELECT ????? total_cpu_time, ????? total_execution_count, ????? number_of_statements, ????? s2.text ????? --(SELECT SUBSTRING(s2.text, statement_start_offset / 2, ((CASE WHEN statement_end_offset = -1 THEN (LEN(CONVERT(NVARCHAR(MAX), s2.text)) * 2) ELSE statement_end_offset END) - statement_start_offset) / 2) ) AS query_text FROM ????? (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 --, ??????????? --MIN(statement_start_offset) AS statement_start_offset, ??????????? --MAX(statement_end_offset) AS statement_end_offset ????? FROM ??????????? sys.dm_exec_query_stats AS qs ????? GROUP BY qs.sql_handle ????? ORDER BY SUM(qs.total_worker_time) DESC) AS stats ????? CROSS APPLY sys.dm_exec_sql_text(stats.sql_handle) AS s2
/* 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
/* 查看 CPU、計(jì)劃程序內(nèi)存和緩沖池信息 */
?select cpu_count, hyperthread_ratio, scheduler_count, physical_memory_in_bytes / 1024 / 1024 as physical_memory_mb, virtual_memory_in_bytes / 1024 / 1024 as virtual_memory_mb, bpool_committed * 8 / 1024 as bpool_committed_mb, bpool_commit_target * 8 / 1024 as bpool_target_mb, bpool_visible * 8 / 1024 as bpool_visible_mb from sys.dm_os_sys_info
/* 查詢顯示 SQL 等待分析和前 10 個等待的資源 */
?select top 10 * from sys.dm_os_wait_stats --where wait_type not in ('CLR_SEMAPHORE','LAZYWRITER_SLEEP','RESOURCE_QUEUE','SLEEP_TASK','SLEEP_SYSTEMTASK','WAITFOR') order by wait_time_ms desc
/* 計(jì)算可運(yùn)行狀態(tài)下的工作進(jìn)程數(shù)量,來觀察CPU壓力 */
SELECT COUNT( * ) as workers_waiting_for_cpu FROM sys.dm_os_workers WHERE o.state = 'RUNNABLE' GROUP BY s.scheduler_id
/* 檢查閂鎖等待統(tǒng)計(jì)信息以確定 I/O 瓶頸 */
select wait_type, waiting_tasks_count, wait_time_ms, signal_wait_time_ms, wait_time_ms / waiting_tasks_count from sys.dm_os_wait_stats? where wait_type like 'PAGEIOLATCH%'? and waiting_tasks_count > 0 order by wait_type
/* 系統(tǒng)中的每個工作線程 */
?select * from sys.dm_os_workers
/* 系統(tǒng)中的所有SQLOS工作線程 */
select COUNT(*) from sys.dm_os_threads
/* SQL Server 實(shí)例中的每個活動任務(wù) */
select * from sys.dm_os_tasks
/* 連接的所有用戶名 */
select?? hostname?? from?? master..sysprocesses?? where?? hostname <> ' '?? group?? by?? hostname /* 不同計(jì)算機(jī)連接的用戶數(shù) */ select?? count(distinct(hostname))?? from?? master..sysprocesses?? where?? hostname <> ' ' /* 所有連接的用戶數(shù) */ select?? count(hostname)?? from?? master..sysprocesses?? where?? hostname <> ' '
sp_monitor
sp_who????
Select * from master.dbo.spt_monitor
Select * from sys.dm_os_tasks
?
Select * from master..sysprocesses where hostname <> ' '
Select count(hostname) from master..sysprocesses where hostname <> ' '
Select * from sys.dm_os_tasks
?
Select connectnum=count(distinct net_address)-1 from master..sysprocesses
?
Select connectnum=count(distinct net_address)-1 from master..sysprocesses
?
?
select * from master.dbo.spt_monitor
總結(jié)
以上是生活随笔為你收集整理的常用Sqlserver中的查询语句的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 未能加载文件或程序集“Iesi.Coll
- 下一篇: DelphiXe5中的双向绑定