ΠΡΠ΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅
ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ Π‘Π£ΠΠ MS SQL Server ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΠ ΠΈΠ»ΠΈ Π‘Π£ΠΠ Π² ΡΠ΅Π»ΠΎΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π΅ΡΡΠΌΠ° Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ MS SQL Server.
ΠΠ°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊ ΡΡΠ°ΡΡΠ΅
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ
ΡΠΊΡΠΈΠΏΡΠΎΠ², Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡ
Π΅ΠΌΡ inf Π² Π½ΡΠΆΠ½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡ
Π΅ΠΌΡ inf
use <ΠΈΠΌΡ_ΠΠ>;
go
create schema inf;
ΠΠ΅ΡΠΎΠ΄ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ Π½Π΅Ρ Π²Π°ΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ
ΠΠ΅ΡΠ²ΡΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π΅Ρ
Π²Π°ΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ MS SQL Server ΡΡΠ΅Π΄Π°Π΅Ρ Π²ΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ Π΅ΠΌΡ ΠΠΠ£.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ 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, ΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΉ.
ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π΅Ρ
Π²Π°ΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ΅ΡΠ΅Π· ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΉ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ 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];
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π΅Ρ Π²Π°ΡΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠΌ:
SELECTΒ [Percentage]
Β Β Β Β Β Β ,[AvgWait_S]
Β Β FROMΒ [inf].[vWaits]
Β Β whereΒ [WaitType]Β inΒ (
Β Β Β Β 'PAGEIOLATCH_XX',
Β Β Β Β 'RESOURCE_SEMAPHORE',
Β Β Β Β 'RESOURCE_SEMAPHORE_QUERY_COMPILE'
Β Β );
ΠΠ΄Π΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Percentage ΠΈ AvgWait_S. ΠΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½Ρ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΠΈ, ΡΠΎ Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠ°Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅ Ρ
Π²Π°ΡΠ°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ MS SQL Server. Π‘ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ: Percentage>=1 ΠΈ AvgWait_S>=0.005.
ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Zabbix) ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π²Π° Π·Π°ΠΏΡΠΎΡΠ°:
- ΡΠΊΠΎΠ»ΡΠΊΠΎ Π² ΠΏΡΠΎΡΠ΅Π½ΡΠ°Ρ
Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΡΠΈΠΏΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΉ ΠΏΠΎ ΠΠΠ£ (ΡΡΠΌΠΌΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ°ΠΊΠΈΠΌ ΡΠΈΠΏΠ°ΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΉ):
select coalesce(sum([Percentage]), 0.00) as [Percentage] from [inf].[vWaits] whereΒ [WaitType]Β inΒ ( Β Β Β Β 'PAGEIOLATCH_XX', Β Β Β Β 'RESOURCE_SEMAPHORE', Β Β Β Β 'RESOURCE_SEMAPHORE_QUERY_COMPILE' Β Β );
- ΡΠΊΠΎΠ»ΡΠΊΠΎ Π² ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°Ρ
Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΡΠΈΠΏΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΉ ΠΏΠΎ ΠΠΠ£ (ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π²ΡΠ΅Ρ
ΡΡΠ΅Π΄Π½ΠΈΡ
Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ°ΠΊΠΈΠΌ ΡΠΈΠΏΠ°ΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΉ):
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 Server.
ΠΠ΄Π½Π°ΠΊΠΎ, Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎ ΡΠΎΠΌ ΡΠ°ΠΊΡΠ΅, ΡΡΠΎ ΡΠ°ΠΌΠΈ Π·Π°ΠΏΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ². Π ΠΏΠΎΡΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΠ½ΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΠΌΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°. Π’ΠΎΠ³Π΄Π° Π·Π°ΠΏΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π ΡΡΠΎ ΡΠΎΠΆΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΈΠΏ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π½Π΅Ρ
Π²Π°ΡΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΈ ΡΠ°Π·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠ΄ΡΠ° Π¦ΠΠ£, Ρ Π΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ runnable_tasks_count Π² ΡΠ°ΠΊΠΈΡ
ΡΡΠ»ΠΎΠ²ΠΈΡΡ
Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΈ.
Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΄Π΅Ρ Π¦ΠΠ£, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° MS SQL Server, Π° Ρ 2016 Π²Π΅ΡΡΠΈΠΈ-ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° Π½ΡΠΆΠ½ΡΡ
Π±Π°Π· Π΄Π°Π½Π½ΡΡ
:
ΠΠ΄Π΅ΡΡ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- Max Degree of Parallelism-Π·Π°Π΄Π°Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π·Π°ΠΏΡΠΎΡΡ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎΠΈΡ 0-ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΠ΅ΠΉ MS SQL Server)
- Cost Threshold for Parallelism-ΠΎΡΠ΅Π½ΠΎΡΠ½Π°Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎΠΈΡ 5)
- Max DOP-Π·Π°Π΄Π°Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ (Π½ΠΎ Π½Π΅ Π±ΠΎΠ»Π΅Π΅, ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Β«Max Degree of ParallelismΒ») (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎΠΈΡ 0-ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΠ΅ΠΉ MS SQL Server, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Ρ Β«Max Degree of ParallelismΒ» Π²ΡΠ΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° MS SQL Server)
ΠΠ΄Π΅ΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Ρ
ΠΎΡΠΎΡΠΈΠΉ ΡΠ΅ΡΠ΅ΠΏΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΠ»ΡΡΠ°Π΅Π², Ρ Π΅ Π½ΡΠΆΠ½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΆΠ΅Π»ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ.
ΠΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΠΎΠΏΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π΄Π»Ρ OLTP-ΡΠΈΡΡΠ΅ΠΌ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ²ΠΎΠΉΡΡΠ² ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°:
- ΡΠ½Π°ΡΠ°Π»Π° Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ, Π²ΡΡΡΠ°Π²ΠΈΠ² Π½Π° ΡΡΠΎΠ²Π½Π΅ Π²ΡΠ΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Max Degree of Parallelism Π² 1
- ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΡΠ΅ ΡΡΠΆΠ΅Π»ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΡΡ Π΄Π»Ρ Π½ΠΈΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ²
- Π²ΡΡΡΠ°Π²ΠΈΡΡ Max Degree of Parallelism Π² ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π½Π½ΠΎΠ΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ· ΠΏ.2, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ Π²ΡΡΡΠ°Π²ΠΈΡΡ Max DOP Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ· ΠΏ.2 Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
- ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΡΠ΅ ΡΡΠΆΠ΅Π»ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈ Π²ΡΡΠ²ΠΈΡΡ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΡΠΉ ΡΡΡΠ΅ΠΊΡ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ. ΠΡΠ»ΠΈ ΠΎΠ½ Π΅ΡΡΡ, ΡΠΎ ΠΏΠΎΠ²ΡΡΠ°ΡΡ Cost Threshold for Parallelism.
ΠΠ»Ρ ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌ ΠΊΠ°ΠΊ 1Π‘, Microsoft CRM ΠΈ Microsoft NAV Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Π·Π°ΠΏΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ
Π’Π°ΠΊΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΡΠΎΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡ Standard, ΡΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Π·Π°ΠΏΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ Π² Π²ΠΈΠ΄Ρ ΡΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠ°, ΡΡΠΎ Π΄Π°Π½Π½Π°Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΠΏΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΡΠ΄Π΅Ρ Π¦ΠΠ£.
ΠΠ»Ρ OLAP-ΡΠΈΡΡΠ΅ΠΌ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π²ΡΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π½Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ.
ΠΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΠΎΠΏΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π΄Π»Ρ OLAP-ΡΠΈΡΡΠ΅ΠΌ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ²ΠΎΠΉΡΡΠ² ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°:
- ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΡΠ΅ ΡΡΠΆΠ΅Π»ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΡΡ Π΄Π»Ρ Π½ΠΈΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ²
- Π²ΡΡΡΠ°Π²ΠΈΡΡ Max Degree of Parallelism Π² ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π½Π½ΠΎΠ΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ· ΠΏ.1, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ Π²ΡΡΡΠ°Π²ΠΈΡΡ Max DOP Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ· ΠΏ.1 Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
- ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΡΠ΅ ΡΡΠΆΠ΅Π»ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈ Π²ΡΡΠ²ΠΈΡΡ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΡΠΉ ΡΡΡΠ΅ΠΊΡ ΠΎΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°. ΠΡΠ»ΠΈ ΠΎΠ½ Π΅ΡΡΡ, ΡΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ½ΠΈΠΆΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Cost Threshold for Parallelism, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΡΠ°Π³ΠΈ 1-2 Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°
Π’ Π΅ Π΄Π»Ρ OLTP-ΡΠΈΡΡΠ΅ΠΌ ΠΈΠ΄Π΅ΠΌ ΠΎΡ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ, Π° Π΄Π»Ρ OLAP-ΡΠΈΡΡΠ΅ΠΌ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ-ΠΈΠ΄Π΅ΠΌ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΊ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° MS SQL Server.
Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ²ΠΎΠΉΡΡΠ² ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ, ΠΈΡΡ
ΠΎΠ΄Ρ ΠΈΠ· ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ MS SQL Server.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΡΠ»Π°Π³ΠΎΠ² ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ
ΠΠ· ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ° ΠΈ ΠΎΠΏΡΡΠ° ΠΌΠΎΠΈΡ ΠΊΠΎΠ»Π»Π΅Π³ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π²ΡΡΡΠ°Π²Π»ΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ»ΡΠΆΠ±Ρ MS SQL Server Π΄Π»Ρ 2008-2016 Π²Π΅ΡΡΠΈΠΉ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ»Π°Π³ΠΈ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ:
- 610 β Π£ΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΠ°Π²ΠΎΠΊ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΠΎ Π²ΡΡΠ°Π²ΠΊΠ°ΠΌΠΈ Π² ΡΠ°Π±Π»ΠΈΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΠΏΡΠΈ ΡΠ°ΡΡΡΡ Π΄ΠΎΠ»Π³ΠΈΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡΡ WRITELOG ΠΏΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ
- 1117 β ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ» Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΠΏΠΎΡΠΎΠ³Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ, Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΡΡ
- 1118 β ΠΠ°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π² ΡΠ°Π·Π½ΡΡ ΡΠΊΡΡΠ΅Π½ΡΠ°Ρ (Π·Π°ΠΏΡΠ΅Ρ Π½Π° ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠ΅ ΡΠΊΡΡΠ΅Π½ΡΡ), ΡΡΠΎ ΡΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡΡ SGAM, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠΌΠ΅ΡΠ°Π½Π½ΡΡ ΡΠΊΡΡΠ΅Π½ΡΠΎΠ²
- 1224 β ΠΡΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΊΡΡΠΏΠ½Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠΊΡΡΠΏΠ½Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ
- 2371 β ΠΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΠΎΡΠΎΠ³ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° ΠΏΠΎΡΠΎΠ³ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ. ΠΠ°ΠΆΠ½ΠΎ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ»Π°Π½ΠΎΠ² Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊΠ°ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠ°Π±Π»ΠΈΡ, Π³Π΄Π΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠΌ ΠΏΠ»Π°Π½Π°ΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
- 3226 β ΠΠΎΠ΄Π°Π²Π»ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΆΡΡΠ½Π°Π»Π΅ ΠΎΡΠΈΠ±ΠΎΠΊ
- 4199 β ΠΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ², Π²ΡΠΏΡΡΠ΅Π½Π½ΡΠ΅ Π² Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ°Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ SQL Server
- 6532-6534 β ΠΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡΠΎΠ² Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
- 8048 β ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ΅ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎ NUMA, Π² ΡΠ΅ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎ Π¦Π
- 8780 β ΠΠΊΠ»ΡΡΠ°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ»Π°Π½Π° Π·Π°ΠΏΡΠΎΡΠ°. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π±Π΅Π· ΡΡΠΎΠ³ΠΎ ΡΠ»Π°Π³Π° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ Π½ΠΈΡ Π½Π΅Ρ ΠΏΠ»Π°Π½Π° Π·Π°ΠΏΡΠΎΡΠ° (ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ°)
- 8780 β 9389 β ΠΠΊΠ»ΡΡΠ°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ Π±ΡΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°, ΡΡΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΒ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° Π·Π°ΠΏΡΠΎΡΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ Π² tempdb, Π΅ΡΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΠ°ΠΌΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Π°
Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎ 2016 Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ»Π°Π³ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ 2301, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΡΠΈΠ½ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π² Π²ΡΠ±ΠΎΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ
ΠΏΠ»Π°Π½ΠΎΠ² Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 2016, ΠΎΠ½ ΡΠ°ΡΡΠΎ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΡΠΉ ΡΡΡΠ΅ΠΊΡ Π² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ².
Π’Π°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ, Π² ΠΊΠΎΡΠΎΡΡΡ
ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π±Π°Π· Π΄Π°Π½Π½ΡΡ
1Π‘), ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ»Π°Π³ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ 2330, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ±ΠΎΡ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΡΡΠΎ Π² ΡΠ΅Π»ΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎ ΡΠ»Π°Π³Π°Ρ
ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ
ΠΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΡΡΡΠ»ΠΊΠ΅ Π²Π°ΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΈΡΡΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΠΈ ΠΈ ΡΠ±ΠΎΡΠΊΠΈ MS SQL Server, Ρ. ΠΊ. Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΡ
Π²Π΅ΡΡΠΈΠΉ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π°Π³ΠΈ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ Π½Π΅ Π΄Π°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°.
ΠΠΊΠ»ΡΡΠΈΡΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ»Π°Π³ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ DBCC TRACEON ΠΈ DBCC TRACEOFF ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠΌΠΎΡΡΠΈΡΠ΅
ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ»Π°Π³ΠΎΠ² ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ DBCC TRACESTATUS:
Π§ΡΠΎΠ±Ρ ΡΠ»Π°Π³ΠΈ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π±ΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² Π°Π²ΡΠΎΠ·Π°ΠΏΡΡΠΊ ΡΠ»ΡΠΆΠ±Ρ MS SQL Server, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΉΡΠΈ Π² SQL Server Configuration Manager ΠΈ Π² ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ
ΡΠ»ΡΠΆΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠ»Π°Π³ΠΈ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ΅ΡΠ΅Π· -T:
ΠΡΠΎΠ³ΠΈ
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠ°Π·ΠΎΠ±ΡΠ°Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° MS SQL Server, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎ Π²ΡΡΠ²ΠΈΡΡ Π½Π΅Ρ Π²Π°ΡΠΊΡ ΠΠΠ£ ΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π¦ΠΠ£, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΄ Π΄ΡΡΠ³ΠΈΡ ΠΌΠ΅Π½Π΅Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΡΠ»ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ»Π°Π³ΠΈ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ:
Β»
Β»
Β»
Β»
Β»
Β»
Β»
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com