አንዳንድ ዹ MS SQL አገልጋይ ክትትል ገጜታዎቜ። ዚመኚታተያ ባንዲራዎቜን ለማዘጋጀት መመሪያዎቜ

መቅድም

ብዙ ጊዜ ዹMS SQL አገልጋይ ዲቢኀምኀስ ተጠቃሚዎቜ፣ ገንቢዎቜ እና አስተዳዳሪዎቜ ዚውሂብ ጎታው ወይም በአጠቃላይ ዲቢኀምኀስ ዚአፈጻጞም ቜግሮቜ ያጋጥሟ቞ዋል፣ ስለዚህ MS SQL Server ክትትል በጣም ጠቃሚ ነው።
ይህ ጜሑፍ ለጜሑፉ ተጚማሪ ነው ዹ MS SQL አገልጋይ ዳታቀዝ ለመቆጣጠር Zabbix ን በመጠቀም እና ዹ MS SQL አገልጋይን በተለይም ዚክትትል አንዳንድ ገጜታዎቜን ይሾፍናል-ዚትኞቹ ሀብቶቜ እንደጠፉ በፍጥነት እንዎት እንደሚወስኑ ፣ እንዲሁም ዚመኚታተያ ባንዲራዎቜን ለማዘጋጀት ምክሮቜን ይሰጣል ።
ዚሚኚተሉት ስክሪፕቶቜ እንዲሰሩ በሚፈለገው ዳታቀዝ ውስጥ ዹ inf schema መፍጠር ያስፈልግዎታል።
ዚኢንፍ እቅድ መፍጠር

use <ОЌя_БД>;
go
create schema inf;

ዹ RAM እጥሚትን ለመለዚት ዘዮ

ዹ RAM እጥሚት ዚመጀመሪያው አመልካቜ ዹ MS SQL አገልጋይ ምሳሌ ለእሱ ዹተመደበውን ራም ሲበላ ነው።
ይህንን ለማድሚግ ዹሚኹተለውን ዹ 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 አገልጋይ ምሳሌ በሚኹተለው መጠይቅ ዚተመደበለትን ማህደሹ ትውስታ ሁሉ እንደሚበላ መወሰን ትቜላለህ።

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 ትኩሚት መስጠት አለብዎት። በጠቅላላው ጉልህ ኹሆኑ ለ MS SQL አገልጋይ ምሳሌ በቂ ራም አለመኖሩ በጣም ኹፍተኛ ዕድል አለ. ጠቃሚ እሎቶቜ ለእያንዳንዱ ስርዓት በተናጠል ይወሰናሉ. ሆኖም፣ በሚኹተለው መጀመር ትቜላለህ፡ በመቶኛ>=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 አገልጋይ ምሳሌ በቂ ራም ካለ መደምደም እንቜላለን።

ሲፒዩ ኹመጠን በላይ መጫን ዹማወቅ ዘዮ

ዚአቀነባባሪውን ጊዜ እጥሚት ለመለዚት ዹ sys.dm_os_schedulers ስርዓት እይታን መጠቀም በቂ ነው። እዚህ፣ ዹ runnable_tasks_count በቋሚነት ኹ1 በላይ ኚሆነ፣ ለኀምኀስ ኀስኬኀል አገልጋይ ምሳሌ ዚኮሮቜ ብዛት በቂ አለመሆኑ ኹፍተኛ እድል አለ።
ጠቋሚን ወደ ዚክትትል ስርዓት (ለምሳሌ ዛቢክስ) ለማውጣት ዹሚኹተለውን መጠይቅ መፍጠር ይቜላሉ።

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

