ื›ืžื” ื”ื™ื‘ื˜ื™ื ืฉืœ ื ื™ื˜ื•ืจ MS SQL Server. ื”ื ื—ื™ื•ืช ืœื”ื’ื“ืจืช ื“ื’ืœื™ ืžืขืงื‘

ืคึฐึผืชึดื™ื—ึท

ืœืขืชื™ื ืงืจื•ื‘ื•ืช, ืžืฉืชืžืฉื™ื, ืžืคืชื—ื™ื ื•ืžื ื”ืœื™ื ืฉืœ MS SQL Server DBMS ื ืชืงืœื™ื ื‘ื‘ืขื™ื•ืช ื‘ื™ืฆื•ืขื™ื ืฉืœ ืžืกื“ ื”ื ืชื•ื ื™ื ืื• ื”-DBMS ื‘ื›ืœืœื•ืชื•, ื•ืœื›ืŸ ื ื™ื˜ื•ืจ MS SQL Server ืจืœื•ื•ื ื˜ื™ ืžืื•ื“.
ืžืืžืจ ื–ื” ื”ื•ื ืชื•ืกืคืช ืœืžืืžืจ ืฉื™ืžื•ืฉ ื‘-Zabbix ืœื ื™ื˜ื•ืจ ืžืกื“ ื ืชื•ื ื™ื ืฉืœ ืฉืจืช MS SQL ื•ื”ื•ื ื™ื›ืกื” ื›ืžื” ื”ื™ื‘ื˜ื™ื ืฉืœ ื ื™ื˜ื•ืจ MS SQL Server, ื‘ืคืจื˜: ื›ื™ืฆื“ ืœืงื‘ื•ืข ื‘ืžื”ื™ืจื•ืช ืื™ืœื• ืžืฉืื‘ื™ื ื—ืกืจื™ื, ื›ืžื• ื’ื ื”ืžืœืฆื•ืช ืœื”ื’ื“ืจืช ื“ื’ืœื™ ืžืขืงื‘.
ื›ื“ื™ ืฉื”ืกืงืจื™ืคื˜ื™ื ื”ื‘ืื™ื ื™ืคืขืœื•, ืขืœื™ืš ืœื™ืฆื•ืจ ืกื›ื™ืžืช ืžื™ื“ืข ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ื”ืจืฆื•ื™ ื‘ืื•ืคืŸ ื”ื‘ื:
ื™ืฆื™ืจืช ืกื›ื™ืžืช ืžื™ื“ืข

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

ืฉื™ื˜ื” ืœืื™ืชื•ืจ ื—ื•ืกืจ ื‘-RAM

ื”ืื™ื ื“ื™ืงื˜ื•ืจ ื”ืจืืฉื•ืŸ ืœืžื—ืกื•ืจ ื‘-RAM ื”ื•ื ื”ืžืงืจื” ื›ืืฉืจ ืžื•ืคืข ืฉืœ MS SQL Server ืื•ื›ืœ ืืช ื›ืœ ื”-RAM ืฉื”ื•ืงืฆื” ืœื•.
ืœืฉื ื›ืš, ื ื™ืฆื•ืจ ืืช ื”ื™ื™ืฆื•ื’ ื”ื‘ื ืฉืœ inf.vRAM:
ื™ืฆื™ืจืช ืชืฆื•ื’ืช 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, ืื– ื™ืฉ ืœื‘ื“ื•ืง ืืช ืกื˜ื˜ื™ืกื˜ื™ืงืช ื”ื”ืžืชื ื”.
ื›ื“ื™ ืœืงื‘ื•ืข ืืช ื”ื™ืขื“ืจ ื–ื™ื›ืจื•ืŸ RAM ื‘ืืžืฆืขื•ืช ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช ื”ืžืชื ื”, ื‘ื•ืื• ื ื™ืฆื•ืจ ืืช ืชืฆื•ื’ืช inf.vWaits:
ื™ืฆื™ืจืช ืชืฆื•ื’ืช 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];

