MS SQL Server: Cùl-taic air steroids

Fuirich! Fuirich! Fìor, chan e artaigil eile a tha seo mu sheòrsan cùl-taic SQL Server. Cha bhith mi eadhon a’ bruidhinn mu na h-eadar-dhealachaidhean eadar modalan ath-bheothachaidh agus mar a dhèiligeas tu ri log a tha air fàs nas sine.

Is dòcha (dìreach is dòcha), às deidh dhut am post seo a leughadh, gum bi e comasach dhut dèanamh cinnteach gun tèid an cùl-taic a thèid a thoirt air falbh bhuat a’ cleachdadh dòighean àbhaisteach a thoirt air falbh a-màireach, uill, 1.5 uair nas luaithe. Agus a-mhàin air sgàth 's gu bheil thu a' cleachdadh beagan a bharrachd crìochan stòr-dàta cùl-taic.

Ma bha susbaint na dreuchd follaiseach dhut, tha mi duilich. Leugh mi a h-uile dad a fhuair Google gu airson an abairt “habr sql server backup”, agus ann an aon artaigil cha do lorg mi iomradh sam bith air gum faodar buaidh a thoirt air an ùine cùl-taic ann an dòigh air choireigin le bhith a’ cleachdadh paramadairean.

Tarraingidh mi d’ aire sa bhad gu beachd Alexander Gladchenko (@mssqlhelp):

Na atharraich na paramadairean BUFFERCOUNT, BLOCKSIZE, MAXTRANSFERSIZE ann an cinneasachadh gu bràth. Tha iad air an dèanamh a-mhàin airson a bhith a 'sgrìobhadh artaigilean mar sin. Ann an cleachdadh, gheibh thu cuidhteas duilgheadasan cuimhne ann an ùine sam bith.

Bhiodh e, gu dearbh, fionnar a bhith mar an susbaint as sgiobalta agus as toirmeasgach, ach, gu mì-fhortanach, chan eil seo fìor. Tha an dà chuid artaigilean / puist Beurla agus Ruiseanach (tha mi an-còmhnaidh troimh-chèile a thaobh dè a chanas mi riutha gu ceart) a tha coisrigte don chuspair seo. Seo cuid den fheadhainn air an tàinig mi tarsainn: amannan, два, trì (air sql.ru).

Mar sin, an toiseach, ceangailidh mi co-chòrdadh BACKUP beagan air a thoirt sìos bho MSDN (co-dhiù, sgrìobh mi gu h-àrd mu dheidhinn BACKUP DATABASE, ach tha seo uile a’ buntainn ris an dà chuid cùl-taic log malairt agus cùl-taic eadar-dhealaichte, ach is dòcha le buaidh nach eil cho follaiseach):

BACKUP DATABASE { database_name | @database_name_var }
  TO <backup_device> [ ,...n ]
  <...>
  [ WITH { <...>
           | <general_WITH_options> [ ,...n ] } ]
[;]

<general_WITH_options> [ ,...n ]::=
<...>
--Media Set Options
 <...>
 | BLOCKSIZE = { blocksize | @blocksize_variable }

--Data Transfer Options
   BUFFERCOUNT = { buffercount | @buffercount_variable }
 | MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }
<...>

<…> - tha e a’ ciallachadh gun robh rudeigin ann, ach thug mi air falbh e oir a-nis chan eil e buntainneach don chuspair.

Ciamar a gheibh thu cùl-taic mar as trice? Ciamar a bhios iad “a’ teagasg ”mar a ghabhas iad cùl-taic ann am billeanan de artaigilean? San fharsaingeachd, ma dh’ fheumas mi cùl-taic aon-ùine a dhèanamh de chuid de stòr-dàta nach eil ro mhòr, sgrìobhaidh mi rudeigin mar seo gu fèin-ghluasadach:

BACKUP DATABASE smth
TO DISK = 'D:Backupsmth.bak'
WITH STATS = 10, CHECKSUM, COMPRESSION, COPY_ONLY;
--ладно, CHECKSUM я написал только чтобы казаться умнее

Agus, san fharsaingeachd, 's dòcha 75-90% de na h-uile crìochan a tha mar as trice air ainmeachadh ann an artaigilean mu lethbhreacan-glèidhidh air an liostadh an seo. Uill, tha INIT, SKIP ann cuideachd. An do thadhail thu air MSDN? Am faca tu gu bheil roghainnean ann airson scrion gu leth? Chunnaic mi cuideachd...

