ืขื˜ืœืขื›ืข ืึทืกืคึผืขืงืฅ ืคื•ืŸ ืžืึธื ื™ื˜ืึธืจื™ื ื’ MS SQL Server. ืจืขืงืึทืžืึทื ื“ื™ื™ืฉืึทื ื– ืคึฟืึทืจ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืฉืคึผื•ืจ ืคืœืึทื’ืก

ื”ืึทื’ื“ืึธืžืข

ื’ืึทื ืฅ ืึธืคื˜, ื ื™ืฆืขืจืก, ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืื•ืŸ ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจืก ืคื•ืŸ MS SQL Server DBMS ื–ืขื ืขืŸ ืคื™ื™ืกื˜ ืžื™ื˜ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคึผืจืึธื‘ืœืขืžืก ืคื•ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืึธื“ืขืจ ื“ื™ DBMS ื•ื•ื™ ืึท ื’ืึทื ืฅ, ืึทื–ื•ื™ ืžืึธื ื™ื˜ืึธืจื™ื ื’ MS SQL Server ืื™ื– ื–ื™ื™ืขืจ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง.
ื“ืขืจ ืึทืจื˜ื™ืงืœ ืื™ื– ืึทืŸ ื“ืขืจืฆื• ืฆื• ื“ืขื ืึทืจื˜ื™ืงืœ ื ื™ืฆืŸ Zabbix ืฆื• ืžืึธื ื™ื˜ืึธืจ ืึท MS SQL Server ื“ืึทื˜ืึทื‘ื™ื™ืก ืื•ืŸ ืขืก ื•ื•ืขื˜ ื•ื ื˜ืขืจื–ื•ื›ืŸ ืขื˜ืœืขื›ืข ืึทืกืคึผืขืงืฅ ืคื•ืŸ ืžืึธื ื™ื˜ืึธืจื™ื ื’ MS SQL Server, ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ: ื•ื•ื™ ืฆื• ื’ืขืฉื•ื•ื™ื ื“ ื‘ืึทืฉืœื™ืกืŸ ื•ื•ืึธืก ืจืขืกื•ืจืกืŸ ื–ืขื ืขืŸ ืคืขืœื ื“ื™ืง, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืจืขืงืึทืžืึทื ื“ื™ื™ืฉืึทื ื– ืคึฟืึทืจ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืึทืจื•ื™ืฃ ืฉืคึผื•ืจ ืคืœืึทื’ืก.
ืคึฟืึทืจ ื“ื™ ืคืืœื’ืขื ื“ืข ืกืงืจื™ืคึผืก ืฆื• ืึทืจื‘ืขื˜ืŸ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉืึทืคึฟืŸ ืึท ื™ื ืค ืกื˜ืฉืขืžืึท ืื™ืŸ ื“ืขืจ ื’ืขื•ื•ืืœื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก ื•ื•ื™ ื’ื™ื™ื˜:
ืงืจื™ื™ื™ื˜ื™ื ื’ ื™ื ืค ืกื˜ืฉืขืžืึท

use <ะธะผั_ะ‘ะ”>;
go
create schema inf;

ืื•ืคึฟืŸ ืคึฟืึทืจ ื“ื™ื˜ืขืงื˜ื™ื ื’ ืคืขืœืŸ ืคื•ืŸ ื‘ืึทืจืึทืŸ

ื“ืขืจ ืขืจืฉื˜ืขืจ ื’ืจืื“ืŸ ืคื•ืŸ ืึท ืคืขืœืŸ ืคื•ืŸ ื‘ืึทืจืึทืŸ ืื™ื– ื•ื•ืขืŸ ืึท ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ MS SQL Server ืขืกื˜ ืึทืœืข ื“ื™ ื‘ืึทืจืึทืŸ ืึทืœืึทืงื™ื™ื˜ื™ื“ ืฆื• ืขืก.
ืฆื• ื˜ืึธืŸ ื“ืึธืก, ืฉืึทืคึฟืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืคืึทืจื˜ืจืขื˜ื•ื ื’ inf.vRAM:
ืงืจื™ื™ื™ื˜ื™ื ื’ ื“ื™ ื™ื ืค.ื•ื•ืจืึทื ืžื™ื™ื ื•ื ื’

CREATE view [inf].[vRAM] as
select a.[TotalAvailOSRam_Mb]						--ัะบะพะปัŒะบะพ ัะฒะพะฑะพะดะฝะพ ะžะ—ะฃ ะฝะฐ ัะตั€ะฒะตั€ะต ะฒ ะœะ‘
		 , a.[RAM_Avail_Percent]					--ะฟั€ะพั†ะตะฝั‚ ัะฒะพะฑะพะดะฝะพะณะพ ะžะ—ะฃ ะฝะฐ ัะตั€ะฒะตั€ะต
		 , a.[Server_physical_memory_Mb]				--ัะบะพะปัŒะบะพ ะฒัะตะณะพ ะžะ—ะฃ ะฝะฐ ัะตั€ะฒะตั€ะต ะฒ ะœะ‘
		 , a.[SQL_server_committed_target_Mb]			--ัะบะพะปัŒะบะพ ะฒัะตะณะพ ะžะ—ะฃ ะฒั‹ะดะตะปะตะฝะพ ะฟะพะด MS SQL Server ะฒ ะœะ‘
		 , a.[SQL_server_physical_memory_in_use_Mb] 		--ัะบะพะปัŒะบะพ ะฒัะตะณะพ ะžะ—ะฃ ะฟะพั‚ั€ะตะฑะปัะตั‚ MS SQL Server ะฒ ะดะฐะฝะฝั‹ะน ะผะพะผะตะฝั‚ ะฒั€ะตะผะตะฝะธ ะฒ ะœะ‘
		 , a.[SQL_RAM_Avail_Percent]				--ะฟะพั†ะตะฝั‚ ัะฒะพะฑะพะดะฝะพะณะพ ะžะ—ะฃ ะดะปั MS SQL Server ะพั‚ะฝะพัะธั‚ะตะปัŒะฝะพ ะฒัะตะณะพ ะฒั‹ะดะตะปะตะฝะฝะพะณะพ ะžะ—ะฃ ะดะปั MS SQL Server
		 , a.[StateMemorySQL]						--ะดะพัั‚ะฐั‚ะพั‡ะฝะพ ะปะธ ะžะ—ะฃ ะดะปั MS SQL Server
		 , a.[SQL_RAM_Reserve_Percent]				--ะฟั€ะพั†ะตะฝั‚ ะฒั‹ะดะตะปะตะฝะฝะพะน ะžะ—ะฃ ะดะปั MS SQL Server ะพั‚ะฝะพัะธั‚ะตะปัŒะฝะพ ะฒัะตะณะพ ะžะ—ะฃ ัะตั€ะฒะตั€ะฐ
		 --ะดะพัั‚ะฐั‚ะพั‡ะฝะพ ะปะธ ะžะ—ะฃ ะดะปั ัะตั€ะฒะตั€ะฐ
		, (case when a.[RAM_Avail_Percent]<10 and a.[RAM_Avail_Percent]>5 and a.[TotalAvailOSRam_Mb]<8192 then 'Warning' when a.[RAM_Avail_Percent]<=5 and a.[TotalAvailOSRam_Mb]<2048 then 'Danger' else 'Normal' end) as [StateMemoryServer]
	from
	(
		select cast(a0.available_physical_memory_kb/1024.0 as int) as TotalAvailOSRam_Mb
			 , cast((a0.available_physical_memory_kb/casT(a0.total_physical_memory_kb as float))*100 as numeric(5,2)) as [RAM_Avail_Percent]
			 , a0.system_low_memory_signal_state
			 , ceiling(b.physical_memory_kb/1024.0) as [Server_physical_memory_Mb]
			 , ceiling(b.committed_target_kb/1024.0) as [SQL_server_committed_target_Mb]
			 , ceiling(a.physical_memory_in_use_kb/1024.0) as [SQL_server_physical_memory_in_use_Mb]
			 , cast(((b.committed_target_kb-a.physical_memory_in_use_kb)/casT(b.committed_target_kb as float))*100 as numeric(5,2)) as [SQL_RAM_Avail_Percent]
			 , cast((b.committed_target_kb/casT(a0.total_physical_memory_kb as float))*100 as numeric(5,2)) as [SQL_RAM_Reserve_Percent]
			 , (case when (ceiling(b.committed_target_kb/1024.0)-1024)<ceiling(a.physical_memory_in_use_kb/1024.0) then 'Warning' else 'Normal' end) as [StateMemorySQL]
		from sys.dm_os_sys_memory as a0
		cross join sys.dm_os_process_memory as a
		cross join sys.dm_os_sys_info as b
		cross join sys.dm_os_sys_memory as v
	) as a;