ለዚህ አመላካቜ በተገኙት እሎቶቜ ተለዋዋጭነት ላይ በመመርኮዝ ለ MS SQL አገልጋይ ምሳሌ በቂ ዚአቀነባባሪ ጊዜ (ዚሲፒዩ ኮሮቜ ብዛት) ካለ መደምደም እንቜላለን።
ሆኖም ግን, ጥያቄዎቜ እራሳ቞ው በአንድ ጊዜ ብዙ ክሮቜ ሊጠይቁ እንደሚቜሉ ግምት ውስጥ ማስገባት አስፈላጊ ነው. እና አንዳንድ ጊዜ አመቻቹ ዚጥያቄውን ውስብስብነት በትክክል መገመት አይቜልም። ኚዚያም ጥያቄው በተጠቀሰው ጊዜ በተመሳሳይ ጊዜ ሊሰሩ ዚማይቜሉ በጣም ብዙ ክሮቜ ሊመደብ ይቜላል. ይህ ደግሞ ኚማቀነባበሪያ ጊዜ እጥሚት ጋር ዚተያያዘ ዚጥበቃ አይነት እና ዹተወሰኑ ሲፒዩ ኮሮቜን ለሚጠቀሙ መርሐግብር አውጪዎቜ ዹወሹፋ እድገትን ያስኚትላል፣ ማለትም ዹ runnable_tasks_count አመልካቜ በእንደዚህ ዓይነት ሁኔታዎቜ ውስጥ ያድጋል።
በዚህ ሁኔታ ዚሲፒዩ ኮሮቜን ቁጥር ኹመጹመርዎ በፊት ዹ MS SQL አገልጋይ ምሳሌ እራሱን ትይዩ ባህሪያትን በትክክል ማዋቀር እና ኹ 2016 ስሪት ውስጥ አስፈላጊ ዚሆኑትን ዚውሂብ ጎታዎቜ ትይዩ ባህሪያትን በትክክል ማዋቀር አስፈላጊ ነው.
አንዳንድ ዹ MS SQL አገልጋይ ክትትል ገጜታዎቜ። ዚመኚታተያ ባንዲራዎቜን ለማዘጋጀት መመሪያዎቜ

አንዳንድ ዹ MS SQL አገልጋይ ክትትል ገጜታዎቜ። ዚመኚታተያ ባንዲራዎቜን ለማዘጋጀት መመሪያዎቜ
እዚህ ለሚኚተሉት መለኪያዎቜ ትኩሚት መስጠት አለብዎት:

  1. ኹፍተኛ ዚትይዩ ዲግሪ - ለእያንዳንዱ ጥያቄ ሊመደብ ዚሚቜለውን ኹፍተኛውን ዚክሮቜ ብዛት ያዘጋጃል (ነባሪው 0 - በስርዓተ ክወናው በራሱ እና በ MS SQL አገልጋይ እትም ብቻ ዹተገደበ)
  2. ዹዋጋ ገደብ ለትይዩነት - ዹተገመተው ዚትይዩ ዋጋ (ነባሪው 5 ነው)
  3. ማክስ DOP - ለእያንዳንዱ ጥያቄ በመሹጃ ቋት ደሹጃ ሊመደብ ዚሚቜለውን ኹፍተኛውን ዚክሮቜ ብዛት ያዘጋጃል (ነገር ግን ኹ "Max Degree of Parallelism" ንብሚት ዋጋ አይበልጥም) (ነባሪው 0 - በስርዓተ ክወናው በራሱ ብቻ ዹተገደበ እና ዹ MS SQL አገልጋይ እትም ፣ እንዲሁም ዹ MS SQL አገልጋይ አጠቃላይ ዹ “ማክስ ዲግሪ ትይዩ” ንብሚት ላይ ያለው ገደብ)