Is dòcha gu bheil thu air tuigsinn mar-thà gum bruidhinn sinn nas fhaide air adhart mu na trì paramadairean a bha air fhàgail anns a’ chiad bhloc de chòd - BLOCKSIZE, BUFFERCOUNT agus MAXTRANSFERSIZE. Seo na tuairisgeulan aca bho MSDN:

BLAR-MHATHAIR = { blocaichean | @ blocksize_variable } - a’ comharrachadh meud a’ bhloca fiosaigeach ann am bytes. Is e meudan le taic 512, 1024, 2048, 4096, 8192, 16, 384, agus 32 bytes (768 KB). Is e an luach bunaiteach 65 airson innealan teip agus 536 airson innealan eile. Mar as trice chan eil am paramadair seo riatanach oir tha an aithris BACKUP gu fèin-ghluasadach a’ taghadh meud bloca iomchaidh airson an inneal. Tha suidheachadh meud a’ bhloca gu soilleir a’ dol thairis air taghadh meud a’ bhloca fèin-ghluasadach.

CUNNTAS BUAIDH = { cunntas bufair | @ buffercount_variable } - A’ mìneachadh an àireamh iomlan de bhufairean I/O a thèid a chleachdadh airson an obair cùl-taic. Faodaidh tu luach iomlan dearbhach sam bith a shònrachadh, ach faodaidh àireamh mhòr de bhufairean mearachd a-mach à cuimhne adhbhrachadh mar thoradh air cus àite seòlaidh brìgheil sa phròiseas Sqlservr.exe.

Tha an àireamh iomlan de rùm a chleachdas bufairean air a dhearbhadh leis an fhoirmle a leanas: BUFFERCOUNT * MAXTRANSFERSIZE.

MAXTRANSFERSIZE = { gluasad as motha | @ maxtransfersize_variable } a’ sònrachadh meud pacaid dàta as motha, ann am bytes, airson iomlaid eadar SQL Server agus na meadhanan seata cùl-taic. Tha iomadan de 65 bytes (536 KB) suas gu 64 bytes (4 MB) a’ faighinn taic.

Tha mi a’ mionnachadh - tha mi air seo a leughadh roimhe seo, ach cha do thachair e a-riamh dè a’ bhuaidh a dh’ fhaodadh a bhith aca air cinneasachd. A bharrachd air an sin, a rèir choltais, feumaidh mi seòrsa de “tighinn a-mach” a dhèanamh agus aideachadh eadhon a-nis chan eil mi a ’tuigsinn gu tur dè dìreach a tha iad a’ dèanamh. Is dòcha gu feum mi barrachd a leughadh mu I/O buffered agus a bhith ag obair le draibh cruaidh. Uaireigin nì mi seo, ach airson a-nis is urrainn dhomh dìreach sgriobt a sgrìobhadh a nì sgrùdadh air mar a bheir na luachan sin buaidh air an astar aig a bheil an cùl-taic air a ghabhail.

Rinn mi stòr-dàta beag, timcheall air 10 GB ann am meud, chuir mi air an SSD e, agus chuir mi an eòlaire airson cùl-taic air an HDD.

Bidh mi a 'cruthachadh clàr sealach airson na toraidhean a stòradh (chan eil e sealach agam, agus mar sin is urrainn dhomh na toraidhean a chladhach nas mionaidiche, ach tha thu a' co-dhùnadh dhut fhèin):

DROP TABLE IF EXISTS ##bt_results; 

CREATE TABLE ##bt_results (
    id              int IDENTITY (1, 1) PRIMARY KEY,
    start_date      datetime NOT NULL,
    finish_date     datetime NOT NULL,
    backup_size     bigint NOT NULL,
    compressed_size bigint,
    block_size      int,
    buffer_count    int,
    transfer_size   int
);

Tha prionnsapal an sgriobt sìmplidh - lùban neadachaidh, gach fear dhiubh ag atharrachadh luach aon paramadair, cuir a-steach na paramadairean sin a-steach don àithne BACKUP, sàbhail an clàr mu dheireadh le eachdraidh bho msdb.dbo.backupset, sguab às am faidhle cùl-taic agus an ath ath-aithris . Leis gu bheil an dàta cur an gnìomh cùl-taic air a thoirt bhon chùl-taic, tha an cruinneas beagan air chall (chan eil bloighean de dhiog ann), ach mairidh sinn seo.

