Eminye imiba yojongo lwe-MS SQL Server. Izikhokelo zokuSeta iiFlegi zokulandelela

I ngcaciso

Rhoqo, abasebenzisi, abaphuhlisi kunye nabalawuli be-MS SQL Server DBMS bajongana neengxaki zokusebenza kwedathabheyisi okanye i-DBMS iyonke, ngoko ke ukujonga i-MS SQL Server kubaluleke kakhulu.
Eli nqaku lilongezo kwinqaku Ukusebenzisa i-Zabbix ukujonga i-MS SQL Server Database kwaye iya kuphonononga imiba ethile yokubeka iliso kwi-MS SQL Server, ngokukodwa: indlela yokufumanisa ngokukhawuleza ukuba zeziphi izibonelelo ezingekhoyo, kunye neengcebiso zokuseta iiflegi zokulandelela.
Ukuze ezi scripts zilandelayo zisebenze, kufuneka uyile i-schema ye-inf kwisiseko sedatha esifunekayo ngolu hlobo lulandelayo:
Ukudala i-schema ye-inf

use <имя_Π‘Π”>;
go
create schema inf;

Indlela yokufumanisa ukungabikho kwe-RAM

Isalathisi sokuqala sokunqongophala kwe-RAM kuxa umzekelo we-MS SQL Server isitya yonke i-RAM eyabelwe yona.
Ukwenza oku, yenza oku kulandelayo kwi-inf.vRAM:
Kuyilwa imbonakalo ye-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;

Emva koko unokugqiba ukuba umzekelo we-MS SQL Server utya yonke inkumbulo eyabelwe yona usebenzisa lo mbuzo ulandelayo:

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

Ukuba i-SQL_server_physical_memory_in_use_Mb isalathisi sihlala singekho ngaphantsi kwe-SQL_server_committed_target_Mb, ngoko kufuneka ukhangele izibalo zokulinda.
Ukumisela ukunqongophala kwe-RAM ngokusebenzisa izibalo zokulinda, makhe senze umbono we-inf.vWaits:
Ukudala umbono we-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];

Kule meko, unokumisela ukungabikho kwe-RAM usebenzisa lo mbuzo ulandelayo:

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

Apha kufuneka ubeke ingqalelo kwiPhesenti kunye nezalathi ze-AvgWait_S. Ukuba zibalulekile kwitotali yazo, ngoko kukho amathuba aphezulu kakhulu okuba umzekelo we-MS SQL Server ayinayo i-RAM eyaneleyo. Amaxabiso abalulekileyo amiselwa ngokwahlukeneyo kwinkqubo nganye. Nangona kunjalo, ungaqala ngesi salathisi silandelayo: Ipesenti>=1 kunye AvgWait_S>=0.005.
Ukukhupha izikhombisi kwinkqubo yokubeka iliso (umzekelo, Zabbix), unokwenza le mibuzo mibini ilandelayo:

  1. Ithini ipesenti yeentlobo zokulinda ze-RAM (imali yazo zonke iindidi zokulinda):
    select coalesce(sum([Percentage]), 0.00) as [Percentage]
    from [inf].[vWaits]
           where [WaitType] in (
               'PAGEIOLATCH_XX',
               'RESOURCE_SEMAPHORE',
                'RESOURCE_SEMAPHORE_QUERY_COMPILE'
      );
    
  2. zingaphi iindidi zokulinda ze-RAM ezithatha kwimillisecond (elona xabiso likhulu lalo lonke ulibaziseko oluphakathi kuzo zonke ezi ntlobo zokulinda):
    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'
      );
    

Ngokusekwe kuguquko lwamaxabiso afunyenweyo kwezi zalathisi zibini, sinokugqiba ukuba kukho i-RAM eyaneleyo kumzekelo we-MS SQL Server.

Indlela yokubona umthwalo ogqithisileyo we-CPU