ื“ืขืจื ืึธืš ืื™ืจ ืงืขื ืขืŸ ื‘ืึทืฉื˜ื™ืžืขืŸ ืึทื– ืึท ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ MS SQL Server ืงืึทื ืกื•ืžื™ื ื’ ืึทืœืข ื“ื™ ื–ื™ืงืึธืจืŸ ืึทืœืึทืงื™ื™ื˜ื™ื“ ืฆื• ืขืก ืžื™ื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ืึธื ืคึฟืจืขื’:

select  SQL_server_physical_memory_in_use_Mb,  SQL_server_committed_target_Mb
from [inf].[vRAM];

ืื•ื™ื‘ ื“ื™ SQL_server_physical_memory_in_use_Mb ื’ืจืื“ืŸ ืื™ื– ืงืขืกื™ื™ื“ืขืจ ื ื™ื˜ ื•ื•ื™ื™ื ื™ืงืขืจ ื•ื•ื™ SQL_server_committed_target_Mb, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ื•ื•ืึทืจื˜ืŸ ืกื˜ืึทื˜ื™ืกื˜ื™ืง.
ืฆื• ื‘ืึทืฉืœื™ืกืŸ ื“ื™ ืคืขืœืŸ ืคื•ืŸ ื‘ืึทืจืึทืŸ ื“ื•ืจืš ื•ื•ืึทืจื˜ืŸ ืกื˜ืึทื˜ื™ืกื˜ื™ืง, ืœืึธื–ืŸ ืื•ื ื“ื– ืžืึทื›ืŸ ืึท ืžื™ื™ื ื•ื ื’ inf.vWaits:
ืงืจื™ื™ื™ื˜ื™ื ื’ ื“ื™ ื™ื ืค.ื•ื•ื•ื•ืึทื™ืฅ ืžื™ื™ื ื•ื ื’

CREATE view [inf].[vWaits] as
WITH [Waits] AS
    (SELECT
        [wait_type], --ะธะผั ั‚ะธะฟะฐ ะพะถะธะดะฐะฝะธั
        [wait_time_ms] / 1000.0 AS [WaitS],--ะžะฑั‰ะตะต ะฒั€ะตะผั ะพะถะธะดะฐะฝะธั ะดะฐะฝะฝะพะณะพ ั‚ะธะฟะฐ ะฒ ะผะธะปะปะธัะตะบัƒะฝะดะฐั…. ะญั‚ะพ ะฒั€ะตะผั ะฒะบะปัŽั‡ะฐะตั‚ signal_wait_time_ms
        ([wait_time_ms] - [signal_wait_time_ms]) / 1000.0 AS [ResourceS],--ะžะฑั‰ะตะต ะฒั€ะตะผั ะพะถะธะดะฐะฝะธั ะดะฐะฝะฝะพะณะพ ั‚ะธะฟะฐ ะฒ ะผะธะปะปะธัะตะบัƒะฝะดะฐั… ะฑะตะท signal_wait_time_ms
        [signal_wait_time_ms] / 1000.0 AS [SignalS],--ะ ะฐะทะฝะธั†ะฐ ะผะตะถะดัƒ ะฒั€ะตะผะตะฝะตะผ ัะธะณะฝะฐะปะธะทะฐั†ะธะธ ะพะถะธะดะฐัŽั‰ะตะณะพ ะฟะพั‚ะพะบะฐ ะธ ะฒั€ะตะผะตะฝะตะผ ะฝะฐั‡ะฐะปะฐ ะตะณะพ ะฒั‹ะฟะพะปะฝะตะฝะธั
        [waiting_tasks_count] AS [WaitCount],--ะงะธัะปะพ ะพะถะธะดะฐะฝะธะน ะดะฐะฝะฝะพะณะพ ั‚ะธะฟะฐ. ะญั‚ะพั‚ ัั‡ะตั‚ั‡ะธะบ ะฝะฐั€ะฐั‰ะธะฒะฐะตั‚ัั ะบะฐะถะดั‹ะน ั€ะฐะท ะฟั€ะธ ะฝะฐั‡ะฐะปะต ะพะถะธะดะฐะฝะธั
        100.0 * [wait_time_ms] / SUM ([wait_time_ms]) OVER() AS [Percentage],
        ROW_NUMBER() OVER(ORDER BY [wait_time_ms] DESC) AS [RowNum]
    FROM sys.dm_os_wait_stats
    WHERE [waiting_tasks_count]>0
		and [wait_type] NOT IN (
        N'BROKER_EVENTHANDLER',         N'BROKER_RECEIVE_WAITFOR',
        N'BROKER_TASK_STOP',            N'BROKER_TO_FLUSH',
        N'BROKER_TRANSMITTER',          N'CHECKPOINT_QUEUE',
        N'CHKPT',                       N'CLR_AUTO_EVENT',
        N'CLR_MANUAL_EVENT',            N'CLR_SEMAPHORE',
        N'DBMIRROR_DBM_EVENT',          N'DBMIRROR_EVENTS_QUEUE',
        N'DBMIRROR_WORKER_QUEUE',       N'DBMIRRORING_CMD',
        N'DIRTY_PAGE_POLL',             N'DISPATCHER_QUEUE_SEMAPHORE',
        N'EXECSYNC',                    N'FSAGENT',
        N'FT_IFTS_SCHEDULER_IDLE_WAIT', N'FT_IFTSHC_MUTEX',
        N'HADR_CLUSAPI_CALL',           N'HADR_FILESTREAM_IOMGR_IOCOMPLETION',
        N'HADR_LOGCAPTURE_WAIT',        N'HADR_NOTIFICATION_DEQUEUE',
        N'HADR_TIMER_TASK',             N'HADR_WORK_QUEUE',
        N'KSOURCE_WAKEUP',              N'LAZYWRITER_SLEEP',
        N'LOGMGR_QUEUE',                N'ONDEMAND_TASK_QUEUE',
        N'PWAIT_ALL_COMPONENTS_INITIALIZED',
        N'QDS_PERSIST_TASK_MAIN_LOOP_SLEEP',
        N'QDS_CLEANUP_STALE_QUERIES_TASK_MAIN_LOOP_SLEEP',
        N'REQUEST_FOR_DEADLOCK_SEARCH', N'RESOURCE_QUEUE',
        N'SERVER_IDLE_CHECK',           N'SLEEP_BPOOL_FLUSH',
        N'SLEEP_DBSTARTUP',             N'SLEEP_DCOMSTARTUP',
        N'SLEEP_MASTERDBREADY',         N'SLEEP_MASTERMDREADY',
        N'SLEEP_MASTERUPGRADED',        N'SLEEP_MSDBSTARTUP',
        N'SLEEP_SYSTEMTASK',            N'SLEEP_TASK',
        N'SLEEP_TEMPDBSTARTUP',         N'SNI_HTTP_ACCEPT',
        N'SP_SERVER_DIAGNOSTICS_SLEEP', N'SQLTRACE_BUFFER_FLUSH',
        N'SQLTRACE_INCREMENTAL_FLUSH_SLEEP',
        N'SQLTRACE_WAIT_ENTRIES',       N'WAIT_FOR_RESULTS',
        N'WAITFOR',                     N'WAITFOR_TASKSHUTDOWN',
        N'WAIT_XTP_HOST_WAIT',          N'WAIT_XTP_OFFLINE_CKPT_NEW_LOG',
        N'WAIT_XTP_CKPT_CLOSE',         N'XE_DISPATCHER_JOIN',
        N'XE_DISPATCHER_WAIT',          N'XE_TIMER_EVENT')
    )