An toiseach feumaidh tu xp_cmdshell a chomasachadh gus cùl-taic a dhubhadh às (an uairsin na dìochuimhnich a chuir dheth mura h-eil feum agad air):

EXEC sp_configure 'show advanced options', 1;  
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
EXEC sp_configure 'show advanced options', 0;  
GO

Uill, gu dearbh:

DECLARE @tmplt AS nvarchar(max) = N'
BACKUP DATABASE [bt]
TO DISK = ''D:SQLServerbackupbt.bak''
WITH 
    COMPRESSION,
    BLOCKSIZE = {bs},
    BUFFERCOUNT = {bc},
    MAXTRANSFERSIZE = {ts}';

DECLARE @sql AS nvarchar(max);

/* BLOCKSIZE values */
DECLARE @bs     int = 4096, 
        @max_bs int = 65536;

/* BUFFERCOUNT values */
DECLARE @bc     int = 7,
        @min_bc int = 7,
        @max_bc int = 800;

/* MAXTRANSFERSIZE values */
DECLARE @ts     int = 524288,   --512KB, default = 1024KB
        @min_ts int = 524288,
        @max_ts int = 4194304;  --4MB

SELECT TOP 1 
    @bs = COALESCE (block_size, 4096), 
    @bc = COALESCE (buffer_count, 7), 
    @ts = COALESCE (transfer_size, 524288)
FROM ##bt_results
ORDER BY id DESC;

WHILE (@bs <= @max_bs)
BEGIN
    WHILE (@bc <= @max_bc)
    BEGIN       
        WHILE (@ts <= @max_ts)
        BEGIN
            SET @sql = REPLACE (REPLACE (REPLACE(@tmplt, N'{bs}', CAST(@bs AS nvarchar(50))), N'{bc}', CAST (@bc AS nvarchar(50))), N'{ts}', CAST (@ts AS nvarchar(50)));

            EXEC (@sql);

            INSERT INTO ##bt_results (start_date, finish_date, backup_size, compressed_size, block_size, buffer_count, transfer_size)
            SELECT TOP 1 backup_start_date, backup_finish_date, backup_size, compressed_backup_size,  @bs, @bc, @ts 
            FROM msdb.dbo.backupset
            ORDER BY backup_set_id DESC;

            EXEC xp_cmdshell 'del "D:SQLServerbackupbt.bak"', no_output;

            SET @ts += @ts;
        END
        
        SET @bc += @bc;
        SET @ts = @min_ts;

        WAITFOR DELAY '00:00:05';
    END

    SET @bs += @bs;
    SET @bc = @min_bc;
    SET @ts = @min_ts;
END

Ma tha feum agad gu h-obann air soilleireachadh air na tha a’ tachairt an seo, sgrìobh na beachdan no PM. Airson a-nis, chan innis mi dhut ach mu na crìochan a chuir mi ann an Stòr-dàta Cùl-taic.

Airson BLOCKSIZE tha liosta luachan “dùinte” againn, agus cha do rinn mi cùl-taic le BLOCKSIZE <4KB. MAXTRANSFERSIZE àireamh sam bith a tha na iomadachadh de 64KB - bho 64KB gu 4MB. Is e am bunait air an t-siostam agam 1024KB, ghabh mi 512 - 1024 - 2048 - 4096.

Bha e na bu duilghe le BUFFERCOUNT - faodaidh e a bhith na àireamh adhartach, ach tha an ceangal ag ràdh ciamar a tha e air a thomhas ann an Stòr-dàta BACKUP agus carson a tha luachan mòra cunnartach?. Tha e cuideachd ag innse mar a gheibh thu fiosrachadh mu dè am BUFFERCOUNT a tha an cùl-taic air a dhèanamh leis - dhòmhsa is e 7 a th’ ann. Cha robh adhbhar ann a lughdachadh, agus chaidh an ìre as àirde a lorg gu deuchainneach - le BUFFERCOUNT = 896 agus MAXTRANSFERSIZE = 4194304 thuit an cùl-taic leis mearachd (mu dheidhinn a tha sgrìobhte sa cheangal gu h-àrd):

