SQL Server 環形緩衝區(Ring Buffer) -- RING_BUFFER_SCHEDULER_MONITOR 擷取SQL

來源:互聯網
上載者:User

標籤:ringbuffer   緩衝區   環形緩衝區   cpu   

SQL Server 環形緩衝區(Ring Buffer) -- RING_BUFFER_SCHEDULER_MONITOR 擷取SQL進程的CPU利用率

環形緩衝區儲存了有關CPU利用率的資訊。這些資訊每分鐘更新一次。所以你可以跟蹤到4小時15分鐘內給定時間點的CPU利用率。下面的輸出顯示了SQL執行個體的CPU利用率和其他活動進程的CPU利用率。這將協助我們分析是否SQL Server進程佔用大量CPU。

 

650) this.width=650;" title="clip_image001" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;" alt="clip_image001" src="http://s3.51cto.com/wyfs02/M00/54/1A/wKiom1R4ES2wosplAAGfFYYma6Y106.jpg" height="226" border="0" />

 

對於SQL Server 2005:

 

declare @ts_now bigintselect @ts_now = cpu_ticks / convert(float, cpu_ticks_in_ms) from sys.dm_os_sys_infoselect record_id,dateadd(ms, -1 * (@ts_now - [timestamp]), GetDate()) as EventTime,SQLProcessUtilization,SystemIdle,100 - SystemIdle - SQLProcessUtilization as OtherProcessUtilizationfrom (selectrecord.value(‘(./Record/@id)[1]‘, ‘int‘) as record_id,record.value(‘(./Record/SchedulerMonitorEvent/SystemHealth/SystemIdle)[1]‘, ‘int‘) as SystemIdle,record.value(‘(./Record/SchedulerMonitorEvent/SystemHealth/ProcessUtilization)[1]‘, ‘int‘) as SQLProcessUtilization,timestampfrom (select timestamp, convert(xml, record) as recordfrom sys.dm_os_ring_bufferswhere ring_buffer_type = N‘RING_BUFFER_SCHEDULER_MONITOR‘and record like ‘%<SystemHealth>%‘) as x) as yorder by record_id desc

 

對於SQL Server 2008:

 

declare @ts_now bigintselect @ts_now = ms_ticks fromsys.dm_os_sys_infoselect record_id, dateadd (ms, (y.[timestamp] [email protected]_now), GETDATE()) as EventTime,SQLProcessUtilization,SystemIdle,100 - SystemIdle - SQLProcessUtilization as OtherProcessUtilizationfrom (selectrecord.value(‘(./Record/@id)[1]‘, ‘int‘) as record_id,record.value(‘(./Record/SchedulerMonitorEvent/SystemHealth/SystemIdle)[1]‘, ‘int‘)as SystemIdle,record.value(‘(./Record/SchedulerMonitorEvent/SystemHealth/ProcessUtilization)[1]‘,‘int‘) as SQLProcessUtilization,timestampfrom (select timestamp, convert(xml, record) as recordfrom sys.dm_os_ring_bufferswhere ring_buffer_type = N‘RING_BUFFER_SCHEDULER_MONITOR‘and record like ‘%<SystemHealth>%‘) as x) as yorder by record_id desc

 

常用SQL指令碼:

 

select      record      ,CAST(record AS XML)      ,CAST(record as XML).value(‘/Record[1]/SchedulerMonitorEvent[1]/SystemHealth[1]/MemoryUtilization[1]‘,‘int‘) as MemUtil      ,CAST(record as XML).value(‘/Record[1]/SchedulerMonitorEvent[1]/SystemHealth[1]/PageFaults[1]‘,‘int‘) as PageFaults       ,CAST(record as XML).value(‘/Record[1]/SchedulerMonitorEvent[1]/SystemHealth[1]/WorkingSetDelta[1]‘,‘int‘) as workingSetDelta        ,CAST(record as XML).value(‘/Record[1]/SchedulerMonitorEvent[1]/SystemHealth[1]/KernelModeTime[1]‘,‘int‘) as KernelModeTime        ,CAST(record as XML).value(‘/Record[1]/SchedulerMonitorEvent[1]/SystemHealth[1]/UserModeTime[1]‘,‘bigint‘) as UserModeTime        ,CAST(record as XML).value(‘/Record[1]/SchedulerMonitorEvent[1]/SystemHealth[1]/ProcessUtilization[1]‘,‘int‘) as ProcessUtilization        ,CAST(record as XML).value(‘/Record[1]/SchedulerMonitorEvent[1]/SystemHealth[1]/SystemIdle[1]‘,‘int‘) as SystemIdle      from sys.dm_os_ring_buffers     where      ring_buffer_type = ‘RING_BUFFER_SCHEDULER_MONITOR‘



本文出自 “滴水石穿” 部落格,請務必保留此出處http://ultrasql.blog.51cto.com/9591438/1583973

SQL Server 環形緩衝區(Ring Buffer) -- RING_BUFFER_SCHEDULER_MONITOR 擷取SQL

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.