, ress as (
	SELECT
	    [W1].[wait_type] AS [WaitType],
	    CAST ([W1].[WaitS] AS DECIMAL (16, 2)) AS [Wait_S],--ะžะฑั‰ะตะต ะฒั€ะตะผั ะพะถะธะดะฐะฝะธั ะดะฐะฝะฝะพะณะพ ั‚ะธะฟะฐ ะฒ ะผะธะปะปะธัะตะบัƒะฝะดะฐั…. ะญั‚ะพ ะฒั€ะตะผั ะฒะบะปัŽั‡ะฐะตั‚ signal_wait_time_ms
	    CAST ([W1].[ResourceS] AS DECIMAL (16, 2)) AS [Resource_S],--ะžะฑั‰ะตะต ะฒั€ะตะผั ะพะถะธะดะฐะฝะธั ะดะฐะฝะฝะพะณะพ ั‚ะธะฟะฐ ะฒ ะผะธะปะปะธัะตะบัƒะฝะดะฐั… ะฑะตะท signal_wait_time_ms
	    CAST ([W1].[SignalS] AS DECIMAL (16, 2)) AS [Signal_S],--ะ ะฐะทะฝะธั†ะฐ ะผะตะถะดัƒ ะฒั€ะตะผะตะฝะตะผ ัะธะณะฝะฐะปะธะทะฐั†ะธะธ ะพะถะธะดะฐัŽั‰ะตะณะพ ะฟะพั‚ะพะบะฐ ะธ ะฒั€ะตะผะตะฝะตะผ ะฝะฐั‡ะฐะปะฐ ะตะณะพ ะฒั‹ะฟะพะปะฝะตะฝะธั
	    [W1].[WaitCount] AS [WaitCount],--ะงะธัะปะพ ะพะถะธะดะฐะฝะธะน ะดะฐะฝะฝะพะณะพ ั‚ะธะฟะฐ. ะญั‚ะพั‚ ัั‡ะตั‚ั‡ะธะบ ะฝะฐั€ะฐั‰ะธะฒะฐะตั‚ัั ะบะฐะถะดั‹ะน ั€ะฐะท ะฟั€ะธ ะฝะฐั‡ะฐะปะต ะพะถะธะดะฐะฝะธั
	    CAST ([W1].[Percentage] AS DECIMAL (5, 2)) AS [Percentage],
	    CAST (([W1].[WaitS] / [W1].[WaitCount]) AS DECIMAL (16, 4)) AS [AvgWait_S],
	    CAST (([W1].[ResourceS] / [W1].[WaitCount]) AS DECIMAL (16, 4)) AS [AvgRes_S],
	    CAST (([W1].[SignalS] / [W1].[WaitCount]) AS DECIMAL (16, 4)) AS [AvgSig_S]
	FROM [Waits] AS [W1]
	INNER JOIN [Waits] AS [W2]
	    ON [W2].[RowNum] <= [W1].[RowNum]
	GROUP BY [W1].[RowNum], [W1].[wait_type], [W1].[WaitS],
	    [W1].[ResourceS], [W1].[SignalS], [W1].[WaitCount], [W1].[Percentage]
	HAVING SUM ([W2].[Percentage]) - [W1].[Percentage] < 95 -- percentage threshold
)
SELECT [WaitType]
      ,MAX([Wait_S]) as [Wait_S]
      ,MAX([Resource_S]) as [Resource_S]
      ,MAX([Signal_S]) as [Signal_S]
      ,MAX([WaitCount]) as [WaitCount]
      ,MAX([Percentage]) as [Percentage]
      ,MAX([AvgWait_S]) as [AvgWait_S]
      ,MAX([AvgRes_S]) as [AvgRes_S]
      ,MAX([AvgSig_S]) as [AvgSig_S]
  FROM ress
  group by [WaitType];

ืื™ืŸ ื“ืขื ืคืึทืœ, ืื™ืจ ืงืขื ืขืŸ ื‘ืึทืฉืœื™ืกืŸ ื“ื™ ืคืขืœืŸ ืคื•ืŸ ื‘ืึทืจืึทืŸ ืžื™ื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ืึธื ืคึฟืจืขื’:

SELECT [Percentage]
      ,[AvgWait_S]
  FROM [inf].[vWaits]
  where [WaitType] in (
    'PAGEIOLATCH_XX',
    'RESOURCE_SEMAPHORE',
    'RESOURCE_SEMAPHORE_QUERY_COMPILE'
  );

ื“ืึธ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื‘ืึทืฆืึธืœืŸ ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ื˜ ืฆื• ื“ื™ ื™ื ื“ื™ืงืึทื˜ืึธืจืก ืคื•ืŸ ืคึผืจืึธืฆืขื ื˜ ืื•ืŸ AvgWait_S. ืื•ื™ื‘ ื–ื™ื™ ื–ืขื ืขืŸ ื‘ืึทื˜ื™ื™ื˜ื™ืง ืื™ืŸ ื–ื™ื™ืขืจ ื’ืึทื ืฅ, ืขืก ืื™ื– ืึท ื–ื™ื™ืขืจ ื”ื•ื™ืš ืžืึทืฉืžืึธืขืก ืึทื– ื“ื™ MS SQL Server ื‘ื™ื™ึทืฉืคึผื™ืœ ื”ืื˜ ื ื™ืฉื˜ ื’ืขื ื•ื’ ื‘ืึทืจืึทืŸ. ื™ืงืขืจื“ื™ืง ื•ื•ืึทืœื•ืขืก ื–ืขื ืขืŸ ื‘ืืฉืœืืกืŸ ื™ื ื“ื™ื•ื•ื™ื“ื–ืฉื•ืึทืœื™ ืคึฟืึทืจ ื™ืขื“ืขืจ ืกื™ืกื˜ืขื. ืึธื‘ืขืจ, ืื™ืจ ืงืขื ืขืŸ ืึธื ื”ื™ื™ื‘ืŸ ืžื™ื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ื’ืจืื“ืŸ: ืคึผืจืึธืฆืขื ื˜>=1 ืื•ืŸ AvgWait_S>=0.005.
ืฆื• ืจืขื–ื•ืœื˜ืึทื˜ ื™ื ื“ืึทืงื™ื™ื˜ืขืจื– ืฆื• ืึท ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืกื™ืกื˜ืขื (ืœืžืฉืœ, Zabbix), ืื™ืจ ืงืขื ืขืŸ ืžืึทื›ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืฆื•ื•ื™ื™ ืคึฟืจืื’ืŸ:

  1. ื•ื•ืึธืก ืื™ื– ื“ืขืจ ืคึผืจืึธืฆืขื ื˜ ืคื•ืŸ ื•ื•ืึทืจื˜ืŸ ื˜ื™ื™ืคึผืก ืคึฟืึทืจ ื‘ืึทืจืึทืŸ (ืกืึทื›ืึทืงืœ ืคึฟืึทืจ ืึทืœืข ืึทื–ืึท ื•ื•ืึทืจื˜ืŸ ื˜ื™ื™ืคึผืก):
    select coalesce(sum([Percentage]), 0.00) as [Percentage]
    from [inf].[vWaits]
           where [WaitType] in (
               'PAGEIOLATCH_XX',
               'RESOURCE_SEMAPHORE',
                'RESOURCE_SEMAPHORE_QUERY_COMPILE'
      );
    
  2. ื•ื•ื™ ืคื™ืœืข ื‘ืึทืจืึทืŸ ื•ื•ืึทืจื˜ืŸ ื˜ื™ื™ืคึผืก ื ืขืžืขืŸ ืื™ืŸ ืžื™ืœื™ืกืขืงืึทื ื“ื– (ื“ื™ ืžืึทืงืกื™ืžื•ื ื•ื•ืขืจื˜ ืคื•ืŸ ืึทืœืข ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš ื“ื™ืœื™ื™ื– ืคึฟืึทืจ ืึทืœืข ืึทื–ืึท ื•ื•ืึทืจื˜ืŸ ื˜ื™ื™ืคึผืก):
    select coalesce(max([AvgWait_S])*1000, 0.00) as [AvgWait_MS]
    from [inf].[vWaits]
           where [WaitType] in (
               'PAGEIOLATCH_XX',
               'RESOURCE_SEMAPHORE',
                'RESOURCE_SEMAPHORE_QUERY_COMPILE'
      );
    

