Horudhac
Inta badan, isticmaalayaasha, horumariyeyaasha iyo maamulayaasha MS SQL Server DBMS waxay la kulmaan dhibaatooyinka waxqabadka ee xogta ama guud ahaan DBMS, markaa la socodka MS SQL Server waa mid aad u khuseeya.
Maqaalkani waa qodob dheeri ah
Si qoraalada soo socdaa ay u shaqeeyaan, waxaad u baahan tahay inaad abuurto schema inf database-ka la rabo sida soo socota:
Abuuritaanka schema inf
use <ΠΈΠΌΡ_ΠΠ>;
go
create schema inf;
Habka lagu ogaanayo la'aanta RAM
Tilmaamaha ugu horreeya ee la'aanta RAM waa kiiska marka tusaale ahaan MS SQL Server uu cuno dhammaan RAM-ka loo qoondeeyey.
Si tan loo sameeyo, waxaan abuuri doonaa matalaada soo socota ee inf.vRAM:
Abuuritaanka aragtida 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;
Markaa waxaad go'aamin kartaa in tusaale MS SQL Server uu isticmaalo dhammaan xusuusta loo qoondeeyay su'aasha soo socota:
select SQL_server_physical_memory_in_use_Mb, SQL_server_committed_target_Mb
from [inf].[vRAM];
Haddii SQL_server_physical_memory_in_use_Mb uu si joogto ah uga weyn yahay ama u siman yahay SQL_server_committed_target_Mb, markaas waa in la hubiyaa tirakoobka sugitaanka.
Si loo go'aamiyo la'aanta RAM iyada oo loo marayo tirakoobka sugitaanka, aan abuurno aragtida inf.vWaits:
Abuuritaanka 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];
Xaaladdan oo kale, waxaad ku ogaan kartaa la'aanta RAM su'aasha soo socota:
SELECT [Percentage]
,[AvgWait_S]
FROM [inf].[vWaits]
where [WaitType] in (
'PAGEIOLATCH_XX',
'RESOURCE_SEMAPHORE',
'RESOURCE_SEMAPHORE_QUERY_COMPILE'
);
Halkan waxaad u baahan tahay inaad fiiro gaar ah u yeelato tilmaamayaasha boqolkiiba iyo AvgWait_S. Haddii ay muhiim u yihiin wadarta guud, markaa waxaa jirta suurtogalnimo aad u sareysa in aysan jirin RAM ku filan tusaale ahaan MS SQL Server. Qiimaha muhiimka ah waxaa si gaar ah loo go'aamiyaa nidaam kasta. Si kastaba ha ahaatee, waxaad ku bilaabi kartaa kuwan soo socda: Boqolkiiba>=1 iyo AvgWait_S>=0.005.
Si loo soo saaro tilmaamayaasha nidaamka la socodka (tusaale, Zabbix), waxaad abuuri kartaa labada su'aalood ee soo socda:
- Immisa nooc oo sugitaan ah ayaa ku jira RAM boqolkiiba (wadarta dhammaan noocyada sugitaanka):
select coalesce(sum([Percentage]), 0.00) as [Percentage] from [inf].[vWaits] where [WaitType] in ( 'PAGEIOLATCH_XX', 'RESOURCE_SEMAPHORE', 'RESOURCE_SEMAPHORE_QUERY_COMPILE' );
- Immisa nooc oo sugitaan ah oo RAM ah ayaa qaata millise seconds (qiimaha ugu sarreeya ee dhammaan dib u dhaca celceliska dhammaan noocyada sugitaanka):
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' );
Iyada oo ku saleysan dhaqdhaqaaqa qiyamka la helay ee labadan tilmaame, waxaan ku soo gabagabeyn karnaa haddii ay jirto RAM ku filan tusaale ahaan MS SQL Server.
Habka Ogaanshaha Culayska Badan ee CPU
Si loo aqoonsado la'aanta wakhtiga processor-ka, waa ku filan in la isticmaalo aragtida nidaamka sys.dm_os_schedulers. Halkan, haddii runnable_tasks_count uu si joogto ah uga weyn yahay 1, markaa waxaa jirta suurtogalnimo sare oo ah in tirada kombuyuutarku aysan ku filnayn tusaale ahaan MS SQL Server.
Si aad u soo saarto tusaha nidaamka la socodka (tusaale, Zabbix), waxaad samayn kartaa su'aasha soo socota:
select max([runnable_tasks_count]) as [runnable_tasks_count]
from sys.dm_os_schedulers
where scheduler_id<255;
Iyada oo ku saleysan dhaqdhaqaaqa qiyamka la helay ee tusahan, waxaan ku soo gabagabeyn karnaa haddii ay jirto waqti processor ku filan (tirada koodhka CPU) tusaale ahaan Server MS SQL.
Si kastaba ha ahaatee, waxaa muhiim ah in maskaxda lagu hayo xaqiiqda ah in codsiyada laftoodu ay hal mar codsan karaan taxane badan. Mararka qaarkoodna hagaajinta si sax ah uma qiyaasi karo kakanaanta weydiinta lafteeda. Dabadeed codsiga waxa loo qoondayn karaa dun badan oo aan la hawlgelin karin isku mar wakhtiga la siiyey. Tani waxay sidoo kale keentaa nooc sugitaan ah oo la xidhiidha la'aanta wakhtiga processor-ka, iyo korriinka safka jadwalayaasha isticmaala kombuyuutarrada CPU ee gaarka ah, ie. runnable_tasks_count tusaha ayaa ku kori doona xaaladahaas.
Xaaladdan oo kale, ka hor inta aan la kordhin tirada koodhka CPU, waxaa lagama maarmaan ah in si sax ah loo habeeyo sifooyinka isbarbardhigga ee MS SQL Server laftiisa, iyo nooca 2016, si sax ah u habeyn sifooyinka isbarbardhigga ee xogta loo baahan yahay:
Halkan waa inaad fiiro gaar ah u yeelataa xuduudaha soo socda:
- Heerka ugu sarreeya ee isbarbardhigga - wuxuu dejiyaa tirada ugu badan ee dunta loo qaybin karo codsi kasta ( default waa 0 - oo xaddidan oo keliya nidaamka hawlgalka laftiisa iyo daabacaadda MS SQL Server)
- Xaddiga Qiimaha Isbarbar-dhigga - Qiyaasta qiimaha isbarbar-dhigga (ugu-dambeyn waa 5)
- Max DOP - wuxuu dejiyaa tirada ugu badan ee dunta loo qaybin karo weydiimo kasta oo ah heerka xogta (laakiin aan ka badnayn qiimaha hantida "Max Degree of Parallelism") (default waa 0 - xaddidan nidaamka hawlgalka laftiisa iyo Daabacaadda MS SQL Server, iyo sidoo kale xaddidaadda "Max Degree of Parallelism" hantida dhammaan tusaalaha MS SQL Server)
Halkan waa wax aan macquul aheyn in la siiyo cunto karinta si siman oo wanaagsan dhammaan kiisaska, i.e. waxaad u baahan tahay inaad falanqeyso weydiimaha culus.
Waayo-aragnimadayda, waxaan ku talinayaa algorithm-ka soo socda ee ficillada nidaamyada OLTP ee dejinta sifooyinka isbarbardhigga:
- marka hore dami isbarbardhigga adiga oo dejinaya heerka ugu sarreeya ee barbar-dhigga 1
- falanqeeyaan codsiyada ugu culus oo dooro tirada ugu fiican ee dunta iyaga
- dhig heerka ugu sarreeya ee isbarbardhigga tirada ugu wanaagsan ee dunta ee la doortay ee laga helay tallaabada 2, iyo xog ururin gaar ah u deji qiimaha Max DOP ee laga helay tallaabada 2 ee xog kasta
- falanqeeyaan codsiyada ugu culus oo caddeeyaan saamaynta xun ee multithreading. Haddi ay tahay, ka dib kordhi Kharashka Xadka Barbaralismka.
Nidaamyada ay ka midka yihiin 1C, Microsoft CRM iyo Microsoft NAV, xaaladaha intooda badan, mamnuucidda isku-dhufashada ayaa ku habboon.
Sidoo kale, haddii ay jirto daabacaadda Standard, ka dibna inta badan kiisaska mamnuucista multithreading waa ku habboon tahay xaqiiqda ah in daabacaaddani ay xaddidan tahay tirada CPUs.
Nidaamyada OLAP, algorithm ee kor lagu sharaxay kuma habboona.
Waayo-aragnimadayda, waxaan ku talinayaa algorithm-ka soo socda ee ficillada nidaamyada OLAP si loo dejiyo sifooyinka isbarbardhigga:
- falanqeeyaan codsiyada ugu culus oo dooro tirada ugu fiican ee dunta iyaga
- dhig heerka ugu sarreeya ee isbarbardhigga tirada ugu wanaagsan ee dunta ee la doortay ee laga helay tallaabada 1, iyo xog ururin gaar ah u deji qiimaha Max DOP ee laga helay tallaabada 1 ee xog kasta
- falanqeeyaan su'aalaha ugu culus oo caddeeyo saamaynta xun ee xaddidaadda isdhaafsiga. Haddi ay tahay, ama hoos u dhig heerka Kharashka ee qiimaha barbar socda, ama ku celi tillaabooyinka 1-2 ee algorithm
Taasi waa, nidaamyada OLTP waxaan ka baxnaa hal-xadhigle ilaa xad-badan, iyo OLAP-nidaamyada, liddi ku ah, waxaan ka gudubnaa dhowr-threading ilaa hal-threading. Markaa, waxaad dooran kartaa jaangooyooyinka isbarbardhigga ugu habboon labadaba xog ururin gaar ah iyo dhammaan tusaalaha MS SQL Server.
Waxa kale oo muhiim ah in la fahmo in goobaha isbarbardhigga u baahan yihiin in la beddelo wakhti ka dib, iyadoo lagu saleynayo natiijooyinka la socodka waxqabadka MS SQL Server.
Tilmaamaha Dejinta Calamada Raadka
Waayo-aragnimadayda iyo waayo-aragnimadayda asxaabteyda, si loo helo waxqabadka ugu wanaagsan, waxaan ku talinayaa in la dejiyo calamada raadraaca soo socda ee heerka socodka ee adeegga MS SQL Server ee noocyada 2008-2016:
- 610 - Gelida la gashado ee miisaska la calaamadeeyay oo la dhimay. Waxay kaa caawin kartaa gelinta shaxanka diiwaanno badan iyo macaamilo badan, oo leh qoraallo dheer oo joogto ah oo sugaya isbeddellada tusmooyinka.
- 1117 - Haddii fayl ku jira koox-kooxeed uu buuxiyo shuruudaha isugeynta korriinka, dhammaan faylasha kooxda faylka ayaa koraan.
- 1118 - Waxay ku qasbeysaa dhammaan walxaha inay ku yaalliin meelo kala duwan (mamnuucidda xadrada isku dhafan), taas oo yaraynaysa baahida loo qabo in la sawiro bogga SGAM, kaas oo loo isticmaalo in lagu raad raaco qiyaasaha isku dhafan.
- 1224 - Wuxuu joojiyaa kororka qufulka iyadoo lagu salaynayo tirada qufulada. Si kastaba ha ahaatee, isticmaalka xusuusta xad dhaafka ah waxay kicin kartaa qufulka
- 2371 - Waxay u beddeshaa heerka cusboonaysiinta istaatistikada tooska ah ee go'an ilaa heerka cusboonaysiinta istaatistikada tooska ah. Muhiim u ah cusboonaysiinta qorshayaasha waydiinta miisaska waaweyn, halkaas oo tirinta khaldan ee diiwaanadu ay keento qorshooyinka fulinta khaldan
- 3226 - Waxay joojisaa fariimaha guusha ee ku jira diiwaanka khaladka
- 4199 - Waxa ku jira isbeddelada kor u qaadida weydiinta ee lagu sii daayay CUs iyo Xidhmada Adeegga Adeegga SQL
- 6532-6534 - Waxaa ku jira hagaajinta waxqabadka ee hawlgallada weydiinta ee noocyada xogta goobta
- 8048 - Waxay u beddeshaa NUMA walxaha xusuusta qaybsan oo u beddela CPU qaybsan
- 8780 - Waxay sahlaysa qoondaynta waqti dheeri ah ee qorsheynta weydiinta. Codsiyada qaar oo aan lahayn calankan ayaa laga yaabaa in la diido sababtoo ah ma haystaan ββqorshe su'aal (dhitaan aad dhif u ah)
- 8780 - 9389 - Waxay u sahlaysa deeq-waxbarasho oo dheeri ah oo kaydinta xusuusta qaabka dufcadda, taas oo u oggolaanaysa hawl-wadeenka qaabka dufcadda inuu codsado xusuusta dheeraadka ah oo uu iska ilaaliyo u wareejinta xogta tempdb haddii xusuusta dheeraadka ah la heli karo
Sidoo kale ka hor 2016, waxaa faa'iido leh in la suurtageliyo raadinta calanka 2301, kaas oo awood u siinaya kor u qaadida taageerada go'aanka sidaas darteedna waxay ka caawisaa doorashada qorshooyin sax ah oo dheeraad ah. Si kastaba ha ahaatee, sida nooca 2016, waxay inta badan saameyn xun ku leedahay waqtiyada fulinta su'aalaha guud ee dheer.
Sidoo kale, nidaamyada leh tilmaamo badan (tusaale ahaan, xogta macluumaadka 1C), waxaan ku talinayaa in la suurtogeliyo raadraaca calanka 2330, kaas oo baabi'iya ururinta isticmaalka index, taas oo guud ahaan saameyn togan ku leh nidaamka.
Macluumaad dheeraad ah oo ku saabsan calanka raadraaca, eeg
Laga soo bilaabo isku xirka kore, waxaa sidoo kale muhiim ah in la tixgeliyo noocyada iyo dhisitaanka MS SQL Server, sida noocyada cusub, qaar ka mid ah calaamadaha raadraaca ayaa awood u leh ama aan saameyn lahayn.
Waxaad shidi kartaa oo dami kartaa calanka DBCC TRACEON iyo amarada DBCC TRACEOFF, siday u kala horreeyaan. Wixii faah faahin ah eeg
Waxaad ku heli kartaa heerka calamada raadinta adoo isticmaalaya amarka DBCC TRACESTATUS:
Si calamada raadraaca loogu daro autostart-ka adeega Server-ka MS SQL, waa in aad u tagtaa maamulaha qaabaynta Server-ka SQL oo aad ku dartaa calamadan raadinta iyada oo loo sii marayo -T guryaha adeega:
Natiijooyinka
Maqaalkan, waxaa lagu falanqeeyay qaybo ka mid ah la socodka MS SQL Server, iyadoo la kaashanayo aad si dhakhso ah u aqoonsan karto la'aanta RAM iyo waqtiga CPU ee bilaashka ah, iyo sidoo kale tiro dhibaatooyin kale oo aan muuqan. Calannada raadraaca ee inta badan la isticmaalo ayaa dib loo eegay.
Ilaha:
Β»
Β»
Β»
Β»
Β»
Β»
Β»
Source: www.habr.com