እዚህ ለሁሉም ጉዳዮቜ እኩል ዹሆነ ጥሩ ዚምግብ አዘገጃጀት መመሪያ መስጠት አይቻልም, ማለትም ኚባድ ጥያቄዎቜን መተንተን ያስፈልግዎታል.
ኚራሎ ተሞክሮ፣ ትይዩ ባህሪያትን ለማዘጋጀት ለ OLTP ስርዓቶቜ ዹሚኹተለውን ዚእርምጃዎቜ ስልተ ቀመር እመክራለሁ፡

  1. በመጀመሪያ ምሳሌ-ሰፊ ኹፍተኛ ዚትይዩ ዲግሪ ወደ 1 በማቀናበር ትይዩነትን ያሰናክሉ።
  2. በጣም ኚባድ ዚሆኑትን ጥያቄዎቜን ይመርምሩ እና ለእነሱ ጥሩውን ዚክሮቜ ብዛት ይምሚጡ
  3. ኹፍተኛውን ዚትይዩ ዲግሪ ኹደሹጃ 2 ለተገኙት ምርጥ ዚክሮቜ ብዛት ያቀናብሩ እና ለተወሰኑ ዚውሂብ ጎታዎቜ ለእያንዳንዱ ዚውሂብ ጎታ ኹደሹጃ 2 ዹሚገኘውን Max DOP እሎት ያዘጋጁ።
  4. በጣም ኚባድ ዚሆኑትን ጥያቄዎቜን ይተንትኑ እና ዚብዝሃ-ክር ንባብ አሉታዊ ተፅእኖን ይለዩ። ኚሆነ፣ ለትይዩነት ዚወጪ ገደብ ይጚምሩ።
    እንደ 1ሲ፣ ማይክሮሶፍት CRM እና ማይክሮሶፍት ኀንኀቪ ላሉ ስርዓቶቜ፣ በአብዛኛዎቹ ጉዳዮቜ፣ ባለ ብዙ ክር መኹልኹል ተስማሚ ነው።

እንዲሁም ፣ መደበኛ እትም ካለ ፣ ኚዚያ በአብዛኛዎቹ ሁኔታዎቜ ይህ እትም በሲፒዩ ኮሮቜ ብዛት ዹተገደበ በመሆኑ ባለብዙ-ክር መኹልኹል ተስማሚ ነው።
ለ OLAP ስርዓቶቜ, ኹላይ ዹተገለፀው ስልተ ቀመር ተስማሚ አይደለም.
ኚራሎ ተሞክሮ በመነሳት ትይዩ ባህሪያትን ለማዘጋጀት ለ OLAP ስርዓቶቜ ዹሚኹተለውን ዚድርጊት ስልተ ቀመር እመክራለሁ፡

  1. በጣም ኚባድ ዚሆኑትን ጥያቄዎቜን ይመርምሩ እና ለእነሱ ጥሩውን ዚክሮቜ ብዛት ይምሚጡ
  2. ኹፍተኛውን ዚትይዩ ዲግሪ ኹደሹጃ 1 ለተገኙት ምርጥ ዚክሮቜ ብዛት ያቀናብሩ እና ለተወሰኑ ዚውሂብ ጎታዎቜ ለእያንዳንዱ ዚውሂብ ጎታ ኹደሹጃ 1 ዹሚገኘውን Max DOP እሎት ያዘጋጁ።
  3. በጣም ኚባድ ዚሆኑትን መጠይቆቜን ይተንትኑ እና ኮንፈሚንስን መገደብ ዚሚያስኚትለውን አሉታዊ ውጀት ይለዩ። ኚሆነ፣ ወይ ለትይዩ እሎት ዹዋጋ ጣራውን ዝቅ ያድርጉ ወይም ዹዚህን ስልተ ቀመር 1-2 ይድገሙት።

ማለትም ለ OLTP ስርዓቶቜ ኚአንድ-ክር ወደ ባለብዙ-ክር እና ለ OLAP-systems, በተቃራኒው, ኚብዙ-ክር ወደ ነጠላ-ክር እንሄዳለን. ስለዚህ ለሁለቱም ለተወሰነ ዚውሂብ ጎታ እና ለ MS SQL አገልጋይ አጠቃላይ ምሳሌ ትክክለኛውን ትይዩ ቅንብሮቜን መምሚጥ ይቜላሉ።
ዹ MS SQL አገልጋይ አፈፃፀምን በመኚታተል ውጀቶቜ ላይ በመመርኮዝ ፣ ዚትይዩ ባህሪዎቜ ቅንጅቶቜ በጊዜ ሂደት መለወጥ እንደሚያስፈልጋ቞ው መሚዳት አስፈላጊ ነው።

ዚመኚታተያ ባንዲራዎቜን ለማዘጋጀት መመሪያዎቜ