ื‘ืึทื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ื“ื™ื ืึทืžื™ืง ืคื•ืŸ ื“ื™ ื‘ืืงื•ืžืขืŸ ื•ื•ืึทืœื•ืขืก ืคึฟืึทืจ ื“ื™ ืฆื•ื•ื™ื™ ื™ื ื“ืึทืงื™ื™ื˜ืขืจื–, ืžื™ืจ ืงืขื ืขืŸ ืคืึทืจืขื ื“ื™ืงืŸ ืฆื™ ืขืก ืื™ื– ื’ืขื ื•ื’ ื‘ืึทืจืึทืŸ ืคึฟืึทืจ ื“ื™ MS SQL Server ื‘ื™ื™ึทืฉืคึผื™ืœ.

ืื•ืคึฟืŸ ืคึฟืึทืจ ื“ื™ื˜ืขืงื˜ื™ื ื’ ื™ื‘ืขืจื™ืง ืงืคึผื• ืžืึทืกืข

ืฆื• ื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ืึท ืคืขืœืŸ ืคื•ืŸ ืงืคึผื• ืฆื™ื™ื˜, ื ืึธืจ ื ื•ืฆืŸ ื“ื™ sys.dm_os_schedulers ืกื™ืกื˜ืขื ืžื™ื™ื ื•ื ื’. ื“ืึธ, ืื•ื™ื‘ ื“ื™ runnable_tasks_count ื’ืจืื“ืŸ ืื™ื– ืงืขืกื™ื™ื“ืขืจ ื’ืจืขืกืขืจ ื•ื•ื™ 1, ืขืก ืื™ื– ืึท ื”ื•ื™ืš ืžืึทืฉืžืึธืขืก ืึทื– ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืงืึธืจืขืก ืื™ื– ื ื™ืฉื˜ ื’ืขื ื•ื’ ืคึฟืึทืจ ื“ื™ MS SQL Server ื‘ื™ื™ึทืฉืคึผื™ืœ.
ืฆื• ื•ื•ื™ื™ึทื–ืŸ ืึท ื’ืจืื“ืŸ ืื™ืŸ ืึท ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืกื™ืกื˜ืขื (ืœืžืฉืœ, Zabbix), ืื™ืจ ืงืขื ืขืŸ ืžืึทื›ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื‘ืขื˜ืŸ:

select max([runnable_tasks_count]) as [runnable_tasks_count]
from sys.dm_os_schedulers
where scheduler_id<255;

ื‘ืึทื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ื“ื™ื ืึทืžื™ืง ืคื•ืŸ ื“ื™ ื‘ืืงื•ืžืขืŸ ื•ื•ืึทืœื•ืขืก ืคึฟืึทืจ ื“ืขื ื’ืจืื“ืŸ, ืžื™ืจ ืงืขื ืขืŸ ืคืึทืจืขื ื“ื™ืงืŸ ืฆื™ ืขืก ืื™ื– ื’ืขื ื•ื’ ืคึผืจืึทืกืขืกืขืจ ืฆื™ื™ื˜ (ื ื•ืžืขืจ ืคื•ืŸ ืงืคึผื• ืงืึธืจืขืก) ืคึฟืึทืจ ื“ื™ MS SQL ืกืขืจื•ื•ื™ืจืขืจ ื‘ื™ื™ึทืฉืคึผื™ืœ.
ืึธื‘ืขืจ, ืขืก ืื™ื– ื•ื•ื™ื›ื˜ื™ืง ืฆื• ื’ืขื“ืขื ืงืขืŸ ื“ื™ ืคืึทืงื˜ ืึทื– ื“ื™ ืงื•ื•ื™ืจื™ื– ื–ื™ืš ืงืขื ืขืŸ ืึธื ืคึฟืจืขื’ ืงื™ื™ืคืœ ืคึฟืขื“ืขื ืื™ืŸ ืึทืžืึธืœ. ืื•ืŸ ืžืืœ ื“ื™ ืึธืคึผื˜ื™ืžื™ื–ืขืจ ืงืขื ืขืŸ ื ื™ืฉื˜ ืจื™ื›ื˜ื™ืง ืึธืคึผืฉืึทืฆืŸ ื“ื™ ืงืึทืžืคึผืœืขืงืกื™ื˜ื™ ืคื•ืŸ ื“ื™ ืึธื ืคึฟืจืขื’ ื–ื™ืš. ื“ืขืจื ืึธืš ื“ื™ ื‘ืงืฉื” ืงืขืŸ ื–ื™ื™ืŸ ืึทืœืึทืงื™ื™ื˜ื™ื“ ืฆื• ืคื™ืœืข ืคึฟืขื“ืขื, ื•ื•ืึธืก ืื™ืŸ ืึท ื’ืขื’ืขื‘ืŸ ืฆื™ื™ื˜ ืงืขื ืขืŸ ื ื™ื˜ ื–ื™ื™ืŸ ืคึผืจืึทืกืขืกื˜ ืกื™ื™ืžืึทืœื˜ื™ื™ื ื™ืึทืกืœื™. ืื•ืŸ ื“ืึธืก ืื•ื™ืš ื– ืึท ื˜ื™ืคึผ ืคื•ืŸ ื•ื•ืึทืจื˜ืŸ ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืึท ืคืขืœืŸ ืคื•ืŸ ืคึผืจืึทืกืขืกืขืจ ืฆื™ื™ื˜, ืื•ืŸ ื“ืขืจ ื•ื•ื•ึผืงืก ืคื•ืŸ ื“ืขืจ ืจื™ื™ ืคึฟืึทืจ ืกืงืขื“ื–ืฉื•ืœืขืจื– ื•ื•ืึธืก ื ื•ืฆืŸ ืกืคึผืขืฆื™ืคื™ืฉ ืงืคึผื• ืงืึธืจืขืก, ื“ืึธืก ืื™ื–, ื“ื™ ืจื•ื ื ืึทื‘ืœืข_ื˜ืึทืกืงืก_ืงืึธื•ื ื˜ ื™ื ื“ื™ืงืึทื˜ืึธืจ ื•ื•ืขื˜ ืคืึทืจื’ืจืขืกืขืจืŸ ืื™ืŸ ืึทื–ืึท ื˜ื ืึธื™ื.
ืื™ืŸ ื“ืขื ืคืึทืœ, ืื™ื™ื“ืขืจ ืื™ืจ ืคืึทืจื’ืจืขืกืขืจืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืงืคึผื• ืงืึธืจืขืก, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืจื™ื›ื˜ื™ืง ืงืึทื ืคื™ื’ื™ืขืจ ื“ื™ ืคึผืึทืจืึทืœืขืœื™ืกื ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืคื•ืŸ ื“ื™ MS SQL Server ื‘ื™ื™ืฉืคื™ืœืŸ ื–ื™ืš, ืื•ืŸ ืคึฟื•ืŸ ื•ื•ืขืจืกื™ืข 2016, ืจื™ื›ื˜ื™ืง ืงืึทื ืคื™ื’ื™ืขืจ ื“ื™ ืคึผืึทืจืึทืœืขืœืœื™ืกื ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืคื•ืŸ ื“ื™ ืคืืจืœืื ื’ื˜ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื–:
ืขื˜ืœืขื›ืข ืึทืกืคึผืขืงืฅ ืคื•ืŸ ืžืึธื ื™ื˜ืึธืจื™ื ื’ MS SQL Server. ืจืขืงืึทืžืึทื ื“ื™ื™ืฉืึทื ื– ืคึฟืึทืจ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืฉืคึผื•ืจ ืคืœืึทื’ืก

