Баъзе ҷанбаҳои мониторинги MS SQL Server. Дастур оид ба танзими парчамҳои пайгирӣ

Пешгуфтор

Бисёр вақт корбарон, таҳиягарон ва маъмурони MS SQL Server DBMS бо мушкилоти иҷрои пойгоҳи додаҳо ё дар маҷмӯъ DBMS дучор меоянд, бинобар ин мониторинги MS SQL Server хеле муҳим аст.
Ин мақола илова ба мақола аст Истифодаи Zabbix барои мониторинги пойгоҳи додаҳои MS SQL Server ва он баъзе ҷанбаҳои мониторинги MS SQL Serverро фаро мегирад, аз ҷумла: чӣ гуна зуд муайян кардани кадом захираҳо, инчунин тавсияҳо оид ба гузоштани парчамҳои пайгирӣ.
Барои кор кардани скриптҳои зерин, шумо бояд схемаи inf -ро дар пойгоҳи додаҳои дилхоҳ ба таври зерин эҷод кунед:
Эҷоди схемаи inf

use <имя_БД>;
go
create schema inf;

Усули муайян кардани норасоии 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-ро эҷод кунем:
Эҷоди View 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 диққат диҳед. Агар онҳо дар маҷмӯъ аҳамият дошта бошанд, пас эҳтимолияти хеле баланд вуҷуд дорад, ки барои мисоли MS SQL Server RAM кофӣ нест. Арзишҳои назаррас барои ҳар як система алоҳида муайян карда мешаванд. Аммо, шумо метавонед бо зерин оғоз кунед: Фоиз>=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'
      );
    

Дар асоси динамикаи арзишҳои бадастомада барои ин ду нишондиҳанда, мо метавонем хулоса барорем, ки оё барои як мисоли MS SQL Server RAM кофӣ аст.

Усули ошкоркунии изофабори CPU

Барои муайян кардани набудани вақти протсессор, истифодаи намуди системаи 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. Дараҷаи максималии параллелизм - шумораи максималии риштаҳоро, ки ба ҳар як дархост ҷудо карда мешаванд, муқаррар мекунад (пешфарз 0 аст - танҳо аз ҷониби худи системаи амалиётӣ ва нашри MS SQL Server маҳдуд аст)
  2. Ҳадди хароҷот барои параллелизм - арзиши тахминии параллелизм (пешфарз 5 аст)
  3. Max DOP - шумораи максималии риштаҳоро, ки метавонанд ба ҳар як дархост дар сатҳи пойгоҳи додаҳо ҷудо карда шаванд, муқаррар мекунад (вале на бештар аз арзиши моликияти "Дараҷаи максималии параллелизм") (пешфарз 0 аст - танҳо аз ҷониби худи системаи оператсионӣ маҳдуд ва нашри MS SQL Server, инчунин маҳдудият дар моликияти "Дараҷаи максималии параллелизм" -и тамоми намунаи MS SQL Server)

Дар ин ҷо барои ҳама ҳолатҳо як рецепти хуб додан ғайриимкон аст, яъне шумо бояд дархостҳои вазнинро таҳлил кунед.
Аз таҷрибаи худам, ман алгоритми зерини амалҳоро барои системаҳои OLTP барои муқаррар кардани хосиятҳои параллелизм тавсия медиҳам:

  1. аввал параллелизмро бо гузоштани дараҷаи максимуми параллелизм ба 1 ғайрифаъол кунед
  2. дархостҳои вазнинтаринро таҳлил кунед ва шумораи оптималии риштаҳоро барои онҳо интихоб кунед
  3. Дараҷаи максималии параллелизмро ба шумораи оптималии интихобшудаи риштаҳое, ки аз қадами 2 гирифта шудаанд ва барои пойгоҳи додаҳои мушаххас арзиши максималии DOP-ро, ки аз қадами 2 барои ҳар як пойгоҳи додаҳо гирифта шудааст, таъин кунед
  4. дархостҳои вазнинтаринро таҳлил кунед ва таъсири манфии бисёрҷабҳаро муайян кунед. Агар ин тавр бошад, пас ҳадди арзиши параллелизмро зиёд кунед.
    Барои системаҳо, ба монанди 1C, Microsoft CRM ва Microsoft NAV, дар аксари ҳолатҳо, манъ кардани чанд ришта мувофиқ аст

Инчунин, агар як нашри стандартӣ мавҷуд бошад, пас дар аксари ҳолатҳо манъи чанд ришта мувофиқ аст, зеро ин нашр дар шумораи ядроҳои CPU маҳдуд аст.
Барои системаҳои OLAP, алгоритми дар боло тавсифшуда мувофиқ нест.
Аз таҷрибаи худам, ман алгоритми зерини амалҳоро барои системаҳои OLAP барои муқаррар кардани хосиятҳои параллелизм тавсия медиҳам:

  1. дархостҳои вазнинтаринро таҳлил кунед ва шумораи оптималии риштаҳоро барои онҳо интихоб кунед
  2. Дараҷаи максималии параллелизмро ба шумораи оптималии интихобшудаи риштаҳое, ки аз қадами 1 гирифта шудаанд ва барои пойгоҳи додаҳои мушаххас арзиши максималии DOP-ро, ки аз қадами 1 барои ҳар як пойгоҳи додаҳо гирифта шудааст, таъин кунед
  3. пурсишҳои вазнинтаринро таҳлил кунед ва таъсири манфии маҳдуд кардани ҳамоҳангиро муайян кунед. Агар ин тавр бошад, пас ё ҳадди арзишро барои арзиши параллелизм паст кунед ё қадамҳои 1-2-и ин алгоритмро такрор кунед

Яъне барои системаҳои OLTP мо аз як ришта ба чанд ришта мегузарем ва барои системаҳои OLAP, баръакс, мо аз чанд ришта ба як ришта мегузарем. Ҳамин тариқ, шумо метавонед танзимоти оптималии параллелизмро ҳам барои пойгоҳи додаҳои мушаххас ва ҳам тамоми намунаи 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 бароварда шудаанд, дар бар мегирад
  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 равед ва ин парчамҳои пайгирӣ тавассути -T дар хосиятҳои хидмат илова кунед:
Баъзе ҷанбаҳои мониторинги MS SQL Server. Дастур оид ба танзими парчамҳои пайгирӣ

Натиҷаҳо

Дар ин мақола, баъзе ҷанбаҳои мониторинги MS SQL Server таҳлил карда шуданд, ки бо ёрии онҳо шумо метавонед нарасидани хотираи оперативӣ ва вақти ройгони CPU ва инчунин як қатор мушкилоти дигари камтар маълумро зуд муайян кунед. Парчамҳои пайгирии маъмултарин мавриди баррасӣ қарор гирифтанд.

Манбаъҳо:

» Омори интизории SQL Server
» SQL Server оморро интизор шавед ё лутфан ба ман бигӯед, ки дар куҷо дард мекунад
» Намоиши система sys.dm_os_schedulers
» Истифодаи Zabbix барои мониторинги пойгоҳи додаҳои MS SQL Server
» Тарзи ҳаёти SQL
» Парчамҳои пайгирӣ
» sql.ru

Манбаъ: will.com

Илова Эзоҳ