Likarolo tse ling tsa tlhahlobo ea Seva ea SQL ea MS. Litaelo tsa ho Beha Lifolakha Tsa Trace

Tlhaloso

Hangata, basebelisi, bahlahisi le batsamaisi ba MS SQL Server DBMS ba kopana le mathata a ts'ebetso ea database kapa DBMS ka kakaretso, kahoo tlhahlobo ea MS SQL Server e bohlokoa haholo.
Sengoliloeng sena ke tlatsetso ho sengoloa Ho sebelisa Zabbix ho hlokomela database ea MS SQL Server 'me e tla akaretsa lintlha tse ling tsa ho beha leihlo MS SQL Server, haholo-holo: mokhoa oa ho tseba ka potlako hore na ke lisebelisoa life tse sieo, hammoho le likhothaletso tsa ho beha lifolakha.
Hore mangolo a latelang a sebetse, o hloka ho theha schema ea inf sebakeng sa polokelo ea litaba se lakatsehang ka tsela e latelang:
Ho theha schema ea inf

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

Mokhoa oa ho lemoha ho haella ha RAM

Letšoao la pele la khaello ea RAM ke boemo ha mohlala oa MS SQL Server o ja RAM eohle e fanoeng ho eona.
Ho etsa sena, re tla theha boemeli bo latelang ba inf.vRAM:
E theha pono ea 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;

Ebe o ka tseba hore mohlala oa MS SQL Server o sebelisa memori eohle e fanoeng ho eona ka potso e latelang:

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

Haeba SQL_server_physical_memory_in_use_Mb e lula e le kholo ho feta kapa e lekana le SQL_server_committed_target_Mb, joale lipalo-palo tsa ho leta li lokela ho hlahlojoa.
Ho tseba khaello ea RAM ka lipalo-palo tsa ho ema, ha re theheng pono ea inf.vWaits:
Ho theha pono ea 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];

Tabeng ena, o ka tseba ho haella ha RAM ka potso e latelang:

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

Mona o hloka ho ela hloko matšoao Peresente le AvgWait_S. Haeba li bohlokoa ho kakaretso ea tsona, ho na le monyetla o moholo haholo oa hore ha ho na RAM e lekaneng bakeng sa mohlala oa MS SQL Server. Litekanyetso tsa bohlokoa li khethoa ka bonngoe bakeng sa sistimi ka 'ngoe. Leha ho le joalo, u ka qala ka tse latelang: Peresente>=1 le AvgWait_S>=0.005.
Ho hlahisa matšoao ho sistimi ea ho beha leihlo (mohlala, Zabbix), o ka etsa lipotso tse peli tse latelang:

  1. ke mefuta e mekae ea ho leta e tšoaretsoeng ke RAM ka liperesente (kakaretso ea mefuta eohle ea ho leta):
    select coalesce(sum([Percentage]), 0.00) as [Percentage]
    from [inf].[vWaits]
           where [WaitType] in (
               'PAGEIOLATCH_XX',
               'RESOURCE_SEMAPHORE',
                'RESOURCE_SEMAPHORE_QUERY_COMPILE'
      );
    
  2. hore na ke mefuta e kae ea ho leta ea RAM e nkang milliseconds (boleng bo phahameng ba tieho e tloaelehileng bakeng sa mefuta eohle e joalo ea ho leta):
    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'
      );
    

Ho ipapisitsoe le matla a boleng bo fumanoeng bakeng sa matšoao ana a mabeli, re ka fihlela qeto ea hore na ho na le RAM e lekaneng bakeng sa mohlala oa MS SQL Server.

Mokhoa oa ho lemoha CPU overload

Ho tseba ho haella ha nako ea processor, ho lekane ho sebelisa pono ea sistimi ea sys.dm_os_schedulers. Mona, haeba runnable_tasks_count e lula e le kholo ho feta 1, joale ho na le monyetla o moholo oa hore palo ea li-cores ha e lekane bakeng sa mohlala oa MS SQL Server.
Ho hlahisa sesupo ho sistimi ea ho beha leihlo (mohlala, Zabbix), o ka etsa potso e latelang:

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