ืขื˜ืœืขื›ืข ืึทืกืคึผืขืงืฅ ืคื•ืŸ ืžืึธื ื™ื˜ืึธืจื™ื ื’ MS SQL Server. ืจืขืงืึทืžืึทื ื“ื™ื™ืฉืึทื ื– ืคึฟืึทืจ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืฉืคึผื•ืจ ืคืœืึทื’ืก
ื“ืึธ ืื™ืจ ื–ืึธืœ ื‘ืึทืฆืึธืœืŸ ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ึทื˜ ืฆื• ื“ื™ ืคืืœื’ืขื ื“ืข ืคึผืึทืจืึทืžืขื˜ืขืจืก:

  1. ืžืึทืงืก ื’ืจืึทื“ ืคื•ืŸ ืคึผืึทืจืึทืœืขืœื™ื–ื - ืฉื˜ืขืœื˜ ื“ื™ ืžืึทืงืกื™ืžื•ื ื ื•ืžืขืจ ืคื•ืŸ ืคึฟืขื“ืขื ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืึทืœืึทืงื™ื™ื˜ื™ื“ ืฆื• ื™ืขื“ืขืจ ื‘ืงืฉื” (ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืื™ื– 0 - ืœื™ืžื™ื˜ืขื“ ื‘ืœื•ื™ื– ื“ื•ืจืš ื“ื™ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื ื–ื™ืš ืื•ืŸ ื“ื™ ืึทื“ื™ืฉืึทืŸ ืคื•ืŸ MS SQL Server)
  2. ืคึผืจื™ื™ึทื– ืฉื•ื•ืขืœ ืคึฟืึทืจ ืคึผืึทืจืึทืœืขืœื™ื–ื - ืขืกื˜ื™ืžืึทื˜ืขื“ ืงืึธืก ืคื•ืŸ ืคึผืึทืจืึทืœืขืœืœื™ืกื (ืคืขืœื™ืงื™ื™ึทื˜ ืื™ื– 5)
  3. ืžืึทืงืก ื“ืึธืคึผ - ืฉื˜ืขืœื˜ ื“ื™ ืžืึทืงืกื™ืžื•ื ื ื•ืžืขืจ ืคื•ืŸ ืคึฟืขื“ืขื ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืึทืœืึทืงื™ื™ื˜ื™ื“ ืฆื• ื™ืขื“ืขืจ ืึธื ืคึฟืจืขื’ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืžื“ืจื’ื” (ืึธื‘ืขืจ ื ื™ื˜ ืžืขืจ ื•ื•ื™ ื“ื™ ื•ื•ืขืจื˜ ืคื•ืŸ ื“ื™ "ืžืึทืงืก ื“ื™ื’ืจื™ ืคื•ืŸ ืคึผืึทืจืึทืœืขืœื™ื–ื" ืคืึทืจืžืึธื’) (ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ ืขืก ืื™ื– 0 - ืœื™ืžื™ื˜ืขื“ ื‘ืœื•ื™ื– ื“ื•ืจืš ื“ื™ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื ื–ื™ืš ืื•ืŸ ื“ื™ ืึทื“ื™ืฉืึทืŸ ืคื•ืŸ MS SQL Server, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืึท ื‘ืึทื’ืจืขื ืขืฆื•ื ื’ ืื•ื™ืฃ ื“ื™ "ืžืึทืงืก ื“ื™ื’ืจื™ ืคื•ืŸ ืคึผืึทืจืึทืœืขืœืœื™ืกื" ืคืึทืจืžืึธื’ ืคื•ืŸ ื“ื™ ื’ืื ืฆืข MS SQL ืกืขืจื•ื•ื™ืจืขืจ ื‘ื™ื™ึทืฉืคึผื™ืœ)

ืขืก ืื™ื– ืื•ืžืžืขื’ืœืขืš ืฆื• ื’ืขื‘ืŸ ืึทืŸ ื’ืœื™ื™ึทืš ื’ื•ื˜ ืจืขืฆืขืคึผื˜ ืคึฟืึทืจ ืึทืœืข ืงืึทืกืขืก, ื“ืึธืก ืื™ื–, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืคื•ื ืึทื ื“ืขืจืงืœื™ื™ึทื‘ืŸ ืฉื•ื•ืขืจ ืคึฟืจืื’ืŸ.
ื‘ืึทื–ื™ืจื˜ ืื•ื™ืฃ ืžื™ื™ืŸ ืื™ื™ื’ืขื ืข ื“ืขืจืคืึทืจื•ื ื’, ืื™ืš ืจืขืงืึธืžืขื ื“ื™ืจืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืึทืœื’ืขืจื™ื“ืึทื ืคื•ืŸ ืึทืงืฉืึทื ื– ืคึฟืึทืจ OLTP ืกื™ืกื˜ืขืžืขืŸ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ืคึผืึทืจืึทืœืขืœืœื™ืกื ืคึผืจืึธืคึผืขืจื˜ื™ืขืก:

  1. ืขืจืฉื˜ืขืจ ื“ื™ืกื™ื™ื‘ืึทืœ ืคึผืึทืจืึทืœืขืœืœื™ืกื ื“ื•ืจืš ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืžืึทืงืก ื’ืจืึทื“ ืคื•ืŸ ืคึผืึทืจืึทืœืขืœืœื™ืกื ืฆื• 1 ืื•ื™ืฃ ื“ืขืจ ืžื“ืจื’ื” ืคื•ืŸ ื“ื™ ื’ืื ืฆืข ื‘ื™ื™ึทืฉืคึผื™ืœ
  2. ืคื•ื ืึทื ื“ืขืจืงืœื™ื™ึทื‘ืŸ ื“ื™ ื›ืขื•ื•ื™ืึทืกื˜ ืคึฟืจืื’ืŸ ืื•ืŸ ืกืขืœืขืงื˜ื™ืจืŸ ื“ืขื ืึธืคึผื˜ื™ืžืึทืœ ื ื•ืžืขืจ ืคื•ืŸ ืคึฟืขื“ืขื ืคึฟืึทืจ ื–ื™ื™
  3. ืฉื˜ืขืœืŸ ื“ื™ ืžืึทืงืก ื’ืจืึทื“ ืคื•ืŸ ืคึผืึทืจืึทืœืขืœื™ื–ื ืฆื• ื“ื™ ืื•ื™ืกื’ืขืงืœื™ื‘ืŸ ืึธืคึผื˜ื™ืžืึทืœ ื ื•ืžืขืจ ืคื•ืŸ ืคึฟืขื“ืขื ื‘ืืงื•ืžืขืŸ ืคื•ืŸ ืฉืจื™ื˜ 2, ืื•ืŸ ืื•ื™ืš ืคึฟืึทืจ ืกืคึผืขืฆื™ืคื™ืฉ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ืฉื˜ืขืœืŸ ื“ื™ ืžืึทืงืก DOP ื•ื•ืขืจื˜ ื‘ืืงื•ืžืขืŸ ืคื•ืŸ ืฉืจื™ื˜ 2 ืคึฟืึทืจ ื™ืขื“ืขืจ ื“ืึทื˜ืึทื‘ื™ื™ืก
  4. ืคื•ื ืึทื ื“ืขืจืงืœื™ื™ึทื‘ืŸ ื“ื™ ื›ืขื•ื•ื™ืึทืกื˜ ืคึฟืจืื’ืŸ ืื•ืŸ ื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ื“ื™ ื ืขื’ืึทื˜ื™ื•ื• ื•ื•ื™ืจืงื•ื ื’ ืคื•ืŸ ืžื•ืœื˜ื™ื˜ื”ืจืขืึทื“ื™ื ื’. ืื•ื™ื‘ ื“ืึธืก ืื™ื–, ืคืึทืจื’ืจืขืกืขืจืŸ ื“ื™ ืคึผืจื™ื™ึทื– ืฉื•ื•ืขืœ ืคึฟืึทืจ ืคึผืึทืจืึทืœืขืœื™ื–ืึทื.
    ืคึฟืึทืจ ืกื™ืกื˜ืขืžืขืŸ ืึทื–ืึท ื•ื•ื™ 1C, Microsoft CRM ืื•ืŸ Microsoft NAV, ืื™ืŸ ืจื•ื‘ึฟ ืงืึทืกืขืก, ืคึผืจืึธื•ื›ื™ื‘ืึทื˜ื™ื ื’ ืžื•ืœื˜ื™ื˜ื”ืจืขืึทื“ื™ื ื’ ืื™ื– ืคึผืึทืกื™ืง