Tha Msg 3013, Ìre 16, Stàit 1, Loidhne 7 Stòr-dàta CÙIS a’ tighinn gu crìch gu h-annasach.

Msg 701, Ìre 17, Stàit 123, Loidhne 7 Chan eil cuimhne siostam gu leòr ann an stòras stòrais 'default' gus a' cheist seo a ruith.

Airson coimeas a dhèanamh, seallaidh mi an toiseach toraidhean ruith cùl-taic gun a bhith a’ sònrachadh crìochan sam bith:

BACKUP DATABASE [bt]
TO DISK = 'D:SQLServerbackupbt.bak'
WITH COMPRESSION;

Uill, cùl-taic agus cùl-taic:

Pròiseas 1070072 duilleagan airson stòr-dàta ‘bt’, faidhle ‘bt’ air faidhle 1.

Pròiseas 2 dhuilleag airson stòr-dàta ‘bt’, faidhle ‘bt_log’ air faidhle 1.

Stòr-dàta Cùl-taic air giullachd 1070074 duilleag gu soirbheachail ann an 53.171 diogan (157.227 MB / diog).

Bha an sgriobt fhèin, a 'dèanamh deuchainn air na crìochan, ag obair ann an dà uair a thìde, bha a h-uile tomhas a-staigh clàr-clèithe google. Agus seo taghadh de thoraidhean leis na trì amannan cur gu bàs as fheàrr (dh’ fheuch mi ri graf snog a dhèanamh, ach anns an dreuchd feumaidh mi dèanamh le clàr, agus anns na beachdan @measgachadh air a chur ris grafaigean gu math fionnar).

SELECT TOP 7 WITH TIES 
    compressed_size, 
    block_size, 
    buffer_count, 
    transfer_size,
    DATEDIFF(SECOND, start_date, finish_date) AS backup_time_sec
FROM ##bt_results
ORDER BY backup_time_sec ASC;

MS SQL Server: Cùl-taic air steroids

An aire, nota glè chudromach bho @measgachadh bho aithris:

Faodaidh sinn a ràdh le misneachd gu bheil an dàimh eadar na paramadairean agus astar cùl-taic taobh a-staigh nan raointean luachan sin air thuaiream, chan eil pàtran ann. Ach bha e follaiseach gun tug gluasad air falbh bho na paramadairean togte buaidh mhath air an toradh

An fheadhainn sin. Is ann dìreach le bhith a’ riaghladh nam paramadairean àbhaisteach BACKUP bha buannachd dà-fhillte ann an ùine toirt air falbh cùl-taic: 2 diogan, an coimeas ri 26 aig an toiseach. Chan eil sin dona, ceart? Ach feumaidh sinn faicinn dè thachras leis an ath-leasachadh. Dè ma bheir e a-nis 53 tursan nas fhaide airson faighinn seachad air?

An toiseach, tomhais sinn dè cho fada ‘s a bheir e gus cùl-taic a thoirt air ais le roghainnean bunaiteach:

RESTORE DATABASE [bt]
FROM DISK = 'D:SQLServerbackupbt.bak'
WITH REPLACE, RECOVERY;

Uill, tha fios agad fhèin, gu bheil na dòighean ann, chan eil fear na àite, chan e ath-bheothachadh a th’ ann an ath-bheothachadh. Agus bidh mi ga dhèanamh mar seo:

Pròiseas 1070072 duilleagan airson stòr-dàta ‘bt’, faidhle ‘bt’ air faidhle 1.

Pròiseas 2 dhuilleag airson stòr-dàta ‘bt’, faidhle ‘bt_log’ air faidhle 1.

Shoirbhich le RESTORE DATA-DATA 1070074 duilleag ann an 40.752 diogan (205.141 MB / diog).

A-nis feuchaidh mi ri cùl-taic a thoirt air ais le BLOCKSIZE atharraichte, BUFFERCOUNT agus MAXTRANSFERSIZE.

BLOCKSIZE = 16384, BUFFERCOUNT = 224, MAXTRANSFERSIZE = 4194304

Shoirbhich le RESTORE DATA-DATA 1070074 duilleag ann an 32.283 diogan (258.958 MB / diog).

BLOCKSIZE = 4096, BUFFERCOUNT = 448, MAXTRANSFERSIZE = 4194304

Shoirbhich le RESTORE DATA-DATA 1070074 duilleag ann an 32.682 diogan (255.796 MB / diog).