Ho ipapisitsoe le matla a boleng bo fumanoeng bakeng sa sesupo sena, re ka etsa qeto ea hore na ho na le nako e lekaneng ea processor (palo ea li-CPU cores) bakeng sa mohlala oa MS SQL Server.
Leha ho le joalo, ho bohlokoa ho hopola taba ea hore likopo ka botsona li ka kopa likhoele tse ngata ka nako e le 'ngoe. 'Me ka linako tse ling optimizer ha e khone ho hakanya ka nepo ho rarahana ha potso ka boeona. Ebe kopo e ka abeloa likhoele tse ngata haholo tse ke keng tsa sebetsoa ka nako e le 'ngoe ka nako e fanoeng. 'Me sena se boetse se baka mofuta oa ho leta o amanang le khaello ea nako ea processor, le kholo ea letoto la li-schedule tse sebelisang li-cores tse itseng tsa CPU, ke hore, runnable_tasks_count indicator e tla hola maemong a joalo.
Tabeng ena, pele o eketsa palo ea li-cores tsa CPU, hoa hlokahala hore u lokise ka nepo thepa ea ho ts'oana ea mohlala oa MS SQL Server ka boeona, 'me ho tloha phetolelong ea 2016, u lokise ka nepo thepa ea ho bapisa ea li-database tse hlokahalang:
Likarolo tse ling tsa tlhahlobo ea Seva ea SQL ea MS. Litaelo tsa ho Beha Lifolakha Tsa Trace

Likarolo tse ling tsa tlhahlobo ea Seva ea SQL ea MS. Litaelo tsa ho Beha Lifolakha Tsa Trace
Mona o lokela ho ela hloko li-parameter tse latelang:

  1. Max Degree of Parallelism - e beha palo e kholo ea likhoele tse ka abeloang kopo e 'ngoe le e 'ngoe (ea kamehla ke 0 - e lekanyelitsoe feela ke sistimi e sebetsang ka boeona le khatiso ea MS SQL Server)
  2. Cost Threshold for Parallelism - litšenyehelo tse hakantsoeng tsa ho bapisa (ka ho sa feleng ke 5)
  3. Max DOP - e beha palo e kholo ea likhoele tse ka abeloang potso e 'ngoe le e' ngoe boemong ba "database" (empa eseng ho feta boleng ba thepa ea "Max Degree of Parallelism") (kamehla ke 0 - e lekanyelitsoe feela ke sistimi e sebetsang ka boeona le khatiso ea MS SQL Server, hammoho le thibelo ea thepa ea "Max Degree of Parallelism" ea mohlala oohle oa MS SQL Server)

Mona ho ke ke ha khoneha ho fana ka risepe e ntle ka ho lekana bakeng sa linyeoe tsohle, ke hore, o hloka ho sekaseka lipotso tse boima.
Ho tsoa boiphihlelong ba ka, ke khothaletsa algorithm e latelang ea liketso bakeng sa lits'ebetso tsa OLTP bakeng sa ho theha thepa ea parallelism:

  1. Qala ka ho thibela ho bapisa ho tšoana ka ho beha mohlala oa Max Degree of Parallelism ho 1
  2. sekaseka likopo tse boima ka ho fetesisa ebe u khetha palo e nepahetseng ea likhoele bakeng sa tsona
  3. beha Max Degree of Parallelism ho palo e nepahetseng e khethiloeng ea likhoele tse fumanoeng mohatong oa 2, 'me bakeng sa li-database tse ikhethileng beha boleng ba Max DOP bo fumanoeng mohatong oa 2 bakeng sa database ka 'ngoe.
  4. sekaseka likopo tse boima ka ho fetisisa le ho hloaea phello e mpe ea ho bala hangata. Haeba ho joalo, joale eketsa Cost Threshold for Parallelism.
    Bakeng sa litsamaiso tse kang 1C, Microsoft CRM le Microsoft NAV, hangata, ho thibela multithreading ho loketse.

