
SQL中常用的命令语句。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
sql最全的常用命令语句用于查询某个数据库的连接数。`select count(*) from Master.dbo.SysProcesses where dbid=db_id()` -- 前10名其他等待类型 `SELECT TOP 10 * from sys.dm_os_wait_stats ORDER BY wait_time_ms DESC` `SELECT *FROM sys.dm_os_wait_stats WHERE wait_type like PAGELATCH% OR wait_type like LAZYWRITER_SLEEP%` -- CPU的压力
`SELECT scheduler_id, current_tasks_count, runnable_tasks_count FROM sys.dm_os_schedulersWHERE scheduler_id < 255` -- 表现最差的前10名使用查询
`SELECT TOP 10 ProcedureName = t.text, ExecutionCount = s.execution_count, AvgExecutionTime = isnull ( s.total_elapsed_time / s.execution_count, 0 ), AvgWorkerTime = s.total_worker_time / s.execution_count, TotalWorkerTime = s.total_worker_time, MaxLogicalReads = s.max_logical_reads, MaxPhysicalReads = s.max_physical_reads, MaxLogicalWrites = s.max_logical_writes, CreationDateTime = s.creation_time, CallsPerSecond = isnull ( s.execution_count / datediff ( second , s.creation_time, getdate ()), 0 ) FROM sys.dm\_exec\_query\_stats s CROSS APPLY sys.dm\_exec\_sql\_text( s.sql\_handle ) t ORDER BY s.max\_physical\_reads DESC`
`SELECT SUM(signal\_wait\_time\_ms) AS total\_signal\_wait\_time\_ms总信号等待时间 , SUM(wait\_time\_ms - signal\_wait\_time\_ms) AS resource\_wait\_time\_ms资源的等待时间,SUM(signal\_wait\_time\_ms) * 1.0 / SUM (wait\_time\_ms) * 100 AS [signal\_wait\_percent信号等待%],SUM(wait\_time\_ms - signal\_wait\_time\_ms) * 1.0 / SUM (wait\_time\_ms) * 100 AS [resource\_wait\_percent资源等待%]FROM sys.dm\_os\_wait\_\*stats` -- 一个信号等待时间过多对资源的等待时间那么你的CPU是目前的一个瓶颈。
-- 查看进程所执行的SQL语句
if (select COUNT(*) from master.\*sysprocesses) > 500
begin
select text,CROSS APPLY master.\*sys.\*dm\*exec\*sql\*text( a.\*sql\*handle ) from master.\*sys.\*sysprocesses a
end
select text,a.* from master.\*sys.\*sysprocesses aCROSS APPLY master.\*sys.\*dm\*exec\*sql\*text(a.\*sql\*handle) where a.\*spid = 51
dbcc inputbuffer(53) with tbas(select blocking\_\*session\_\*id,session\_\*id,\*\*database\_\*name(database\_\*id)\*\* as dbname,\*\*text\*\* from master.\*\*sys.\*\*dm\*exec\*requests aCROSS APPLY master.\*\*sys.\*\*dm\*exec\*sql\*text(a.\*sql\*handle)\*\)) ,tb1 as(select a.*,\*\*login\_\*time,\*\*program\_\*name,\*\*client\_\*interface\_\*name,\*\*login\_\*name,\*\*cpu\_\*time,\*\*memory\_\*usage \*8 as memory\_\*(KB),\*\*total\_\*scheduled\_\*time,\*\*reads,\*\*writes,\*\*logical\_\*reads from tb a inner join master.\**sys.**dm**exec**sessions** bon a.**session** id=b.**session** id) select a.*,connect** time**,client** tcp** port**,client** net** address from tb1 a inner join master.**sys.**dm**exec**connections b on a.**session** id=b.**session** id -- 当前进程数
select COUNT(*) as workers__waiting__for__cpu ,s.**scheduler** idfrom sys.**dm**os__workers as oinner join sys.**dm**os__schedulers as s on o.**scheduler** address=s.**scheduler** addressand s.**scheduler** id<255where o.**state**=RUNNABLEgroup by s.**scheduler** id
全部评论 (0)