ื‘ืžืงืจื” ื–ื”, ืืชื” ื™ื›ื•ืœ ืœืงื‘ื•ืข ืืช ื”ื™ืขื“ืจ ื–ื™ื›ืจื•ืŸ RAM ื‘ืืžืฆืขื•ืช ื”ืฉืื™ืœืชื” ื”ื‘ืื”:

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

ื›ืืŸ ืืชื” ืฆืจื™ืš ืœืฉื™ื ืœื‘ ืœืื™ื ื“ื™ืงื˜ื•ืจื™ื ืื—ื•ื– ื•-AvgWait_S. ืื ื”ื ืžืฉืžืขื•ืชื™ื™ื ื‘ืžื›ืœื•ืœ ืฉืœื”ื, ืื– ื™ืฉ ืกื‘ื™ืจื•ืช ื’ื‘ื•ื”ื” ืžืื•ื“ ืฉืื™ืŸ ืžืกืคื™ืง RAM ืขื‘ื•ืจ ืžื•ืคืข MS SQL Server. ืขืจื›ื™ื ืžืฉืžืขื•ืชื™ื™ื ื ืงื‘ืขื™ื ื‘ื ืคืจื“ ืขื‘ื•ืจ ื›ืœ ืžืขืจื›ืช. ืขื ื–ืืช, ืืชื” ื™ื›ื•ืœ ืœื”ืชื—ื™ืœ ืขื ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื: ืื—ื•ื–>=1 ื•-AvgWait_S>=0.005.
ื›ื“ื™ ืœื”ื•ืฆื™ื ืžื—ื•ื•ื ื™ื ืœืžืขืจื›ืช ื ื™ื˜ื•ืจ (ืœื“ื•ื’ืžื”, Zabbix), ืืชื” ื™ื›ื•ืœ ืœื™ืฆื•ืจ ืืช ืฉืชื™ ื”ืฉืื™ืœืชื•ืช ื”ื‘ืื•ืช:

  1. ื›ืžื” ืกื•ื’ื™ื ืฉืœ ื”ืžืชื ื” ืชืคื•ืกื™ื ืขืœ ื™ื“ื™ RAM ื‘ืื—ื•ื–ื™ื (ื”ืกื›ื•ื ืฉืœ ื›ืœ ืกื•ื’ื™ ื”ืžืชื ื” ื›ืืœื”):
    select coalesce(sum([Percentage]), 0.00) as [Percentage]
    from [inf].[vWaits]
           where [WaitType] in (
               'PAGEIOLATCH_XX',
               'RESOURCE_SEMAPHORE',
                'RESOURCE_SEMAPHORE_QUERY_COMPILE'
      );
    
  2. ื›ืžื” ืกื•ื’ื™ ื”ืžืชื ื” ืฉืœ RAM ืœื•ืงื—ื™ื ื‘ืืœืคื™ื•ืช ืฉื ื™ื•ืช (ื”ืขืจืš ื”ืžืงืกื™ืžืœื™ ืฉืœ ื›ืœ ื”ื”ืฉื”ื™ื•ืช ื”ืžืžื•ืฆืขื•ืช ืขื‘ื•ืจ ื›ืœ ืกื•ื’ื™ ื”ื”ืžืชื ื” ื”ืœืœื•):
    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'
      );
    

ื‘ื”ืชื‘ืกืก ืขืœ ื”ื“ื™ื ืžื™ืงื” ืฉืœ ื”ืขืจื›ื™ื ืฉื”ื•ืฉื’ื• ืขื‘ื•ืจ ืฉื ื™ ื”ืื™ื ื“ื™ืงื˜ื•ืจื™ื ื”ืœืœื•, ืื ื• ื™ื›ื•ืœื™ื ืœื”ืกื™ืง ืื ื™ืฉ ืžืกืคื™ืง ื–ื™ื›ืจื•ืŸ RAM ืขื‘ื•ืจ ืžื•ืคืข ืฉืœ 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;