Hape, haeba ho na le khatiso e tloaelehileng, joale hangata thibelo ea ho bala lintho tse ngata e loketse ka lebaka la hore khatiso ena e lekanyelitsoe palo ea li-CPU cores.
Bakeng sa litsamaiso tsa OLAP, algorithm e hlalositsoeng ka holimo ha ea lokela.
Ho tsoa phihlelong ea ka, ke khothaletsa algorithm e latelang ea liketso bakeng sa litsamaiso tsa OLAP bakeng sa ho theha thepa ea parallelism:

  1. sekaseka likopo tse boima ka ho fetesisa ebe u khetha palo e nepahetseng ea likhoele bakeng sa tsona
  2. beha Max Degree of Parallelism ho palo e nepahetseng e khethiloeng ea likhoele tse fumanoeng mohatong oa 1, 'me bakeng sa li-database tse ikhethileng beha boleng ba Max DOP bo fumanoeng mohatong oa 1 bakeng sa database ka 'ngoe.
  3. sekaseka lipotso tse boima ka ho fetesisa 'me u tsebe phello e mpe ea ho fokotsa concurrency. Haeba ho joalo, joale theola boleng ba Cost Threshold bakeng sa Parallelism, kapa u phete mehato ea 1-2 ea algorithm ena.

Ke hore, bakeng sa litsamaiso tsa OLTP re tloha ho mokhoa o le mong ho ea ho mefuta e mengata, 'me bakeng sa litsamaiso tsa OLAP, ho fapana le hoo, re tloha ho mefuta e mengata ho ea ho mokhoa o le mong. Kahoo, o ka khetha litlhophiso tse nepahetseng tsa ho tsamaisana bakeng sa database e itseng le mohlala oohle oa MS SQL Server.
Hape ke habohlokoa ho utloisisa hore litlhophiso tsa thepa ea parallelism li hloka ho fetoloa ha nako e ntse e ea, ho itšetlehile ka liphello tsa ho hlahloba ts'ebetso ea MS SQL Server.

Litaelo tsa ho Beha Lifolakha Tsa Trace

Ho tsoa ho boiphihlelo ba ka le boiphihlelo ba basebetsi-'moho le 'na, bakeng sa ts'ebetso e nepahetseng, ke khothaletsa ho beha lifolakha tse latelang maemong a ts'ebeletso ea MS SQL Server bakeng sa liphetolelo tsa 2008-2016:

  1. 610 - Ho rengoa ha lifate tse kentsoeng ka har'a litafole tse ngolisitsoeng ho fokotsehile. E ka thusa ka ho kenya litafoleng tse nang le lirekoto tse ngata le litšebelisano tse ngata, ka nako e telele WRITELOG e emela liphetoho ho li-index.
  2. 1117 - Haeba faele e ka har'a sehlopha sa lifaele e kopana le litlhoko tsa "autogrowth threshold", lifaele tsohle tse sehlopheng sa lifaele lia hola.
  3. 1118 - E qobella lintho tsohle hore li behoe ka litekanyo tse fapaneng (thibelo ea litekanyo tse tsoakiloeng), e fokotsang tlhoko ea ho lekola leqephe la SGAM, le sebelisetsoang ho latela maemo a fapaneng.
  4. 1224 - E thibela ho nyoloha ha senotlolo ho ipapisitse le palo ea linotlolo. Leha ho le joalo, tšebeliso e feteletseng ea memori e ka baka ho phahama ha senotlolo
  5. 2371 - E fetola moeli o tsitsitseng oa ntlafatso ea lipalo-palo ho moeli o matla oa ntlafatso ea lipalo-palo. E bohlokoa bakeng sa ho ntlafatsa merero ea lipotso bakeng sa litafole tse kholo, moo palo e fosahetseng ea lirekoto e fellang ka merero e fosahetseng ea ts'ebetso.
  6. 3226 - E hatella melaetsa ea katleho ea bekapo lethathamong la liphoso
  7. 4199 - E kenyelletsa liphetoho ho optimizer ea lipotso e lokollotsoeng ho CUs le SQL Server Service Packs
  8. 6532-6534 - E kenyelletsa ntlafatso ea ts'ebetso bakeng sa ts'ebetso ea lipotso mabapi le mefuta ea data ea sebaka.
  9. 8048 - E fetolela lintho tsa memori tse arohaneng tsa NUMA ho tse arotsoeng ka CPU
  10. 8780 - E thusa kabo ea nako e eketsehileng bakeng sa moralo oa lipotso. Likopo tse ling ntle le folakha ena li ka hanoa hobane ha li na leano la ho botsa lipotso (bug e sa tloaelehang haholo)
  11. 8780 - 9389 - E nolofalletsa "buffer" e eketsehileng ea memori bakeng sa lipolelo tsa mokhoa oa batch, e lumellang opereishene ea batch mode ho kopa mohopolo o eketsehileng le ho qoba ho fetisetsa data ho tempdb haeba memori e eketsehileng e fumaneha.