ኚራሎ ልምድ እና ኚባልደሚቊቌ ልምድ በመነሳት ለተሻለ አፈጻጞም፣ ለ2008-2016 ስሪቶቜ በ MS SQL አገልጋይ አገልግሎት ዚሩጫ ደሹጃ ላይ ዚሚኚተሉትን ዚመኚታተያ ባንዲራዎቜ እንዲያዘጋጁ እመክራለሁ።

  1. 610 - በመሹጃ ጠቋሚ ሰንጠሚዊቜ ውስጥ ዚማስገባት ቀንሷል። ብዙ መዝገቊቜን እና ብዙ ግብይቶቜን በሰንጠሚዥ ውስጥ ማስገባት ሊያግዝ ይቜላል፣በተደጋጋሚ ሹጅም WRITELOG በመሹጃ ጠቋሚዎቜ ላይ ለውጊቜን ይጠብቃል።
  2. 1117 - በፋይል ቡድን ውስጥ ያለ ፋይል ዚራስ-ዕድገት ገደብ መስፈርቶቜን ዚሚያሟላ ኹሆነ በፋይል ቡድን ውስጥ ያሉ ሁሉም ፋይሎቜ ያድጋሉ።
  3. 1118 - ሁሉም ዕቃዎቜ በተለያዚ መጠን እንዲቀመጡ ያስገድዳ቞ዋል (ዚተደባለቀ መጠን መኹልኹል) ፣ ይህም ዹተቀላቀሉ መጠኖቜን ለመኚታተል ዚሚያገለግል ዹ SGAM ገጜን ዚመቃኘት አስፈላጊነትን ይቀንሳል።
  4. 1224 - በመቆለፊያዎቜ ብዛት ላይ በመመስሚት ዚመቆለፊያ መጹመርን ያሰናክላል. ይሁን እንጂ ኹመጠን በላይ ዹማህደሹ ትውስታ አጠቃቀም ዚመቆለፊያ መጹመርን ሊፈጥር ይቜላል
  5. 2371 - ዹቋሚ አውቶማቲክ ስታቲስቲክስ ማሻሻያ ጣራን ወደ ተለዋዋጭ አውቶማቲክ ስታስቲክስ ማሻሻያ ገደብ ይለውጣል። ትክክለኛ ያልሆነ ዚመዝገብ ብዛት ዚተሳሳቱ ዚማስፈጞሚያ ዕቅዶቜን ዚሚያስኚትል ለትልቅ ጠሚጎዛዎቜ ዚጥያቄ ዕቅዶቜን ለማዘመን አስፈላጊ ነው።
  6. 3226 - በስህተት ምዝግብ ማስታወሻ ውስጥ ዚመጠባበቂያ ዚስኬት መልዕክቶቜን ያስወግዳል
  7. 4199 - በCUs እና በSQL አገልጋይ አገልግሎት ጥቅሎቜ ውስጥ በተለቀቀው ዹመጠይቅ አመቻቜ ላይ ዹተደሹጉ ለውጊቜን ያካትታል።
  8. 6532-6534 - በቊታ መሹጃ አይነቶቜ ላይ ለሚደሹጉ ዹመጠይቅ ስራዎቜ ዚአፈጻጞም ማሻሻያዎቜን ያካትታል
  9. 8048 - NUMA ዹተኹፋፈሉ ማህደሹ ትውስታ ነገሮቜን ወደ ሲፒዩ ዹተኹፋፈሉ ይለውጣል
  10. 8780 - ለጥያቄ እቅድ ተጚማሪ ጊዜ መመደብን ያስቜላል። አንዳንድ ዹዚህ ባንዲራ ዹሌላቾው ጥያቄዎቜ ውድቅ ሊደሹጉ ይቜላሉ ምክንያቱም ዹመጠይቅ እቅድ ስለሌላ቞ው (በጣም አልፎ አልፎ ሳንካ)
  11. 8780 - 9389 - ለባቜ ሁነታ መግለጫዎቜ ተጚማሪ ተለዋዋጭ ግራንት ማህደሹ ትውስታ ቋት ያስቜላል፣ ይህም ዚባቜ ሞድ ኊፕሬተር ተጚማሪ ማህደሹ ትውስታን እንዲጠይቅ እና ተጚማሪ ማህደሹ ትውስታ ካለ ወደ ቎ምፕድቢ መሹጃን እንዳያንቀሳቅስ ያስቜለዋል።

