ืคึฐึผืชึดืืึท
ืืขืชืื ืงืจืืืืช, ืืฉืชืืฉืื, ืืคืชืืื ืืื ืืืื ืฉื MS SQL Server DBMS ื ืชืงืืื ืืืขืืืช ืืืฆืืขืื ืฉื ืืกื ืื ืชืื ืื ืื ื-DBMS ืืืืืืชื, ืืืื ื ืืืืจ 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), ืืชื ืืืื ืืืฆืืจ ืืช ืฉืชื ืืฉืืืืชืืช ืืืืืช:
- ืืื ืกืืืื ืฉื ืืืชื ื ืชืคืืกืื ืขื ืืื RAM ืืืืืืื (ืืกืืื ืฉื ืื ืกืืื ืืืชื ื ืืืื):
select coalesce(sum([Percentage]), 0.00) as [Percentage] from [inf].[vWaits] where [WaitType] in ( 'PAGEIOLATCH_XX', 'RESOURCE_SEMAPHORE', 'RESOURCE_SEMAPHORE_QUERY_COMPILE' );
- ืืื ืกืืื ืืืชื ื ืฉื 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, ืืืืืืจ ืืฆืืจื ื ืืื ื ืืช ืืืคืืื ื ืืืงืืืืืช ืฉื ืืกืื ืื ืชืื ืื ืื ืืจืฉืื:
ืืื ืืืื ืืฉืื ืื ืืคืจืืืจืื ืืืืื:
- Max Grade of Parallelism - ืืืืืจ ืืช ืืืกืคืจ ืืืจืื ืฉื ืฉืจืฉืืจืื ืฉื ืืชื ืืืงืฆืืช ืืื ืืงืฉื (ืืจืืจืช ืืืืื ืืื 0 - ืืืืื ืจืง ืขื ืืื ืืขืจืืช ืืืคืขืื ืขืฆืื ืืืืืืจืช MS SQL Server)
- ืกืฃ ืขืืืช ืขืืืจ ืืงืืืืืืช - ืขืืืช ืืฉืืขืจืช ืฉื ืืงืืืืืืช (ืืจืืจืช ืืืืื ืืื 5)
- Max DOP - ืืืืืจ ืืช ืืืกืคืจ ืืืจืื ืฉื ืฉืจืฉืืจืื ืฉื ืืชื ืืืงืฆืืช ืืื ืฉืืืืชื ืืจืืช ืืกื ืื ืชืื ืื (ืื ืื ืืืชืจ ืืืขืจื ืฉื ืืืืคืืื "Max Degree of Parallelism") (ืืจืืจืช ืืืืื ืืื 0 - ืืืืื ืจืง ืขื ืืื ืืขืจืืช ืืืคืขืื ืขืฆืื ื ืืืืืืจื ืฉื MS SQL Server, ืืื ืื ืืืืืื ืขื ืืืืคืืื "ืืจืื ืืงืกืืืืืช ืฉื ืืงืืืืืืช" ืฉื ืื ืืืืคืข ืฉื MS SQL Server)
ืืื ืื ืืคืฉืจ ืืชืช ืืชืืื ืืื ืืืืชื ืืืื ืืื ืืืงืจืื, ืืืืืจ ืฆืจืื ืื ืชื ืฉืืืืชืืช ืืืืืช.
ืื ืืกืืื ื ืืืืฉื, ืื ื ืืืืืฅ ืขื ืืืืืจืืชื ืืคืขืืืืช ืืื ืขืืืจ ืืขืจืืืช OLTP ืืืืืจืช ืืืคืืื ื ืืงืืืืืืช:
- ืชืืืื ืืฉืืช ืืช ืืืงืืืืืืช ืขื ืืื ืืืืจืช ืืจืืช ืืืงืืืืืืช ืืืงืกืืืืืช ืืื ืืืืคืข ื-1
- ื ืชื ืืช ืืืงืฉืืช ืืืืืืช ืืืืชืจ ืืืืจ ืืช ืืืกืคืจ ืืืืคืืืืื ืฉื ืฉืจืฉืืจืื ืขืืืจื
- ืืืืจ ืืช ืืจืืช ืืืงืืืืืืช ืืืงืกืืืืืช ืืืกืคืจ ืืฉืจืฉืืจืื ืืืืคืืืืื ืฉื ืืืจ ืืืชืงืื ืืฉืื 2, ืืืืกืื ื ืชืื ืื ืกืคืฆืืคืืื ืืืืจ ืืช ืขืจื ื-DOP ืืืงืกืืืื ืืืชืงืื ืืฉืื 2 ืขืืืจ ืื ืืกื ื ืชืื ืื
- ืื ืชื ืืช ืืืงืฉืืช ืืืืืืช ืืืืชืจ ืืืืืืช ืืช ืืืฉืคืขื ืืฉืืืืืช ืฉื ืจืืืื ืืฉืจืฉืืจืื. ืื ืื, ืืืื ืืช ืกืฃ ืืขืืืืืช ืขืืืจ ืืงืืืืืืช.
ืขืืืจ ืืขืจืืืช ืืื 1C, Microsoft CRM ื-Microsoft NAV, ืืจืื ืืืงืจืื, ืืืกืืจ ืขื ืจืืืื ืืืืื ืฉืจืฉืืจ ืืชืืื
ืืื ืื, ืื ืืฉ ืืืืืจื ืกืื ืืจืืืช, ืื ืืจืื ืืืงืจืื ืืืกืืจ ืจืืืื ืืืืืืื ืืชืืื ืืฉื ืืขืืืื ืฉืืืืืจื ืื ืืืืืืช ืืืกืคืจ ืืืืืช ืืืขืื.
ืขืืืจ ืืขืจืืืช OLAP, ืืืืืืจืืชื ืืืชืืืจ ืืขืื ืืื ื ืืชืืื.
ืื ืืกืืื ื ืืืืฉื, ืื ื ืืืืืฅ ืขื ืืืืืจืืชื ืืคืขืืืืช ืืื ืขืืืจ ืืขืจืืืช OLAP ืืืืืจืช ืืืคืืื ื ืืงืืืืืืช:
- ื ืชื ืืช ืืืงืฉืืช ืืืืืืช ืืืืชืจ ืืืืจ ืืช ืืืกืคืจ ืืืืคืืืืื ืฉื ืฉืจืฉืืจืื ืขืืืจื
- ืืืืจ ืืช ืืจืืช ืืืงืืืืืืช ืืืงืกืืืืืช ืืืกืคืจ ืืฉืจืฉืืจืื ืืืืคืืืืื ืฉื ืืืจ ืืืชืงืื ืืฉืื 1, ืืืืกืื ื ืชืื ืื ืกืคืฆืืคืืื ืืืืจ ืืช ืขืจื ื-DOP ืืืงืกืืืื ืืืชืงืื ืืฉืื 1 ืขืืืจ ืื ืืกื ื ืชืื ืื
- ืื ืชื ืืช ืืฉืืืืชืืช ืืืืืืช ืืืืชืจ ืืืืืืช ืืช ืืืฉืคืขื ืืฉืืืืืช ืฉื ืืืืืช ืืงืืคืืช. ืื ืื, ืื ืืืจืื ืืช ืขืจื ืกืฃ ืืขืืืช ืขืืืจ ืืงืืืืืืช, ืื ืืืืจ ืขื ืฉืืืื 1-2 ืฉื ืืืืืจืืชื ืื
ืืืืืจ, ืขืืืจ ืืขืจืืืช OLTP ืื ื ืขืืืจืื ื-single-threading ื-multi-threading, ืืขืืืจ ืืขืจืืืช OLAP, ืืืืคื, ืื ื ืขืืืจืื ื-single-threading ื-single-threading. ืืคืืื, ืืชื ืืืื ืืืืืจ ืืช ืืืืจืืช ืืืงืืื ืืืืคืืืืืืืช ืื ืขืืืจ ืืกื ื ืชืื ืื ืกืคืฆืืคื ืืื ืขืืืจ ืื ืืืืคืข ืฉื MS SQL Server.
ืืื ืื, ืืฉืื ืืืืื ืื ืืฉ ืืฉื ืืช ืืช ืืืืืจืืช ืฉื ืืืคืืื ื ืืืงืืืืืืช ืืืืจื ืืื, ืืืชืืกืก ืขื ืชืืฆืืืช ื ืืืืจ ืืืืฆืืขืื ืฉื MS SQL Server.
ืื ืืืืช ืืืืืจืช ืืืื ืืขืงื
ืื ืืกืืื ื ืืืืฉื ืืื ืกืืื ื ืฉื ืขืืืชืื, ืืืืฆืืขืื ืืืืืืื, ืื ื ืืืืืฅ ืืืืืืจ ืืช ืืืื ืืืขืงื ืืืืื ืืจืืช ืืจืืฆื ืฉื ืฉืืจืืช MS SQL Server ืขืืืจ ืืจืกืืืช 2008-2016:
- 610 - ืจืืฉืื ืืืคืืช ืฉื ืชืืกืคืืช ืืืืืืืช ืฉื ืืกืคื ืืืื ืืงืก. ืืืื ืืขืืืจ ืืืืกืคืืช ืืืืืืืช ืขื ืจืฉืืืืช ืจืืืช ืืขืกืงืืืช ืจืืืช, ืขื ืืืชื ื ืชืืืคื ืืจืืืช WRITELOG ืืฉืื ืืืื ืืืื ืืงืกืื
- 1117 - ืื ืงืืืฅ ืืงืืืฆืช ืงืืฆืื ืขืืื ืืืจืืฉืืช ืกืฃ ืืฆืืืื ืืืืืืืืืช, ืื ืืงืืฆืื ืืงืืืฆืช ืืงืืฆืื ืืืืื
- 1118 - ืืืืฅ ืืช ืื ืืืืืืืงืืื ืืืืืช ืืืืงืืื ืืืืืืช ืฉืื ืืช (ืืืกืืจ ืขื ืืืงืคืื ืืขืืจืืื), ืื ืฉืืืืขืจ ืืช ืืฆืืจื ืืกืจืืง ืืช ืืฃ SGAM, ืืืฉืืฉ ืืืขืงื ืืืจ ืืืงืคืื ืืขืืจืืื
- 1224 - ืืฉืืืช ืืช ืืกืืื ืฉื ืื ืขืืืื ืขื ืกืื ืืกืคืจ ืืื ืขืืืื. ืขื ืืืช, ืฉืืืืฉ ืืืืื ืืืืืจืื ืืืื ืืขืืจืจ ืืกืืื ืฉื ื ืขืืื
- 2371 - ืืฉื ื ืืช ืกืฃ ืขืืืื ืืกืืืืกืืืงื ืืืืืืืื ืืงืืืข ืืกืฃ ืขืืืื ืืกืืืืกืืืงื ืืืืืืืื ืืืื ืื. ืืฉืื ืืขืืืื ืชืืื ืืืช ืฉืืืืชืืช ืขืืืจ ืืืืืืช ืืืืืืช, ืืืฉืจ ืกืคืืจื ืื ื ืืื ื ืฉื ืจืฉืืืืช ืืืจืืช ืืชืืื ืืืช ืืืฆืืข ืฉืืืืืช
- 3226 - ืืืื ืืืืขืืช ืืฆืืื ืฉื ืืืืื ืืืืื ืืฉืืืืืช
- 4199 - ืืืื ืฉืื ืืืื ืืืืืื ืืฉืืืืชืืช ืฉืฉืืืจืจ ื-CUs ื-SQL Server Service Packs
- 6532-6534 - ืืืื ืฉืืคืืจืื ืืืืฆืืขืื ืขืืืจ ืคืขืืืืช ืฉืืืืชื ืขื ืกืืื ื ืชืื ืื ืืจืืืืื
- 8048 - ืืืืจ ืืืืืืงืื ืืืืจืื ืืืืืงืื NUMA ืืืืืืืงืื ืืืืจืื ืืืืืงืื ื-CPU
- 8780 - ืืืคืฉืจ ืืงืฆืืช ืืื ื ืืกืคืช ืืชืื ืื ืฉืืืืชืืช. ืืืง ืืืืงืฉืืช ืืื ืืื ืื ืขืฉืืืืช ืืืืืืืช ืืืืืื ืฉืืื ืืื ืชืืื ืืช ืฉืืืืชืืช (ืืื ื ืืืจ ืืืื)
- 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, ืืขืืจืชื ื ืืชื ืืืืืช ืืืืืจืืช ืืช ืืืืกืืจ ื-RAM ืืืื CPU ืคื ืื, ืืื ืื ืืกืคืจ ืืขืืืช ืืืจืืช ืคืืืช ืืจืืจืืช. ืืืื ืืืขืงื ืื ืคืืฆืื ืืืืชืจ ื ืืืงื.
ืืงืืจืืช:
ยป
ยป
ยป
ยป
ยป
ยป
ยป
ืืงืืจ: www.habr.com