ืื•ื™ืš, ืื•ื™ื‘ ืื™ืจ ื”ืึธื‘ืŸ ื“ื™ ืกื˜ืึทื ื“ืึทืจื“ ืึทื“ื™ืฉืึทืŸ, ืื™ืŸ ืจื•ื‘ึฟ ืคืืœืŸ, ืึท ืคืึทืจื‘ืึธื˜ ืื•ื™ืฃ ืžื•ืœื˜ื™-ื˜ืจืขื“ื™ื ื’ ืื™ื– ืฆื•ื ืขืžืขืŸ ืจืขื›ื˜ ืฆื• ื“ืขื ืคืึทืงื˜ ืึทื– ื“ื™ ืึทื“ื™ืฉืึทืŸ ืื™ื– ืœื™ืžื™ื˜ืขื“ ืื™ืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืงืคึผื• ืงืึธืจืขืก.
ื“ืขืจ ืึทืœื’ืขืจื™ื“ืึทื ื“ื™ืกืงืจื™ื™ื‘ื“ ืื•ื™ื‘ืŸ ืื™ื– ื ื™ืฉื˜ ืคึผืึทืกื™ืง ืคึฟืึทืจ OLAP ืกื™ืกื˜ืขืžืขืŸ.
ื‘ืึทื–ื™ืจื˜ ืื•ื™ืฃ ืžื™ื™ืŸ ืื™ื™ื’ืขื ืข ื“ืขืจืคืึทืจื•ื ื’, ืื™ืš ืจืขืงืึธืžืขื ื“ื™ืจืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืึทืœื’ืขืจื™ื“ืึทื ืคื•ืŸ ืึทืงืฉืึทื ื– ืคึฟืึทืจ OLAP ืกื™ืกื˜ืขืžืขืŸ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ืคึผืึทืจืึทืœืขืœืœื™ืกื ืคึผืจืึธืคึผืขืจื˜ื™ืขืก:

  1. ืคื•ื ืึทื ื“ืขืจืงืœื™ื™ึทื‘ืŸ ื“ื™ ื›ืขื•ื•ื™ืึทืกื˜ ืคึฟืจืื’ืŸ ืื•ืŸ ืกืขืœืขืงื˜ื™ืจืŸ ื“ืขื ืึธืคึผื˜ื™ืžืึทืœ ื ื•ืžืขืจ ืคื•ืŸ ืคึฟืขื“ืขื ืคึฟืึทืจ ื–ื™ื™
  2. ืฉื˜ืขืœืŸ ื“ื™ ืžืึทืงืก ื’ืจืึทื“ ืคื•ืŸ ืคึผืึทืจืึทืœืขืœื™ื–ื ืฆื• ื“ื™ ืื•ื™ืกื’ืขืงืœื™ื‘ืŸ ืึธืคึผื˜ื™ืžืึทืœ ื ื•ืžืขืจ ืคื•ืŸ ืคึฟืขื“ืขื ื‘ืืงื•ืžืขืŸ ืคื•ืŸ ืฉืจื™ื˜ 1, ืื•ืŸ ืื•ื™ืš ืคึฟืึทืจ ืกืคึผืขืฆื™ืคื™ืฉ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ืฉื˜ืขืœืŸ ื“ื™ ืžืึทืงืก DOP ื•ื•ืขืจื˜ ื‘ืืงื•ืžืขืŸ ืคื•ืŸ ืฉืจื™ื˜ 1 ืคึฟืึทืจ ื™ืขื“ืขืจ ื“ืึทื˜ืึทื‘ื™ื™ืก
  3. ืคื•ื ืึทื ื“ืขืจืงืœื™ื™ึทื‘ืŸ ื“ื™ ื›ืขื•ื•ื™ืึทืกื˜ ืงื•ื•ื™ืจื™ื– ืื•ืŸ ื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ื“ื™ ื ืขื’ืึทื˜ื™ื•ื• ื•ื•ื™ืจืงื•ื ื’ ืคื•ืŸ ืœื™ืžืึทื˜ื™ื ื’ ืงืึทื ืงืขืจืึทื ืกื™. ืื•ื™ื‘ ื“ืึธืก ืื™ื–, ืึธื“ืขืจ ื ื™ื“ืขืจื™ืงืขืจ ื“ืขืจ ืคึผืจื™ื™ึทื– ืฉื•ื•ืขืœ ืคึฟืึทืจ ืคึผืึทืจืึทืœืขืœื™ื–ื ื•ื•ืขืจื˜, ืึธื“ืขืจ ืื™ื‘ืขืจื—ื–ืจืŸ ืกื˜ืขืคึผืก 1-2 ืคื•ืŸ ื“ืขื ืึทืœื’ืขืจื™ื“ืึทื

ื“ืึธืก ืื™ื–, ืคึฟืึทืจ OLTP ืกื™ืกื˜ืขืžืขืŸ ืžื™ืจ ื’ื™ื™ืŸ ืคื•ืŸ ืื™ื™ืŸ-ื˜ืจืขื“ื™ื ื’ ืฆื• ืžื•ืœื˜ื™-ื˜ืจืขื“ื™ื ื’, ืื•ืŸ ืคึฟืึทืจ OLAP ืกื™ืกื˜ืขืžืขืŸ, ืื•ื™ืฃ ื“ื™ ืคืึทืจืงืขืจื˜, ืžื™ืจ ื’ื™ื™ืŸ ืคื•ืŸ ืžื•ืœื˜ื™-ื˜ืจืขื“ื™ื ื’ ืฆื• ืื™ื™ืŸ-ืคึฟืขื“ืขื. ื“ืขื ื•ื•ืขื’ ืื™ืจ ืงืขื ืขืŸ ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ื“ื™ ืึธืคึผื˜ื™ืžืึทืœ ืคึผืึทืจืึทืœืœืขืœื™ืกื ืกืขื˜ื˜ื™ื ื’ืก ื‘ื™ื™ื“ืข ืคึฟืึทืจ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื•ืŸ ืคึฟืึทืจ ื“ื™ ื’ืื ืฆืข MS SQL ืกืขืจื•ื•ื™ืจืขืจ ื‘ื™ื™ึทืฉืคึผื™ืœ.
ืขืก ืื™ื– ืื•ื™ืš ื•ื•ื™ื›ื˜ื™ืง ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ืึทื– ื“ื™ ืกืขื˜ื˜ื™ื ื’ืก ืคื•ืŸ ืงืึทื ืงืขืจืึทื ืกื™ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ื˜ืฉื™ื™ื ื“ื–ืฉื“ ืื™ื‘ืขืจ ืฆื™ื™ื˜, ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืคื•ืŸ ืžืึธื ื™ื˜ืึธืจื™ื ื’ ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ MS SQL Server.

ืจืขืงืึทืžืึทื ื“ื™ื™ืฉืึทื ื– ืคึฟืึทืจ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืฉืคึผื•ืจ ืคืœืึทื’ืก