Ukuchonga ukunqongophala kwexesha le-CPU, sebenzisa nje i-sys.dm_os_schedulers imboniselo yenkqubo. Apha, ukuba isalathisi se-runnable_tasks_count sihlala sisikhulu kuno-1, ngoko kukho amathuba aphezulu okuba inani leecores alanelanga kumzekelo we-MS SQL Server.
Ukubonisa isalathisi kwindlela yokubeka iliso (umzekelo, i-Zabbix), unokwenza isicelo esilandelayo:

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

Ngokusekwe kuguquko lwamaxabiso afunyenweyo kwesi salathisi, sinokugqiba ukuba kukho ixesha elaneleyo leprosesa (inani le-CPU cores) kumzekelo we-MS SQL Server.
Nangona kunjalo, kubalulekile ukukhumbula into yokuba imibuzo ngokwayo inokubuza imisonto emininzi ngaxeshanye. Kwaye ngamanye amaxesha i-optimizer ayinakuqikelela ngokuchanekileyo ubunzima bombuzo ngokwawo. Emva koko isicelo sinokwabelwa imicu emininzi kakhulu, leyo ngexesha elithile ayikwazi ukuqhutyelwa phambili ngaxeshanye. Kwaye oku kubangela uhlobo lokulinda olunxulumene nokungabikho kwexesha leprosesa, kunye nokukhula komgca wabacwangcisi abasebenzisa ii-cores ezithile ze-CPU, oko kukuthi, i-runnable_tasks_count indicator iya kwanda kwiimeko ezinjalo.
Kule meko, ngaphambi kokunyusa inani le-CPU cores, kufuneka uqwalasele ngokuchanekileyo iipropathi zeparallelism ze-MS SQL Server umzekelo ngokwawo, kwaye ukusuka kwinguqulo ka-2016, uqwalasele ngokuchanekileyo iimpawu zokuhambelana kwedatha efunekayo:
Eminye imiba yojongo lwe-MS SQL Server. Izikhokelo zokuSeta iiFlegi zokulandelela

Eminye imiba yojongo lwe-MS SQL Server. Izikhokelo zokuSeta iiFlegi zokulandelela
Apha kufuneka ubeke ingqalelo kwezi parameters zilandelayo:

  1. I-Max Degree of Parallelism-ibeka elona nani liphezulu lemisonto enokwabelwa isicelo ngasinye (okungagqibekanga ngu-0-inqunyelwe kuphela yinkqubo yokusebenza ngokwayo kunye noshicilelo lwe-MS SQL Server)
  2. I-Cost Threshold for Parallelism - ixabiso eliqikelelweyo lokuhambelana (okuhlala kukho isi-5)
  3. I-Max DOP-imisela inani eliphezulu lemisonto enokwabelwa umbuzo ngamnye kwinqanaba lesiseko sedatha (kodwa alikho ngaphezu kwexabiso lepropati ye "Max Degree of Parallelism") (ngokungagqibekanga yi-0-inqunyelwe kuphela yinkqubo yokusebenza. ngokwayo kunye nohlelo lwe-MS SQL Server, kunye nomda kwipropathi ye-"Max Degree of Parallelism" ye-MS SQL Server yonke)

Akunakwenzeka ukunika iresiphi efanelekileyo ngokulinganayo kuzo zonke iimeko, oko kukuthi, kufuneka uhlalutye imibuzo enzima.
Ngokusekwe kumava am, ndicebisa le algorithm ilandelayo yezenzo kwiinkqubo ze-OLTP ukuqwalasela iimpawu zokuhambelana:

  1. okokuqala khubaza ukuhambelana ngokuseta iMax Degree yeParallelism ukuya ku-1 kwinqanaba lomzekelo uphela
  2. Hlalutya eyona mibuzo inzima kwaye ukhethe elona nani lemisonto kubo
  3. cwangcisa iMax Degree of Parallelism kwelona nani likhethiweyo lemisonto efunyenwe kwinyathelo lesi-2, kunye nogcino-lwazi oluthile lusete ixabiso leMax DOP elifunyenwe kwinyathelo lesi-2 kwisiseko sedatha ngasinye.
  4. Hlalutya eyona mibuzo inzima kwaye uchonge isiphumo esibi sokufunda imisonto emininzi. Ukuba kunjalo, ngoko yonyusa i-Cost Threshold for Parallelism.
    Kwiinkqubo ezifana no-1C, iMicrosoft CRM kunye ne-Microsoft NAV, kwiimeko ezininzi ukuthintela ukufundwa kwemisonto emininzi kufanelekile.