ื‘ื”ืชื‘ืกืก ืขืœ ื”ื“ื™ื ืžื™ืงื” ืฉืœ ื”ืขืจื›ื™ื ืฉื”ื•ืฉื’ื• ืขื‘ื•ืจ ืžื—ื•ื•ืŸ ื–ื”, ืื ื• ื™ื›ื•ืœื™ื ืœื”ืกื™ืง ืื ื™ืฉ ืžืกืคื™ืง ื–ืžืŸ ืžืขื‘ื“ (ืžืกืคืจ ืœื™ื‘ื•ืช ื”-CPU) ืขื‘ื•ืจ ืžื•ืคืข ืฉืœ MS SQL Server.
ืขื ื–ืืช, ื—ืฉื•ื‘ ืœื–ื›ื•ืจ ืืช ื”ืขื•ื‘ื“ื” ืฉื‘ืงืฉื•ืช ืขืฆืžืŸ ื™ื›ื•ืœื•ืช ืœื‘ืงืฉ ืฉืจืฉื•ืจื™ื ืžืจื•ื‘ื™ื ื‘ื‘ืช ืื—ืช. ื•ืœืคืขืžื™ื ื”ืžื™ื™ืขืœ ืœื ื™ื›ื•ืœ ืœื”ืขืจื™ืš ื ื›ื•ืŸ ืืช ืžื•ืจื›ื‘ื•ืช ื”ืฉืื™ืœืชื” ืขืฆืžื”. ืื– ื”ื‘ืงืฉื” ืขืฉื•ื™ื” ืœื”ื™ื•ืช ืžื•ืงืฆื” ื™ื•ืชืจ ืžื“ื™ ืฉืจืฉื•ืจื™ื ืฉืœื ื ื™ืชืŸ ืœืขื‘ื“ ื‘ื• ื–ืžื ื™ืช ื‘ื–ืžืŸ ื”ื ืชื•ืŸ. ื•ื–ื” ื’ื ื’ื•ืจื ืœืกื•ื’ ืฉืœ ื”ืžืชื ื” ื”ืงืฉื•ืจื” ืœืžื—ืกื•ืจ ื‘ื–ืžืŸ ืžืขื‘ื“, ื•ืฆืžื™ื—ื” ืฉืœ ื”ืชื•ืจ ืขื‘ื•ืจ ืžืชื–ืžื ื™ื ื”ืžืฉืชืžืฉื™ื ื‘ืœื™ื‘ื•ืช CPU ืกืคืฆื™ืคื™ื•ืช, ื›ืœื•ืžืจ ืžื—ื•ื•ืŸ runnable_tasks_count ื™ื’ื“ืœ ื‘ืชื ืื™ื ื›ืืœื”.
ื‘ืžืงืจื” ื–ื”, ืœืคื ื™ ื”ื’ื“ืœืช ืžืกืคืจ ืœื™ื‘ื•ืช ื”-CPU, ื™ืฉ ืฆื•ืจืš ืœื”ื’ื“ื™ืจ ื‘ืฆื•ืจื” ื ื›ื•ื ื” ืืช ืžืืคื™ื™ื ื™ ื”ืžืงื‘ื™ืœื•ืช ืฉืœ ืžื•ืคืข MS SQL Server ืขืฆืžื•, ื•ืžื’ืจืกืช 2016, ืœื”ื’ื“ื™ืจ ื‘ืฆื•ืจื” ื ื›ื•ื ื” ืืช ืžืืคื™ื™ื ื™ ื”ืžืงื‘ื™ืœื•ืช ืฉืœ ืžืกื“ื™ ื”ื ืชื•ื ื™ื ื”ื ื“ืจืฉื™ื:
ื›ืžื” ื”ื™ื‘ื˜ื™ื ืฉืœ ื ื™ื˜ื•ืจ MS SQL Server. ื”ื ื—ื™ื•ืช ืœื”ื’ื“ืจืช ื“ื’ืœื™ ืžืขืงื‘