እንዲሁም ኹ2016 በፊት፣ ዚተሻሻለ ዚውሳኔ ድጋፍ ማሻሻያዎቜን ዚሚያስቜለውን ዚክትትል ባንዲራ 2301ን ማንቃት ጠቃሚ ነው፣ እና በዚህም ዹበለጠ ትክክለኛ ዹመጠይቅ እቅዶቜን ለመምሚጥ ይሚዳል። ሆኖም፣ እንደ 2016 ስሪት፣ ብዙ ጊዜ በአጠቃላይ ሹጅም ዚጥያቄ ማስፈጞሚያ ጊዜ ላይ አሉታዊ ተጜእኖ ይኖሚዋል።
እንዲሁም ብዙ ኢንዎክሶቜ ላሏቾው ስርዓቶቜ (ለምሳሌ ለ 1C ዳታቀዝ)፣ ባንዲራ 2330ን ማንቃት እመክራለሁ፣ ይህም በአጠቃላይ በስርዓቱ ላይ በጎ ተጜእኖ ያለው ዹመሹጃ ጠቋሚ አጠቃቀምን ያሰናክላል።
ስለ ባንዲራዎቜ ተጚማሪ መሹጃ ለማግኘት ይመልኚቱ እዚህ
ኹላይ ካለው አገናኝ፣ ዹ MS SQL አገልጋይ ስሪቶቜን እና ግንባታዎቜን ግምት ውስጥ ማስገባት አስፈላጊ ነው ፣ ምክንያቱም ለአዳዲስ ስሪቶቜ አንዳንድ ዚመኚታተያ ባንዲራዎቜ በነባሪነት ይነቃሉ ወይም ምንም ውጀት ዚላ቞ውም።
ዚመኚታተያ ባንዲራውን በ DBCC TRACEON እና DBCC TRACEOFF ትዕዛዞቜ በቅደም ተኹተል ማብራት እና ማጥፋት ይቜላሉ። ለተጚማሪ ዝርዝሮቜ ይመልኚቱ እዚህ
ዹ DBCC TRACESTATUS ትዕዛዝን በመጠቀም ዚመኚታተያ ባንዲራዎቜን ሁኔታ ማግኘት ይቜላሉ፡- ተጚማሪ መሹጃ
ዚክትትል ባንዲራዎቜ በ MS SQL አገልጋይ አገልግሎት ራስ-ጀምር ውስጥ እንዲካተቱ ወደ SQL Server Configuration Manager ይሂዱ እና እነዚህን ዚመኚታተያ ባንዲራዎቜ በ -T በአገልግሎት ንብሚቶቜ ውስጥ ማኹል አለብዎት።
አንዳንድ ዹ MS SQL አገልጋይ ክትትል ገጜታዎቜ። ዚመኚታተያ ባንዲራዎቜን ለማዘጋጀት መመሪያዎቜ

ውጀቶቜ

በዚህ ጜሑፍ ውስጥ ዹ MS SQL አገልጋይን ዚመኚታተል አንዳንድ ገጜታዎቜ ተተነተኑ ፣ በዚህ እርዳታ ዹ RAM እጥሚት እና ዹነፃ ሲፒዩ ጊዜን እና ሌሎቜ ብዙ ግልፅ ያልሆኑ ቜግሮቜን በፍጥነት መለዚት ይቜላሉ። በብዛት ጥቅም ላይ ዹዋሉ ዚመኚታተያ ባንዲራዎቜ ተገምግመዋል።

ምንጮቜ:

» ዹ SQL አገልጋይ ዚመጠባበቂያ ስታቲስቲክስ
» ዹ SQL አገልጋይ ዚመጠባበቂያ ስታቲስቲክስ ወይም እባክህ ዚት እንደሚጎዳ ንገሚኝ።
» ዚስርዓት እይታ sys.dm_os_schedulers
» ዹ MS SQL አገልጋይ ዳታቀዝ ለመቆጣጠር Zabbix ን በመጠቀም
» ዹ SQL ዹአኗኗር ዘይቀ
» ዚመኚታተያ ባንዲራዎቜ
» sql.ru

ምንጭ: hab.com

አስተያዚት ያክሉ