BLOCKSIZE = 16384, BUFFERCOUNT = 448, MAXTRANSFERSIZE = 2097152

Shoirbhich le RESTORE DATA-DATA 1070074 duilleag ann an 32.091 diogan (260.507 MB / diog).

BLOCKSIZE = 4096, BUFFERCOUNT = 56, MAXTRANSFERSIZE = 4194304

Shoirbhich le RESTORE DATA-DATA 1070074 duilleag ann an 32.401 diogan (258.015 MB / diog).

Chan eil an aithris RESTORE DATABASE ag atharrachadh rè ath-bheothachaidh; chan eil na paramadairean sin air an sònrachadh ann; Bidh SQL Server fhèin gan dearbhadh bhon chùl-taic. Agus tha e soilleir gum faod buannachd a bhith ann eadhon le faighinn seachad air - faisg air 20% nas luaithe (Gus a bhith onarach, cha do chuir mi seachad mòran ùine air faighinn seachad air, ruith mi tro ghrunn de na cùl-taic “as luaithe” agus rinn mi cinnteach nach robh crìonadh ann).

Dìreach air eagal, leig dhomh soilleireachadh nach e seo cuid de pharamadairean a tha as fheàrr airson a h-uile duine. Chan fhaigh thu ach na paramadairean as fheàrr dhut fhèin le bhith a’ dèanamh deuchainn. Fhuair mi na toraidhean sin, gheibh thu feadhainn eadar-dhealaichte. Ach chì thu gun urrainn dhut na cùl-taic agad a “ghleusadh” agus is urrainn dhaibh cruth agus cleachdadh nas luaithe.

Tha mi cuideachd a’ moladh gu làidir gun leugh thu na sgrìobhainnean gu h-iomlan, oir is dòcha gu bheil nuances ann a tha sònraichte don t-siostam agad.

Bho thòisich mi a’ sgrìobhadh mu chùl-taic, tha mi airson sgrìobhadh sa bhad mu aon “optimization” eile, a tha nas cumanta na paramadairean “gleusadh” (cho fad ‘s a thuigeas mi, tha e air a chleachdadh le co-dhiù cuid de ghoireasan cùl-taic, is dòcha còmhla ris na paramadairean air a mhìneachadh na bu thràithe), ach cha deach a mhìneachadh fhathast air Habré an dàrna cuid.

Ma choimheadas sinn air an dàrna loidhne anns na sgrìobhainnean, dìreach fo Stòr-dàta Cùl-taic, chì sinn:

TO <backup_device> [ ,...n ]

Dè tha thu a’ smaoineachadh a thachras ma shònraicheas tu grunn backups_devices? Tha an syntax a 'ceadachadh. Agus bidh rud gu math inntinneach a 'tachairt - bidh an cùl-taic dìreach "air a sgaoileadh" thairis air grunn innealan. An fheadhainn sin. bidh gach “inneal” leotha fhèin gun fheum, air chall, air an cùl-taic gu lèir a chall. Ach ciamar a bheir an leithid de smearing buaidh air astar cùl-taic?

Feuchaidh sinn ri cùl-taic a dhèanamh air dà “inneal” a tha suidhichte taobh ri taobh san aon phasgan:

BACKUP DATABASE [bt]
TO 
    DISK = 'D:SQLServerbackupbt1.bak',
    DISK = 'D:SQLServerbackupbt2.bak'   
WITH COMPRESSION;

Athraichean an t-saoghail, carson a tha seo air a dhèanamh?

Pròiseas 1070072 duilleagan airson stòr-dàta ‘bt’, faidhle ‘bt’ air faidhle 1.

Pròiseas 2 dhuilleag airson stòr-dàta ‘bt’, faidhle ‘bt’log' air faidhle 1.

Stòr-dàta Cùl-taic air giullachd 1070074 duilleag gu soirbheachail ann an 40.092 diogan (208.519 MB / diog).

An do dh'fhàs an cùl-taic 25% nas luaithe dìreach a-mach às an gorm? Dè ma chuireas sinn inneal no dhà eile ris?

BACKUP DATABASE [bt]
TO 
    DISK = 'D:SQLServerbackupbt1.bak',
    DISK = 'D:SQLServerbackupbt2.bak',
    DISK = 'D:SQLServerbackupbt3.bak',
    DISK = 'D:SQLServerbackupbt4.bak'