Kwakhona, ukuba unayo i-Standard edition, ngoko ke kwiimeko ezininzi ukuvinjelwa kwe-multi-threading kufanelekile ngenxa yokuba olu hlelo lulinganiselwe kwinani le-CPU cores.
I-algorithm echazwe ngasentla ayifanelekanga kwiinkqubo ze-OLAP.
Ngokusekwe kumava am, ndicebisa le algorithm ilandelayo yezenzo kwiinkqubo ze-OLAP ukumisela iimpawu zokuhambelana:

  1. Hlalutya eyona mibuzo inzima kwaye ukhethe elona nani lemisonto kubo
  2. cwangcisa iMax Degree of Parallelism kwelona nani likhethiweyo lemisonto efunyenwe kwinyathelo lesi-1, kunye nogcino-lwazi oluthile lusete ixabiso leMax DOP elifunyenwe kwinyathelo lesi-1 kwisiseko sedatha ngasinye.
  3. Hlalutya eyona mibuzo inzima kwaye uchonge isiphumo esibi sokukhawulelana nemali. Ukuba kunjalo, ngoko unokuthoba i-Cost Threshold yexabiso leParallelism, okanye phinda amanyathelo 1-2 ale algorithm.

Oko kukuthi, kwiinkqubo ze-OLTP sisuka kwi-single-threading ukuya kwi-multi-threading, kunye neenkqubo ze-OLAP, ngokuchaseneyo, sisuka kwi-multi-threading ukuya kwi-single-threading. Ngale ndlela ungakhetha ezona zicwangciso zeparallelism zombini kwidatabase ethile nakuyo yonke iMS SQL Server umzekelo.
Kwakhona kubalulekile ukuqonda ukuba izicwangciso zeepropati ze-concurrency kufuneka zitshintshwe ngokuhamba kwexesha, ngokusekelwe kwiziphumo zokubeka esweni ukusebenza kwe-MS SQL Server.

Iingcebiso zokumisela iiflegi zomkhondo

Ukususela kumava am kunye namava abalingane bam, ukwenzela ukusebenza kakuhle, ndincoma ukuseta iiflegi zokulandelela zilandelayo kwi-MS SQL Server yenkonzo yokuqhubela phambili kwiinguqulelo ze-2008-2016:

  1. 610 - Nciphisa ukuloga kokufakwa kwiitafile ezinezalathiso. Inokunceda ngokufaka kwiitafile ezinenani elikhulu leerekhodi kunye neentengiselwano ezininzi, kunye rhoqo ende WRITELOG ilinda utshintsho kwizalathisi.
  2. 1117 Ukuba ifayile kwiqela lefayile idibana nomda wokukhula okuzenzekelayo, zonke iifayile kwiqela lefayile zikhulisiwe.
  3. 1118 -Inyanzelisa zonke izinto ukuba zibekwe kwimiba eyahlukeneyo (ayivumeli imilinganiselo exubeneyo), enciphisa imfuno yokuskena iphepha le-SGAM, elisetyenziselwa ukulandelela imiba exutyiweyo.
  4. 1224 -Ikhubaza ukunyuka kwetshixo ngokusekelwe kubalo lokutshixa. Nangona kunjalo, ukusetyenziswa kwememori okugqithisileyo kunokuvumela ukunyuka kwesitshixo
  5. I-2371-Itshintsha umda wohlaziyo lwezibalo ezizenzekelayo ukuya kwinqanaba lohlaziyo lwezibalo ezizenzekelayo. Kubalulekile ukuhlaziya izicwangciso zemibuzo kwiitheyibhile ezinkulu apho kuchazwa ngokungachanekanga inani leerekhodi kukhokelela kwizicwangciso zokwenziwa ezigwenxa.
  6. 3226-Icinezela imiyalezo yempumelelo yogcino kwilog yempazamo
  7. 4199-Ibandakanya utshintsho kwisixhobo sokulungisa imibuzo esikhutshwe kwi-SQL Server rollups kunye neepakethi zenkonzo.
  8. 6532-6534 - Ibandakanya ukuphuculwa komsebenzi kwimibuzo eneentlobo zedatha yendawo
  9. I-8048 - Iguqula izinto zememori ezahluliweyo ze-NUMA zibe zezahlulo ze-CPU
  10. I-8780-Ivumela ukwabiwa kwexesha elongezelelweyo lokucwangcisa imibuzo. Ezinye izicelo ngaphandle kwale flegi zinokukhatywa kuba azinacebo lokubuza (impazamo enqabileyo kakhulu)
  11. I-8780-9389-Yenza isithinteli sememori yethutyana eyongezelelweyo yabaqhubi bemowudi ye-batch, ivumela umqhubi wemowudi ye-batch ukuba acele imemori eyongezelelweyo kwaye aphephe ukudlulisa idatha kwi-temdb ukuba imemori eyongezelelweyo iyafumaneka.

