<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      SQL2008數(shù)據(jù)庫優(yōu)化常用腳本

      --查詢某個數(shù)據(jù)庫的連接數(shù)
      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_schedulers
      WHERE scheduler_id < 255

      --表現(xiàn)最差的前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是目前的一個瓶頸。
      --查看進(jìn)程所執(zhí)行的SQL語句

      if (select COUNT(*) from master.dbo.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 a
      CROSS APPLY master.sys.dm_exec_sql_text(a.sql_handle)
      where a.spid = '51'
      dbcc inputbuffer(53)
      with tb
      as
      (
      select blocking_session_id,
      session_id,db_name(database_id) as dbname,text from master.sys.dm_exec_requests a
      CROSS 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_usage8 as 'memory_usage(KB)',
      total_scheduled_time,reads,writes,logical_reads
      from tb a inner join master.sys.dm_exec_sessions b
      on 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

      --當(dāng)前進(jìn)程數(shù)
      select * from master.dbo.sysprocesses
      order by cpu desc

      --查看當(dāng)前活動的進(jìn)程數(shù)
      sp_who active

      --查詢是否由于連接沒有釋放引起CPU過高
      select * from master.dbo.sysprocesses
      where spid> 50
      and waittype = 0x0000
      and waittime = 0
      and status = 'sleeping '
      and last_batch < dateadd(minute, -10, getdate())
      and login_time < dateadd(minute, -10, getdate())

      --強行釋放空連接
      select 'kill ' + rtrim(spid) from master.dbo.sysprocesses
      where spid> 50
      and waittype = 0x0000
      and waittime = 0
      and status = 'sleeping '
      and last_batch < dateadd(minute, -60, getdate())
      and login_time < dateadd(minute, -60, getdate())

      --查看當(dāng)前占用 cpu 資源最高的會話和其中執(zhí)行的語句(及時CPU)
      select spid,cmd,cpu,physical_io,memusage,
      (select top 1 [text] from ::fn_get_sql(sql_handle)) sql_text
      from master..sysprocesses order by cpu desc,physical_io desc

      --查看緩存中重用次數(shù)少,占用內(nèi)存大的查詢語句(當(dāng)前緩存中未釋放的)--全局
      SELECT TOP 100 usecounts, objtype, p.size_in_bytes,[sql].[text]
      FROM sys.dm_exec_cached_plans p OUTER APPLY sys.dm_exec_sql_text (p.plan_handle) sql
      ORDER BY usecounts,p.size_in_bytes desc
      SELECT top 25 qt.text,qs.plan_generation_num,qs.execution_count,dbid,objectid
      FROM sys.dm_exec_query_stats qs
      CROSS APPLY sys.dm_exec_sql_text(sql_handle) as qt
      WHERE plan_generation_num >1
      ORDER BY qs.plan_generation_num
      SELECT top 50 qt.text AS SQL_text ,SUM(qs.total_worker_time) AS total_cpu_time,
      SUM(qs.execution_count) AS total_execution_count,
      SUM(qs.total_worker_time)/SUM(qs.execution_count) AS avg_cpu_time,
      COUNT(*) AS number_of_statements
      FROM sys.dm_exec_query_stats qs
      CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as qt
      GROUP BY qt.text
      ORDER BY total_cpu_time DESC --統(tǒng)計總的CPU時間
      --ORDER BY avg_cpu_time DESC --統(tǒng)計平均單次查詢CPU時間

      -- 計算可運行狀態(tài)下的工作進(jìn)程數(shù)量
      SELECT COUNT(*) as workers_waiting_for_cpu,s.scheduler_id
      FROM sys.dm_os_workers AS o
      INNER JOIN sys.dm_os_schedulers AS s
      ON o.scheduler_address=s.scheduler_address
      AND s.scheduler_id<255
      WHERE o.state='RUNNABLE'
      GROUP BY s.scheduler_id

      --表空間大小查詢
      create table #tb(表名 sysname,記錄數(shù) int,保留空間 varchar(100),使用空間 varchar(100),索引使用空間 varchar(100),未用空間 varchar(100))
      insert into #tb exec sp_MSForEachTable 'EXEC sp_spaceused ''?'''
      select * from #tb
      go
      SELECT
      表名,
      記錄數(shù),
      cast(ltrim(rtrim(replace(保留空間,'KB',''))) as int)/1024 保留空間MB,
      cast(ltrim(rtrim(replace(使用空間,'KB',''))) as int)/1024 使用空間MB,
      cast(ltrim(rtrim(replace(使用空間,'KB',''))) as int)/1024/1024.00 使用空間GB,
      cast(ltrim(rtrim(replace(索引使用空間,'KB',''))) as int)/1024 索引使用空間MB,
      cast(ltrim(rtrim(replace(未用空間,'KB',''))) as int)/1024 未用空間MB
      FROM #tb
      WHERE cast(ltrim(rtrim(replace(使用空間,'KB',''))) as int)/1024 > 0
      --order by 記錄數(shù) desc
      ORDER BY 使用空間MB DESC
      DROP TABLE #tb

      --查詢是否由于連接沒有釋放引起CPU過高
      select * from master.dbo.sysprocesses
      where spid> 50
      and waittype = 0x0000
      and waittime = 0
      and status = 'sleeping '
      and last_batch < dateadd(minute, -10, getdate())
      and login_time < dateadd(minute, -10, getdate())

      --強行釋放空連接
      select 'kill ' + rtrim(spid) from master.dbo.sysprocesses
      where spid> 50
      and waittype = 0x0000
      and waittime = 0
      and status = 'sleeping '
      and last_batch < dateadd(minute, -60, getdate())
      and login_time < dateadd(minute, -60, getdate())

      ----查看當(dāng)前占用 cpu 資源最高的會話和其中執(zhí)行的語句(及時CPU)
      select spid,cmd,cpu,physical_io,memusage,
      (select top 1 [text] from ::fn_get_sql(sql_handle)) sql_text
      from master..sysprocesses order by cpu desc,physical_io desc

      ----查看緩存中重用次數(shù)少,占用內(nèi)存大的查詢語句(當(dāng)前緩存中未釋放的)--全局
      SELECT TOP 100 usecounts, objtype, p.size_in_bytes,[sql].[text]
      FROM sys.dm_exec_cached_plans p OUTER APPLY sys.dm_exec_sql_text (p.plan_handle) sql
      ORDER BY usecounts,p.size_in_bytes desc
      SELECT top 25 qt.text,qs.plan_generation_num,qs.execution_count,dbid,objectid
      FROM sys.dm_exec_query_stats qs
      CROSS APPLY sys.dm_exec_sql_text(sql_handle) as qt
      WHERE plan_generation_num >1
      ORDER BY qs.plan_generation_num
      SELECT top 50 qt.text AS SQL_text ,SUM(qs.total_worker_time) AS total_cpu_time,
      SUM(qs.execution_count) AS total_execution_count,
      SUM(qs.total_worker_time)/SUM(qs.execution_count) AS avg_cpu_time,
      COUNT(*) AS number_of_statements
      FROM sys.dm_exec_query_stats qs
      CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as qt
      GROUP BY qt.text
      ORDER BY total_cpu_time DESC --統(tǒng)計總的CPU時間
      --ORDER BY avg_cpu_time DESC --統(tǒng)計平均單次查詢CPU時間

      -- 計算可運行狀態(tài)下的工作進(jìn)程數(shù)量
      SELECT COUNT(*) as workers_waiting_for_cpu,s.scheduler_id
      FROM sys.dm_os_workers AS o
      INNER JOIN sys.dm_os_schedulers AS s
      ON o.scheduler_address=s.scheduler_address
      AND s.scheduler_id<255
      WHERE o.state='RUNNABLE'
      GROUP BY s.scheduler_id
      SELECT creation_time N'語句編譯時間'
      ,last_execution_time N'上次執(zhí)行時間'
      ,total_physical_reads N'物理讀取總次數(shù)'
      ,total_logical_reads/execution_count N'每次邏輯讀次數(shù)'
      ,total_logical_reads N'邏輯讀取總次數(shù)'
      ,total_logical_writes N'邏輯寫入總次數(shù)'
      , execution_count N'執(zhí)行次數(shù)'
      , total_worker_time/1000 N'所用的CPU總時間ms'
      , total_elapsed_time/1000 N'總花費時間ms'
      , (total_elapsed_time / execution_count)/1000 N'平均時間ms'
      ,SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
      ((CASE statement_end_offset
      WHEN -1 THEN DATALENGTH(st.text)
      ELSE qs.statement_end_offset END
      - qs.statement_start_offset)/2) + 1) N'執(zhí)行語句'
      FROM sys.dm_exec_query_stats AS qs
      CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
      where SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
      ((CASE statement_end_offset
      WHEN -1 THEN DATALENGTH(st.text)
      ELSE qs.statement_end_offset END
      - qs.statement_start_offset)/2) + 1) not like '%fetch%'
      ORDER BY total_elapsed_time / execution_count DESC

      posted @ 2015-04-02 11:30  有安科技  閱讀(40066)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 小嫩模无套内谢第一次| 国产av一区二区不卡| 強壮公弄得我次次高潮A片| 免费无码黄网站在线观看| 国产不卡一区二区精品| 国产成人啪精品午夜网站| 国产综合色精品一区二区三区| 亚洲首页一区任你躁xxxxx| h动态图男女啪啪27报gif| 色欧美片视频在线观看| 激情内射亚洲一区二区三区| 九九热在线视频精品免费| 日韩中文字幕精品人妻| 国产欧美在线一区二区三| 最新亚洲春色av无码专区| 亚洲av天堂综合网久久| 国产精品成人午夜福利| 亚洲 国产 制服 丝袜 一区| 国产在线视频精品视频| 国产综合久久久久久鬼色 | 日韩亚洲欧美中文高清| 亚洲国产成人精品av区按摩| 国产v亚洲v天堂无码久久久| 国产成人精品一区二区不卡| 色欲综合久久中文字幕网| 免费人成网站免费看视频| 国产一区二区视频在线看| 欧洲精品色在线观看| 国产精品综合一区二区三区 | 亚洲国产日韩欧美一区二区三区| 国产羞羞的视频一区二区| 日本高清视频网站www| 少妇人妻综合久久中文字幕| 潮州市| 91国内精品久久精品一本| 狠狠cao日日穞夜夜穞av| 少妇熟女视频一区二区三区| 好男人好资源WWW社区| 通州市| 国产亚洲精品aaaa片app| 麻豆文化传媒精品一区观看|