Ny lafiny sasany amin'ny fanaraha-maso MS SQL Server. TorolΓ lana momba ny fametrahana saina trace

sasin-teny

Matetika, ny mpampiasa, ny mpamorona ary ny mpitantana ny MS SQL Server DBMS dia miatrika olana momba ny fahombiazan'ny angon-drakitra na ny DBMS amin'ny ankapobeny, noho izany dia tena ilaina ny fanaraha-maso MS SQL Server.
Fanampiny amin'ny lahatsoratra ity lahatsoratra ity Mampiasa Zabbix hanaraha-maso MS SQL Server Database ary handrakotra ny lafiny sasany amin'ny fanaraha-maso ny MS SQL Server, indrindra indrindra: ny fomba hamaritana haingana ny loharanon-karena tsy ampy, ary koa ny tolo-kevitra amin'ny fametrahana sainam-pirenena.
Mba hiasa ireto script manaraka ireto dia mila mamorona schema inf ianao ao amin'ny angon-drakitra tianao:
Mamorona schema inf

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

Fomba hamantarana ny tsy fahampian'ny RAM

Ny famantarana voalohany amin'ny tsy fahampian'ny RAM dia ny tranga iray amin'ny MS SQL Server mihinana ny RAM rehetra natokana ho azy.
Mba hanaovana izany dia hamorona ity fanehoana manaraka ity ny inf.vRAM izahay:
Mamorona ny fijery 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;

Avy eo dia azonao atao ny mamaritra fa ny ohatra iray amin'ny MS SQL Server dia mandany ny fahatsiarovana rehetra omena azy amin'ny alalan'ity fanontaniana manaraka ity:

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

Raha SQL_server_physical_memory_in_use_Mb dia lehibe noho na mitovy amin'ny SQL_server_committed_target_Mb, dia tokony hojerena ny antontan'isa miandry.
Mba hamaritana ny tsy fahampian'ny RAM amin'ny alΓ lan'ny antontan'isa fiandrasana, andao hamorona ny fijery inf.vWaits:
Mamorona ny inf.vWaits View

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];

Amin'ity tranga ity, azonao atao ny mamaritra ny tsy fahampian'ny RAM amin'ny fanontaniana manaraka:

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

Eto dia mila mitandrina ny tondro isan-jato sy AvgWait_S. Raha manan-danja amin'ny fitambarany izy ireo, dia misy ny mety ho tsy ampy RAM ho an'ny MS SQL Server ohatra. Ny soatoavina manan-danja dia voafaritra tsirairay ho an'ny rafitra tsirairay. Na izany aza, afaka manomboka amin'ireto manaraka ireto ianao: Percentage>=1 ary AvgWait_S>=0.005.
Mba hamoahana tondro amin'ny rafitra fanaraha-maso (ohatra, Zabbix), azonao atao ny mamorona ireto fanontaniana roa manaraka ireto:

  1. firy ny karazana fiandrasana ataon'ny RAM amin'ny isan-jato (ny fitambaran'ny karazana fiandrasana toy izany):
    select coalesce(sum([Percentage]), 0.00) as [Percentage]
    from [inf].[vWaits]
           where [WaitType] in (
               'PAGEIOLATCH_XX',
               'RESOURCE_SEMAPHORE',
                'RESOURCE_SEMAPHORE_QUERY_COMPILE'
      );
    
  2. firy ny karazana fiandrasana RAM ao anatin'ny milisegondra (ny sanda ambony indrindra amin'ny fahatarana antonony rehetra ho an'ny karazana fiandrasana rehetra toy izany):
    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'
      );
    

Miorina amin'ny dinamikan'ny soatoavina azo ho an'ireo tondro roa ireo, azontsika atao ny manatsoaka hevitra raha ampy ny RAM ho an'ny MS SQL Server.

CPU Overload Detection Method