WITH COMPRESSION;

Stòr-dàta Cùl-taic air giullachd 1070074 duilleag gu soirbheachail ann an 34.234 diogan (244.200 MB / diog).

Gu h-iomlan, tha am buannachd timcheall air 35% den ùine airson cùl-taic a ghabhail a-mhàin leis gu bheil an cùl-taic air a sgrìobhadh gu 4 faidhlichean air aon diosc aig an aon àm. Rinn mi sgrùdadh air àireamh nas motha - chan eil buannachd sam bith air an laptop agam, as fheàrr - 4 innealan. Air do shon - chan eil fhios agam, feumaidh tu sgrùdadh a dhèanamh. Uill, co-dhiù, ma tha na h-innealan sin agad - tha iad sin nan diosgan gu math eadar-dhealaichte, meala-naidheachd, bu chòir gum biodh am buannachd eadhon nas cudromaiche.

A-nis leigidh sinn bruidhinn mu mar as urrainn dhut an toileachas seo a thoirt air ais. Gus seo a dhèanamh, feumaidh tu an òrdugh ath-bheothachaidh atharrachadh agus liosta a dhèanamh de gach inneal:

RESTORE DATABASE [bt]
FROM 
    DISK = 'D:SQLServerbackupbt1.bak',
    DISK = 'D:SQLServerbackupbt2.bak',
    DISK = 'D:SQLServerbackupbt3.bak',
    DISK = 'D:SQLServerbackupbt4.bak'
WITH REPLACE, RECOVERY;

Shoirbhich le RESTORE DATA-DATA 1070074 duilleag ann an 38.027 diogan (219.842 MB / diog).

Beagan nas luaithe, ach an àiteigin faisg, chan eil e cudromach. San fharsaingeachd, thèid an cùl-taic a thoirt air falbh nas luaithe agus ath-nuadhachadh san aon dòigh - soirbheachas? Dhòmhsa, tha e gu math soirbheachail. Seo cudromach, mar sin bidh mi a-rithist - ma tha thu ma chailleas tu co-dhiù aon de na faidhlichean sin, caillidh tu an cùl-taic gu lèir.

Ma choimheadas tu sa log air an fhiosrachadh cùl-taic a tha air a thaisbeanadh le bhith a’ cleachdadh Trace Flags 3213 agus 3605, chì thu nuair a bhios tu a’ cumail taic ri grunn innealan, gum bi co-dhiù an àireamh de BUFFERCOUNT ag àrdachadh. Is dòcha, faodaidh tu feuchainn ri paramadairean nas fheàrr a thaghadh airson BUFFERCOUNT, BLOCKSIZE, MAXTRANSFERSIZE, ach cha do shoirbhich leam anns a’ bhad, agus bha mi ro leisg airson a leithid de dheuchainn a dhèanamh a-rithist, ach airson àireamh eadar-dhealaichte de fhaidhlichean. Agus tha e tàmailteach mu na cuibhlichean. Ma tha thu airson an leithid de dheuchainnean a chuir air dòigh aig an taigh, chan eil e duilich an sgriobt ath-dhèanamh.

Mu dheireadh, bruidhnidh sinn mu phrìs. Ma thèid an cùl-taic a thoirt air falbh ann an co-shìnte ri obair an neach-cleachdaidh, feumaidh tu dòigh-obrach gu math cunntachail a chleachdadh airson deuchainn, oir ma thèid an cùl-taic a thoirt air falbh nas luaithe, bidh na diosgan air an teannachadh nas motha, bidh an luchd air a ’phròiseasar ag àrdachadh (feumaidh tu fhathast teannachadh e air an itealan), agus mar sin, tha freagairteachd iomlan an t-siostaim a’ lùghdachadh.

Dìreach magadh, ach tha mi a’ tuigsinn gu math nach do rinn mi foillseachaidhean sam bith. Tha na tha sgrìobhte gu h-àrd dìreach na thaisbeanadh air mar as urrainn dhut na paramadairean as fheàrr a thaghadh airson cùl-taic a ghabhail.

Cuimhnich gu bheil a h-uile rud a nì thu air a dhèanamh air do chunnart fhèin. Thoir sùil air na cùl-taic agad agus na dìochuimhnich mu DBCC CHECKDB.

Source: www.habr.com

Cuir beachd ann