ื›ืžื” ื”ื™ื‘ื˜ื™ื ืฉืœ ื ื™ื˜ื•ืจ MS SQL Server. ื”ื ื—ื™ื•ืช ืœื”ื’ื“ืจืช ื“ื’ืœื™ ืžืขืงื‘
ื›ืืŸ ื›ื“ืื™ ืœืฉื™ื ืœื‘ ืœืคืจืžื˜ืจื™ื ื”ื‘ืื™ื:

  1. Max Grade of Parallelism - ืžื’ื“ื™ืจ ืืช ื”ืžืกืคืจ ื”ืžืจื‘ื™ ืฉืœ ืฉืจืฉื•ืจื™ื ืฉื ื™ืชืŸ ืœื”ืงืฆื•ืช ืœื›ืœ ื‘ืงืฉื” (ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื”ื™ื 0 - ืžื•ื’ื‘ืœ ืจืง ืขืœ ื™ื“ื™ ืžืขืจื›ืช ื”ื”ืคืขืœื” ืขืฆืžื” ื•ืžื”ื“ื•ืจืช MS SQL Server)
  2. ืกืฃ ืขืœื•ืช ืขื‘ื•ืจ ืžืงื‘ื™ืœื™ื•ืช - ืขืœื•ืช ืžืฉื•ืขืจืช ืฉืœ ืžืงื‘ื™ืœื™ื•ืช (ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื”ื™ื 5)
  3. Max DOP - ืžื’ื“ื™ืจ ืืช ื”ืžืกืคืจ ื”ืžืจื‘ื™ ืฉืœ ืฉืจืฉื•ืจื™ื ืฉื ื™ืชืŸ ืœื”ืงืฆื•ืช ืœื›ืœ ืฉืื™ืœืชื” ื‘ืจืžืช ืžืกื“ ื”ื ืชื•ื ื™ื (ืืš ืœื ื™ื•ืชืจ ืžื”ืขืจืš ืฉืœ ื”ืžืืคื™ื™ืŸ "Max Degree of Parallelism") (ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื”ื™ื 0 - ืžื•ื’ื‘ืœ ืจืง ืขืœ ื™ื“ื™ ืžืขืจื›ืช ื”ื”ืคืขืœื” ืขืฆืžื” ื• ื”ืžื”ื“ื•ืจื” ืฉืœ MS SQL Server, ื›ืžื• ื’ื ื”ื”ื’ื‘ืœื” ืขืœ ื”ืžืืคื™ื™ืŸ "ื“ืจื’ื” ืžืงืกื™ืžืœื™ืช ืฉืœ ืžืงื‘ื™ืœื™ื•ืช" ืฉืœ ื›ืœ ื”ืžื•ืคืข ืฉืœ MS SQL Server)

ื›ืืŸ ืื™ ืืคืฉืจ ืœืชืช ืžืชื›ื•ืŸ ื˜ื•ื‘ ื‘ืื•ืชื” ืžื™ื“ื” ืœื›ืœ ื”ืžืงืจื™ื, ื›ืœื•ืžืจ ืฆืจื™ืš ืœื ืชื— ืฉืื™ืœืชื•ืช ื›ื‘ื“ื•ืช.
ืžื ื™ืกื™ื•ื ื™ ื”ืื™ืฉื™, ืื ื™ ืžืžืœื™ืฅ ืขืœ ืืœื’ื•ืจื™ืชื ื”ืคืขื•ืœื•ืช ื”ื‘ื ืขื‘ื•ืจ ืžืขืจื›ื•ืช 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 ืื ื• ืขื•ื‘ืจื™ื ืž-single-threading ืœ-multi-threading, ื•ืขื‘ื•ืจ ืžืขืจื›ื•ืช OLAP, ืœื”ื™ืคืš, ืื ื• ืขื•ื‘ืจื™ื ืž-single-threading ืœ-single-threading. ืœืคื™ื›ืš, ืืชื” ื™ื›ื•ืœ ืœื‘ื—ื•ืจ ืืช ื”ื’ื“ืจื•ืช ื”ื”ืงื‘ืœื” ื”ืื•ืคื˜ื™ืžืœื™ื•ืช ื”ืŸ ืขื‘ื•ืจ ืžืกื“ ื ืชื•ื ื™ื ืกืคืฆื™ืคื™ ื•ื”ืŸ ืขื‘ื•ืจ ื›ืœ ื”ืžื•ืคืข ืฉืœ MS SQL Server.
ื›ืžื• ื›ืŸ, ื—ืฉื•ื‘ ืœื”ื‘ื™ืŸ ื›ื™ ื™ืฉ ืœืฉื ื•ืช ืืช ื”ื”ื’ื“ืจื•ืช ืฉืœ ืžืืคื™ื™ื ื™ ื”ืžืงื‘ื™ืœื™ื•ืช ืœืื•ืจืš ื–ืžืŸ, ื‘ื”ืชื‘ืกืก ืขืœ ืชื•ืฆืื•ืช ื ื™ื˜ื•ืจ ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ MS SQL Server.