Mba hamantarana ny tsy fahampian'ny processeur dia ampy ny mampiasa ny sys.dm_os_schedulers system view. Eto, raha mihoatra ny 1 ny runnable_tasks_count, dia misy ny mety ho tsy ampy ny isan'ny cores ho an'ny MS SQL Server ohatra.
Mba hamoahana famantarana ho an'ny rafitra fanaraha-maso (ohatra, Zabbix), azonao atao ny mamorona ireto fanontaniana manaraka ireto:

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

Miorina amin'ny fihetsehan'ny soatoavina azo amin'ity tondro ity, azontsika atao ny manatsoaka hevitra raha ampy ny fotoana processeur (ny isan'ny cores CPU) ho an'ny MS SQL Server.
Na izany aza, zava-dehibe ny mitadidy fa ny fangatahana dia afaka mangataka kofehy maromaro indray mandeha. Ary indraindray ny optimizer dia tsy afaka manombana tsara ny fahasarotan'ny fangatahana. Avy eo ny fangatahana dia azo omena kofehy be loatra izay tsy azo karakaraina miaraka amin'ny fotoana nomena. Ary izany koa dia miteraka karazana fiandrasana mifandray amin'ny tsy fahampian'ny fotoanan'ny processeur, ary ny fitomboan'ny filaharana ho an'ny mpandrindra izay mampiasa core CPU manokana, izany hoe ny runnable_tasks_count indicator dia hitombo amin'ny toe-javatra toy izany.
Amin'ity tranga ity, alohan'ny hampitomboana ny isan'ny cores CPU dia ilaina ny manitsy tsara ny fananana parallelism amin'ny MS SQL Server ohatra, ary avy amin'ny version 2016, amboary tsara ny fananana parallelism amin'ny angon-drakitra ilaina:
Ny lafiny sasany amin'ny fanaraha-maso MS SQL Server. TorolΓ lana momba ny fametrahana saina trace