Hape pele ho 2016, ho bohlokoa ho thusa ho latela folakha ea 2301, e thusang ho ntlafatsa ts'ehetso ea liqeto mme ka hona e thusa ho khetha merero e nepahetseng ea lipotso. Leha ho le joalo, ho tloha ka mofuta oa 2016, hangata e na le phello e mpe linakong tse telele tsa ho botsa lipotso.
Hape, bakeng sa litsamaiso tse nang le li-index tse ngata (mohlala, bakeng sa li-database tsa 1C), ke khothaletsa ho nolofalletsa trace flag 2330, e thibelang pokello ea tšebeliso ea index, eo ka kakaretso e nang le phello e ntle tsamaisong.
Ho fumana lintlha tse ling mabapi le lifolakha tsa trace, bona mona
Ho tsoa sehokelong se kaholimo, ho bohlokoa hape ho nahana ka liphetolelo le meaho ea MS SQL Server, ha e le liphetolelo tse ncha, lifolakha tse ling li lumelloa ka mokhoa o ikhethileng kapa ha li na phello.
O ka bulela le ho tima folakha ka taelo ea DBCC TRACEON le DBCC TRACEOFF, ka ho latellana. Bakeng sa lintlha tse ling bona mona
U ka fumana boemo ba lifolakha ka ho sebelisa taelo ea DBCC TRACESTATUS: ho feta
E le hore trace lifolakha li kenyelelitsoe ho autostart ea ts'ebeletso ea MS SQL Server, u tlameha ho ea ho SQL Server Configuration Manager 'me u kenye lifolakha tsena ka -T lits'ebetsong tsa ts'ebeletso:
Likarolo tse ling tsa tlhahlobo ea Seva ea SQL ea MS. Litaelo tsa ho Beha Lifolakha Tsa Trace

Liphello

Sehloohong sena, lintlha tse ling tsa ho beha leihlo MS SQL Server li ile tsa hlahlobjoa, ka thuso ea hore u ka tseba kapele ho haella ha RAM le nako ea mahala ea CPU, hammoho le mathata a mang a sa totobalang. Lifolakha tse sebelisoang hangata li se li hlahlobiloe.

Lisebelisoa:

» SQL Server ema lipalopalo
» SQL Server ema lipalopalo kapa ka kopo mpolelle moo e bohloko
» Mokhoa oa ho sheba sys.dm_os_schedulers
» Ho sebelisa Zabbix ho hlokomela database ea MS SQL Server
» Mokhoa oa ho phela oa SQL
» Latela Lifolakha
» sql.ru

Source: www.habr.com

Eketsa ka tlhaloso