ื”ื ื—ื™ื•ืช ืœื”ื’ื“ืจืช ื“ื’ืœื™ ืžืขืงื‘

ืžื ื™ืกื™ื•ื ื™ ื”ืื™ืฉื™ ื•ืžื ืกื™ื•ื ื ืฉืœ ืขืžื™ืชื™ื™, ืœื‘ื™ืฆื•ืขื™ื ืžื™ื˜ื‘ื™ื™ื, ืื ื™ ืžืžืœื™ืฅ ืœื”ื’ื“ื™ืจ ืืช ื“ื’ืœื™ ื”ืžืขืงื‘ ื”ื‘ืื™ื ื‘ืจืžืช ื”ืจื™ืฆื” ืฉืœ ืฉื™ืจื•ืช MS SQL Server ืขื‘ื•ืจ ื’ืจืกืื•ืช 2008-2016:

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

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

ืชื•ืฆืื•ืช ืฉืœ

ื‘ืžืืžืจ ื–ื” ื ื•ืชื—ื• ื›ืžื” ื”ื™ื‘ื˜ื™ื ืฉืœ ื ื™ื˜ื•ืจ MS SQL Server, ื‘ืขื–ืจืชื ื ื™ืชืŸ ืœื–ื”ื•ืช ื‘ืžื”ื™ืจื•ืช ืืช ื”ืžื—ืกื•ืจ ื‘-RAM ื•ื–ืžืŸ CPU ืคื ื•ื™, ื›ืžื• ื’ื ืžืกืคืจ ื‘ืขื™ื•ืช ืื—ืจื•ืช ืคื—ื•ืช ื‘ืจื•ืจื•ืช. ื“ื’ืœื™ ื”ืžืขืงื‘ ื”ื ืคื•ืฆื™ื ื‘ื™ื•ืชืจ ื ื‘ื“ืงื•.

ืžืงื•ืจื•ืช:

ยป ืกื˜ื˜ื™ืกื˜ื™ืงืช ื”ืžืชื ื” ืฉืœ SQL Server
ยป ื”ืžืชื ื” ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช ืฉืœ SQL Server ืื• ื‘ื‘ืงืฉื” ืชื’ื™ื“ ืœื™ ืื™ืคื” ื–ื” ื›ื•ืื‘
ยป ืชืฆื•ื’ืช ืžืขืจื›ืช sys.dm_os_schedulers
ยป ืฉื™ืžื•ืฉ ื‘-Zabbix ืœื ื™ื˜ื•ืจ ืžืกื“ ื ืชื•ื ื™ื ืฉืœ ืฉืจืช MS SQL
ยป ืกื’ื ื•ืŸ ื—ื™ื™ื ืฉืœ SQL
ยป ื“ื’ืœื™ื ืขืงื‘ื•ืช
ยป sql.ru

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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”