Ny lafiny sasany amin'ny fanaraha-maso MS SQL Server. TorolΓ lana momba ny fametrahana saina trace
Eto ianao dia tokony handinika ireto parameter manaraka ireto:

  1. Max Degree of Parallelism - mametraka ny isa ambony indrindra amin'ny kofehy azo atokana ho an'ny fangatahana tsirairay (ny default dia 0 - voafetra amin'ny rafitra miasa sy ny fanontana MS SQL Server ihany)
  2. Fehezan-tsarin'ny paralelisma - tombanana ny vidin'ny miralenta (5)
  3. Max DOP - mametraka ny isa ambony indrindra amin'ny kofehy azo atokana ho an'ny fanontaniana tsirairay amin'ny haavon'ny angon-drakitra (fa tsy mihoatra ny sandan'ny fananana "Max Degree of Parallelism") (ny default dia 0 - voafetra amin'ny rafitra miasa ihany ary ny fanontana MS SQL Server, ary koa ny famerana ny fananana "Max Degree of Parallelism" amin'ny ohatra manontolo amin'ny MS SQL Server)

Eto dia tsy azo atao ny manome fomba tsara mitovy amin'ny tranga rehetra, izany hoe mila mamakafaka fanontaniana mavesatra ianao.
Avy amin'ny zavatra niainako manokana dia manoro ity algorithm hetsika manaraka ity ho an'ny rafitra OLTP aho amin'ny fametrahana fananana parallèle:

  1. Esory aloha ny parallelism amin'ny alΓ lan'ny fametrahana ny mari-pahaizana max de parallelism amin'ny instance ho 1
  2. famakafakana ny fangatahana mavesatra indrindra ary safidio ny isan'ny kofehy tsara indrindra ho azy ireo
  3. apetraho ny Max Degree of Parallelism amin'ny isa voafantina tsara indrindra azo avy amin'ny dingana 2, ary ho an'ny tahiry manokana dia apetraho ny sanda Max DOP azo avy amin'ny dingana 2 ho an'ny tahiry tsirairay.
  4. famakafakana ny fangatahana mavesatra indrindra ary fantaro ny fiantraikany ratsy amin'ny multithreading. Raha izany no izy, dia ampitomboy ny fetran'ny vidin'ny paralelisma.
    Ho an'ny rafitra toy ny 1C, Microsoft CRM ary Microsoft NAV, amin'ny ankamaroan'ny tranga, ny fandrarana ny multithreading dia mety.

Ary koa, raha misy ny Standard fanontana, dia amin'ny ankamaroan'ny toe-javatra ny fandrarana ny multithreading dia mety noho ny zava-misy fa ity andiany ity dia voafetra amin'ny isan'ny CPU cores.
Ho an'ny rafitra OLAP dia tsy mety ny algorithm voalaza etsy ambony.
Avy amin'ny zavatra niainako manokana dia manoro ity algorithm hetsika manaraka ity ho an'ny rafitra OLAP aho amin'ny fametrahana fananana parallèle:

  1. famakafakana ny fangatahana mavesatra indrindra ary safidio ny isan'ny kofehy tsara indrindra ho azy ireo
  2. apetraho ny Max Degree of Parallelism amin'ny isa voafantina tsara indrindra azo avy amin'ny dingana 1, ary ho an'ny tahiry manokana dia apetraho ny sanda Max DOP azo avy amin'ny dingana 1 ho an'ny tahiry tsirairay.
  3. mamakafaka ny fanontaniana mavesatra indrindra ary fantaro ny fiantraikany ratsy amin'ny famerana ny concurrency. Raha izany no izy, dia ampidino ny sandan'ny Cost Threshold for Parallelism, na avereno ny dingana 1-2 amin'ity algorithm ity.

Izany hoe, ho an'ny rafitra OLTP dia mandeha amin'ny kofehy tokana mankany amin'ny kofehy maromaro isika, ary amin'ny rafitra OLAP, ny mifanohitra amin'izany, dia avy amin'ny kofehy maromaro mankany amin'ny kofehy tokana. Noho izany, azonao atao ny misafidy ny toe-javatra parallèle tsara indrindra ho an'ny angon-drakitra manokana sy ny ohatra manontolo amin'ny MS SQL Server.
Zava-dehibe ihany koa ny mahatakatra fa mila ovaina ny firafitry ny fananana parallèle rehefa mandeha ny fotoana, mifototra amin'ny vokatry ny fanaraha-maso ny fahombiazan'ny MS SQL Server.

TorolΓ lana momba ny fametrahana saina trace

Avy amin'ny traikefako manokana sy ny traikefan'ny mpiara-miasa amiko, ho an'ny fampandehanana tsara indrindra, dia manoro hevitra ny hametraka ireto saina manaraka ireto aho amin'ny haavon'ny serivisy MS SQL Server ho an'ny dikan-teny 2008-2016:

  1. 610 - Fampihenana ny fampidinana ny fampidirana ao anaty tabilao misy index. Afaka manampy amin'ny fampidirana an-databatra misy firaketana maro sy fifampiraharahana maro, miaraka amin'ny WRITELOG miandry fiovana matetika amin'ny fanondroana
  2. 1117 - Raha mahafeno ny fepetra takian'ny fetran'ny autogrowth ny rakitra iray ao amin'ny vondron-drakitra iray, dia mitombo ny rakitra rehetra ao amin'ny vondron-drakitra.
  3. 1118 - Manery ny zavatra rehetra hipetraka amin'ny velarana samihafa (fandrarana ny velarana mifangaro), izay manamaivana ny filΓ na scan ny pejin'ny SGAM, izay ampiasaina amin'ny fanarahana ireo velarana mifangaro.
  4. 1224 - Mampiato ny fiakaran'ny hidin-trano arakaraka ny isan'ny hidin-trano. Na izany aza, ny fampiasana fitadidiana be loatra dia mety hiteraka firongatry ny hidin-trano
  5. 2371 - Manova ny tokonam-baravaran'ny fanavaozana statistika mandeha ho azy ho amin'ny tokonam-baravaran'ny fanavaozana statistika mandeha ho azy. Zava-dehibe amin'ny fanavaozana ny drafitry ny fangataham-panontaniana ho an'ny latabatra lehibe, izay miteraka drafitry ny fanatanterahana diso ny fanisana ny firaketana.
  6. 3226 - Manakana ny hafatra fahombiazana backup ao amin'ny diarin'ny hadisoana
  7. 4199 - Ahitana fiovana amin'ny optimizer fanontaniana navoaka tao amin'ny CU sy SQL Server Service Packs
  8. 6532-6534 - Ao anatin'izany ny fanatsarana ny fampandehanana amin'ny fampandehanana fangatahana amin'ny karazana angona spatial
  9. 8048 - Mamadika ny zavatra fahatsiarovana nozaraina NUMA ho zavatra voazarazara amin'ny CPU
  10. 8780 - Mamela fotoana fanampiny ho an'ny fandrafetana fanontaniana. Ny fangatahana sasany tsy misy an'ity saina ity dia mety ho lavina satria tsy manana drafitry ny fangataham-panontaniana (tsy fahita firy)
  11. 8780 - 9389 - Manome buffer fitadidiana fanomezan-dΓ lana fanampiny ho an'ny fanambarana mode batch, izay ahafahan'ny mpandraharaha mode batch mangataka fitadidiana fanampiny ary misoroka ny famindrana angon-drakitra mankany amin'ny tempdb raha misy fitadidiana fanampiny

Talohan'ny 2016 koa, ilaina ny mamela ny trace flag 2301, izay ahafahana manatsara kokoa ny fanohanana ny fanapahan-kevitra ary noho izany dia manampy amin'ny fisafidianana drafitra fangatahana marina kokoa. Na izany aza, amin'ny dikan-teny 2016, matetika dia misy fiantraikany ratsy amin'ny fotoanan'ny fametrahana fanontaniana amin'ny ankapobeny.
Ary koa, ho an'ny rafitra manana index be dia be (ohatra, ho an'ny angona 1C) dia manoro hevitra aho ny hamela ny trace flag 2330, izay manakana ny fanangonana ny fampiasana index, izay misy fiantraikany tsara amin'ny rafitra.
Raha mila fanazavana fanampiny momba ny saina trace dia jereo eto
Avy amin'ny rohy etsy ambony, zava-dehibe ihany koa ny mandinika ny dikan-teny MS SQL Server sy ny fananganana, fa ho an'ny dikan-teny vaovao, ny sainam-pirenena sasany dia alefa amin'ny alΓ lan'ny default na tsy misy fiantraikany.
Azonao atao ny mamadika ny saina trace miaraka amin'ny baiko DBCC TRACEON sy DBCC TRACEOFF. Raha mila fanazavana fanampiny dia jereo eto
Azonao atao ny mahazo ny satan'ny saina trace amin'ny alΓ lan'ny baiko DBCC TRACESTATUS: More info
Mba hampidirana ny saina trace ao amin'ny autostart amin'ny serivisy MS SQL Server dia tsy maintsy mandeha any amin'ny SQL Server Configuration Manager ianao ary ampio ireto saina trace ireto amin'ny alΓ lan'ny -T ao amin'ny fananana serivisy:
Ny lafiny sasany amin'ny fanaraha-maso MS SQL Server. TorolΓ lana momba ny fametrahana saina trace

vokatra

Ao amin'ity lahatsoratra ity dia nodinihina ny lafiny sasany amin'ny fanaraha-maso ny MS SQL Server, izay ahafahanao mamantatra haingana ny tsy fahampian'ny RAM sy ny fotoana CPU maimaim-poana, ary koa ny olana hafa tsy dia mazava loatra. Nojerena ireo saina trace fampiasa matetika indrindra.

loharanom-baovao:

Β» Ny antontan'isa fiandrasana SQL Server
Β» SQL Server miandry antontan'isa na mba lazao ahy hoe aiza no maharary
Β» System view sys.dm_os_schedulers
Β» Mampiasa Zabbix hanaraha-maso MS SQL Server Database
Β» SQL Lifestyle
Β» Trace Flags
Β» sql.ru

Source: www.habr.com

Add a comment