ืคึฟื•ืŸ ืžื™ื™ืŸ ืื™ื™ื’ืขื ืข ื“ืขืจืคืึทืจื•ื ื’ ืื•ืŸ ื“ืขืจ ื“ืขืจืคืึทืจื•ื ื’ ืคื•ืŸ ืžื™ื™ืŸ ื—ื‘ืจื™ื, ืคึฟืึทืจ ืึธืคึผื˜ื™ืžืึทืœ ืคืึธืจืฉื˜ืขืœื•ื ื’, ืื™ืš ืจืขืงืึธืžืขื ื“ื™ืจืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืฉืคึผื•ืจ ืคืœืึทื’ืก ืื•ื™ืฃ ื“ื™ MS SQL Server ืœื•ื™ืคืŸ ืžื“ืจื’ื” ืคึฟืึทืจ 2008-2016 ื•ื•ืขืจืกื™ืขืก:

  1. 610 - ืจืขื“ื•ืฆื™ืจืŸ ืœืึธื’ื™ื ื’ ืคื•ืŸ ื™ื ืกืขืจืฅ ืื™ืŸ ื™ื ื“ืขืงืกื˜ ื˜ื™ืฉืŸ. ืงืขื ืขืŸ ื”ืขืœืคึฟืŸ ืžื™ื˜ ื™ื ืกืขืจืฅ ืื™ืŸ ื˜ื™ืฉืŸ ืžื™ื˜ ืึท ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ ืจืขืงืึธืจื“ืก ืื•ืŸ ืคื™ืœืข ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–, ืžื™ื˜ ืึธืคื˜ ืœืึทื ื’ WRITELOG ื•ื•ื™ื™ืฅ ืคึฟืึทืจ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ื™ื ื“ืขืงืกื™ื–
  2. 1117 - ืื•ื™ื‘ ืึท ื˜ืขืงืข ืื™ืŸ ืึท ืคื™ืœืขื’ืจืึธื•ืคึผ ืžื™ืฅ ื“ื™ ืึทื•ื˜ืึธ-ื•ื•ืึทืงืกืŸ ืฉื•ื•ืขืœ, ืึทืœืข ื˜ืขืงืขืก ืื™ืŸ ื“ืขืจ ืคื™ืœืขื’ืจื•ืคึผ ื–ืขื ืขืŸ ื“ืขืจื•ื•ืึทืงืกืŸ
  3. 1118 - ืคืึธืจืกืขืก ืึทืœืข ืึทื‘ื“ื–ืฉืขืงืฅ ืฆื• ื–ื™ื™ืŸ ืœื™ื’ืŸ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืžืึธืก (ื“ื™ืกืึทืœืึธื•ื– ื’ืขืžื™ืฉื˜ ืžืึธืก), ื•ื•ืึธืก ืžื™ื ืึทืžื™ื™ื–ืึทื– ื“ื™ ื ื•ื™ื˜ ืฆื• ื™ื‘ืขืจืงื•ืงืŸ ื“ื™ SGAM ื‘ืœืึทื˜, ื•ื•ืึธืก ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ืฉืคึผื•ืจ ื’ืขืžื™ืฉื˜ ืžืึธืก.
  4. 1224 - ื“ื™ืกื™ื™ื‘ืึทืœื– ืฉืœืึธืก ืขืกืงืึทืœื™ืจื•ื ื’ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืฉืœืึธืก ืฆื™ื™ืœืŸ. ืึธื‘ืขืจ, ื™ื‘ืขืจื™ืง ื–ื™ืงืึธืจืŸ ื‘ืึทื ื™ืฅ ืงืขื ืขืŸ ื’ืขื‘ืŸ ืฉืœืึธืก ืขืกืงืึทืœื™ืจื•ื ื’
  5. 2371 - ืขื ื“ืขืจื•ื ื’ืขืŸ ื“ื™ ืคืึทืจืคืขืกื˜ื™ืงื˜ ืึธื˜ืึทืžืึทื˜ื™ืง ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืฉื•ื•ืขืœ ืคื•ืŸ ืกื˜ืึทื˜ื™ืกื˜ื™ืง ืฆื• ื“ื™ ื“ื™ื ืึทืžื™ืฉ ืึธื˜ืึทืžืึทื˜ื™ืง ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืฉื•ื•ืขืœ ืคื•ืŸ ืกื˜ืึทื˜ื™ืกื˜ื™ืง. ื•ื•ื™ื›ื˜ื™ืง ืคึฟืึทืจ ืึทืคึผื“ื™ื™ื˜ื™ื ื’ ืึธื ืคึฟืจืขื’ ืคึผืœืึทื ื– ืื•ื™ืฃ ื’ืจื•ื™ืก ื˜ื™ืฉืŸ, ื•ื•ื• ื™ื ืงืขืจืขืงื˜ืœื™ ื“ื™ืคื™ื™ื ื™ื ื’ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืจืขืงืึธืจื“ืก ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืื™ืŸ ืขืจืึธื•ื ื™ืึทืก ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคึผืœืึทื ื–
  6. 3226 - ืกืึทืคึผืจืขืกื™ื– ื‘ืึทืงืึทืคึผ ื”ืฆืœื—ื” ืึทืจื˜ื™ืงืœืขืŸ ืื™ืŸ ื“ื™ ื˜ืขื•ืช ืงืœืึธืฅ
  7. 4199 - ื™ื ืงืœื•ื“ื– ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ื“ื™ ืึธื ืคึฟืจืขื’ ืึธืคึผื˜ื™ืžื™ื–ืขืจ ืจืขืœืขืึทืกืขื“ ืื™ืŸ SQL Server ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืจืึธืœืœืึทืคึผืก ืื•ืŸ ืกืขืจื•ื•ื™ืก ืคึผืึทืงืก
  8. 6532-6534 - ื™ื ืงืœื•ื“ื– ืคืึธืจืฉื˜ืขืœื•ื ื’ ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ ืคึฟืึทืจ ืงื•ื•ื™ืจื™ื– ืžื™ื˜ ืกืคึผื™ื™ืฉืึทืœ ื“ืึทื˜ืŸ ื˜ื™ื™ืคึผืก
  9. 8048 - ืงืึทื ื•ื•ืขืจืฅ NUMA-ืคึผืึทืจื˜ื™ื˜ืฉืึทื ื“ ื–ื™ืงืึธืจืŸ ืึทื‘ื“ื–ืฉืขืงืฅ ืฆื• ืงืคึผื•-ืคึผืึทืจื˜ื™ื˜ืฉืึทื ื“ ืึธื ืขืก
  10. 8780 - ื™ื ื™ื™ื‘ืึทืœื– ื ืึธืš ืฆื™ื™ื˜ ืึทืœืึทืงื™ื™ืฉืึทืŸ ืคึฟืึทืจ ืึธื ืคึฟืจืขื’ ืคึผืœืึทื ื™ืจื•ื ื’. ืขื˜ืœืขื›ืข ืจื™ืงื•ื•ืขืก ืึธืŸ ื“ืขื ืคืึธืŸ ืงืขืŸ ื–ื™ื™ืŸ ืคืืจื•ื•ืืจืคืŸ ื•ื•ื™ื™ึทืœ ื–ื™ื™ ื˜ืึธืŸ ื ื™ื˜ ื”ืึธื‘ืŸ ืึท ืึธื ืคึฟืจืขื’ ืคึผืœืึทืŸ (ืึท ื–ื™ื™ืขืจ ื–ืขืœื˜ืŸ ื˜ืขื•ืช)
  11. 8780 - 9389 - ื™ื ื™ื™ื‘ืึทืœื– ืึทืŸ ื ืึธืš ื“ื™ื ืึทืžื™ืฉ ืฆื™ื™ึทื˜ื•ื•ื™ื™ึทืœื™ืง ื–ื›ึผืจื•ืŸ ื‘ืึทืคืขืจ ืคึฟืึทืจ ืคึผืขืงืœ ืžืึธื“ืข ืึธืคึผืขืจื™ื™ื˜ืขืจื–, ืึทืœืึทื•ื™ื ื’ ื“ื™ ืคึผืขืงืœ ืžืึธื“ืข ืึธืคึผืขืจืึทื˜ืึธืจ ืฆื• ื‘ืขื˜ืŸ ื ืึธืš ื–ื›ึผืจื•ืŸ ืื•ืŸ ื•ื™ืกืžื™ื™ื“ืŸ ื˜ืจืึทื ืกืคืขืจื™ื ื’ ื“ืึทื˜ืŸ ืฆื• tempdb ืื•ื™ื‘ ื ืึธืš ื–ื›ึผืจื•ืŸ ืื™ื– ื‘ื ื™ืžืฆื