Kukwaluncedo ukwenza umkhondo iflegi 2016 phambi kwenguqulelo ka-2301, eyenza ukuba izigqibo eziphuculweyo ziphuculwe kwaye ngaloo ndlela incede ekukhetheni iiplani zemibuzo ezingcono. Nangona kunjalo, ukusukela kwinguqulelo ka-2016, ihlala inefuthe elibi kumaxesha amade okwenziwa kombuzo.
Kwakhona, kwiinkqubo ezinezalathisi ezininzi (umzekelo, kwi-database ye-1C), ndincoma ukuba wenze iflegi yokulandelela i-2330 isebenze, ekhubaza ukuqokelelwa kokusetyenziswa kwesalathisi, esinesiphumo esihle kwisistim.
Unokufunda ngakumbi malunga nokulandela iiflegi apha
Ukusuka kwikhonkco elingasentla, kubalulekile ukuqwalasela iinguqulelo kunye nokwakhiwa kwe-MS SQL Server, njengeenguqulelo ezintsha, ezinye iiflegi zokulandelela zinikwe amandla ngokungagqibekanga okanye azinasiphumo.
Unokwenza okanye uvale iflegi yokulandela umkhondo usebenzisa i-DBCC TRACEON kunye ne-DBCC TRACEOFF imiyalelo, ngokulandelelanayo. Bona iinkcukacha ezininzi apha
Ungafumana ubume beeflegi zomkhondo usebenzisa umyalelo we-DBCC TRACESTATUS: ngaphezulu
Ukuze umkhondo weeflegi ubandakanywe kuqaliso oluzenzekelayo lwenkonzo ye-MS SQL Server, kufuneka uye kuMphathi woLungiselelo lweseva yeSQL kwaye wongeze ezi flegi zomkhondo nge -T kwiipropati zenkonzo:
Eminye imiba yojongo lwe-MS SQL Server. Izikhokelo zokuSeta iiFlegi zokulandelela

Iziphumo

Eli nqaku lihlolisise imiba ethile yokubeka iliso kwi-MS SQL Server, ngoncedo apho unokwazi ukuchonga ngokukhawuleza ukunqongophala kwe-RAM kunye nexesha le-CPU ekhululekile, kunye nenani lezinye iingxaki ezingabonakaliyo. Iiflegi zokulandelela ezisetyenziswa ngokuqhelekileyo zahlaziywa.

Imithombo:

Β» SQL Server Linda Statistics
Β» SQL Server linda izibalo okanye nceda undixelele apho ibuhlungu khona
Β» Indlela yokujonga i-sys.dm_os_schedulers
Β» Ukusebenzisa i-Zabbix ukujonga i-MS SQL Server Database
Β» Indlela yokuphila yeSQL
Β» Landela iiflegi
Β» sql.ru

umthombo: www.habr.com

Yongeza izimvo