ืขืก ืื™ื– ืื•ื™ืš ื ื•ืฆื™ืง ืฆื• ื’ืขื‘ืŸ ืฉืคึผื•ืจ ืคืึธืŸ 2016 ืื™ื™ื“ืขืจ ื•ื•ืขืจืกื™ืข 2301, ื•ื•ืึธืก ื™ื ื™ื™ื‘ืึทืœื– ืึทื•ื•ืึทื ืกื™ืจื˜ืข ื‘ืึทืฉืœื•ืก ืฉื˜ื™ืฆืŸ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืื•ืŸ ืึทื–ื•ื™ ื”ืขืœืคึผืก ืฆื• ืงืœื™ื™ึทื‘ืŸ ื‘ืขืกืขืจ ืึธื ืคึฟืจืขื’ ืคึผืœืึทื ื–. ืึธื‘ืขืจ, ื–ื™ื ื˜ ื•ื•ืขืจืกื™ืข 2016, ืขืก ืึธืคื˜ ื”ืื˜ ืึท ื ืขื’ืึทื˜ื™ื•ื• ื•ื•ื™ืจืงื•ื ื’ ืื•ื™ืฃ ื’ืึทื ืฅ ืœืึทื ื’ ืงื•ื™ืœืขืœื“ื™ืง ืึธื ืคึฟืจืขื’ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืฆื™ื™ื˜.
ืื•ื™ืš, ืคึฟืึทืจ ืกื™ืกื˜ืขืžืขืŸ ืžื™ื˜ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ื™ื ื“ืขืงืกื™ื– (ืœืžืฉืœ ืคึฟืึทืจ 1C ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื–), ืื™ืš ืจืขืงืึธืžืขื ื“ื™ืจืŸ ืฆื• ื’ืขื‘ืŸ ืฉืคึผื•ืจ ืคืึธืŸ 2330, ื•ื•ืึธืก ื“ื™ืกื™ื™ื‘ืึทืœื– ื–ืึทืžืœื•ื ื’ ืคื•ืŸ ืื™ื ื“ืขืงืก ื‘ืึทื ื™ืฅ, ื•ื•ืึธืก ื‘ื›ืœืœ ื”ืื˜ ืึท positive ื•ื•ื™ืจืงื•ื ื’ ืื•ื™ืฃ ื“ื™ ืกื™ืกื˜ืขื.
ืื™ืจ ืงืขื ืขืŸ ืœืขืจื ืขืŸ ืžืขืจ ื•ื•ืขื’ืŸ ืคืœืึทื’ืก ืื•ื™ืฃ ืฉืคึผื•ืจ ื“ืึธ
ืคึฟื•ืŸ ื“ืขื ืœื™ื ืง ืื•ื™ื‘ืŸ, ืขืก ืื™ื– ืื•ื™ืš ื•ื•ื™ื›ื˜ื™ืง ืฆื• ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื“ื™ ื•ื•ืขืจืกื™ืขืก ืื•ืŸ ื‘ื•ื™ืขืŸ ืคื•ืŸ MS SQL Server, ื•ื•ื™ ืคึฟืึทืจ ื ื™ื™ึทืขืจ ื•ื•ืขืจืกื™ืขืก, ืขื˜ืœืขื›ืข ืฉืคึผื•ืจ ืคืœืึทื’ืก ื–ืขื ืขืŸ ืขื ื™ื™ื‘ืึทืœื“ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ ืึธื“ืขืจ ื”ืึธื‘ืŸ ืงื™ื™ืŸ ื•ื•ื™ืจืงื•ื ื’.
ืื™ืจ ืงืขื ืขืŸ ื’ืขื‘ืŸ ืึธื“ืขืจ ื“ื™ืกื™ื™ื‘ืึทืœ ื“ื™ ืฉืคึผื•ืจ ืคืึธืŸ ืžื™ื˜ ื“ื™ DBCC TRACEON ืื•ืŸ DBCC TRACEOFF ืงืึทืžืึทื ื“ื– ืจื™ืกืคึผืขืงื˜ื™ื•ื•ืœื™. ื–ืขืŸ ืžืขืจ ื“ืขื˜ืึทื™ืœืก ื“ืึธ
ืื™ืจ ืงืขื ืขืŸ ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืกื˜ืึทื˜ื•ืก ืคื•ืŸ ืฉืคึผื•ืจ ืคืœืึทื’ืก ื ื™ืฆืŸ ื“ื™ DBCC TRACESTATUS ื‘ืึทืคึฟืขืœ: ืžืขืจ
ืื™ืŸ ืกื“ืจ ืคึฟืึทืจ ืฉืคึผื•ืจ ืคืœืึทื’ืก ืฆื• ื–ื™ื™ืŸ ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ื“ื™ ืึทื•ื˜ืึธืกื˜ืึทืจื˜ ืคื•ืŸ ื“ื™ MS SQL Server ื“ื™ื ืกื˜, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื’ื™ื™ืŸ ืฆื• SQL Server Configuration Manager ืื•ืŸ ืœื™ื™ื’ืŸ ื“ื™ ืฉืคึผื•ืจ ืคืœืึทื’ืก ื“ื•ืจืš -T ืื™ืŸ ื“ื™ ืกืขืจื•ื•ื™ืก ืคึผืจืึธืคึผืขืจื˜ื™ืขืก:
ืขื˜ืœืขื›ืข ืึทืกืคึผืขืงืฅ ืคื•ืŸ ืžืึธื ื™ื˜ืึธืจื™ื ื’ MS SQL Server. ืจืขืงืึทืžืึทื ื“ื™ื™ืฉืึทื ื– ืคึฟืึทืจ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืฉืคึผื•ืจ ืคืœืึทื’ืก

ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืคื•ืŸ

ื“ืขืจ ืึทืจื˜ื™ืงืœ ื™ื’ื–ืึทืžืึทื ื“ ืขื˜ืœืขื›ืข ืึทืกืคึผืขืงืฅ ืคื•ืŸ ืžืึธื ื™ื˜ืึธืจื™ื ื’ MS SQL Server, ืžื™ื˜ ื“ื™ ื”ื™ืœืฃ ืคื•ืŸ ื•ื•ืึธืก ืื™ืจ ืงืขื ืขืŸ ื’ืขืฉื•ื•ื™ื ื“ ื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ืึท ืคืขืœืŸ ืคื•ืŸ ื‘ืึทืจืึทืŸ ืื•ืŸ ืคืจื™ื™ ืงืคึผื• ืฆื™ื™ื˜, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืึท ื ื•ืžืขืจ ืคื•ืŸ ืื ื“ืขืจืข ื•ื•ื™ื™ื ื™ืงืขืจ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ืคึผืจืึธื‘ืœืขืžืก. ื“ื™ ืžืขืจืกื˜ ืึธืคื˜ ื’ืขื ื™ืฆื˜ ืฉืคึผื•ืจ ืคืœืึทื’ืก ื–ืขื ืขืŸ ืจื™ื•ื•ื™ื•ื“.

ืงื•ื•ืืœืŸ:

ยป ืกืงืœ ืกืขืจื•ื•ื™ืจืขืจ ื•ื•ืึทืจื˜ืŸ ืกื˜ืึทื˜ื™ืกื˜ื™ืง
ยป ืกืงืœ ืกืขืจื•ื•ื™ืจืขืจ ื•ื•ืึทืจื˜ืŸ ืกื˜ืึทื˜ื™ืกื˜ื™ืง ืึธื“ืขืจ ื‘ื™ื˜ืข ื–ืึธื’ืŸ ืžื™ืจ ื•ื•ื• ืขืก ื›ืขืจืฅ
ยป ืกื™ืกื˜ืขื ืžื™ื™ื ื•ื ื’ sys.dm_os_schedulers
ยป ื ื™ืฆืŸ Zabbix ืฆื• ืžืึธื ื™ื˜ืึธืจ ืึท MS SQL Server ื“ืึทื˜ืึทื‘ื™ื™ืก
ยป ืกืงืœ ืœื™ื™ืคืกื˜ื™ื™ืœ
ยป ืฉืคึผื•ืจ ืคืœืึทื’ืก
ยป sql.ru

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’