MS SQL Server: Нусха дар стероидҳо

Интизор шавед! Интизор шавед! Дуруст аст, ки ин мақолаи дигар дар бораи намудҳои нусхабардории SQL Server нест. Ман ҳатто дар бораи фарқиятҳои байни моделҳои барқарорсозӣ ва чӣ гуна мубориза бурдан бо лӯлаи зиёдатӣ сӯҳбат намекунам.

Эҳтимол (танҳо шояд), пас аз хондани ин мақола, шумо метавонед боварӣ ҳосил кунед, ки нусхаи эҳтиётӣ, ки бо истифода аз воситаҳои стандартӣ аз шумо хориҷ карда мешавад, фардо шаб, хуб, 1.5 маротиба тезтар нест карда мешавад. Ва танҳо аз сабаби он, ки шумо каме бештар параметрҳои БАЗАИ МАЪЛУМОТРО истифода мебаред.

Агар мундариҷаи паём барои шумо равшан бошад, бахшиш мепурсам. Ман ҳама чизеро, ки Google барои ибораи "habr sql server backup" гирифта буд, хондам ва дар ҳеҷ як мақолае дар бораи он, ки вақти нусхабардорӣ метавонад бо истифода аз параметрҳо таъсир расонад, чизе наёфтам.

Ман фавран диққати шуморо ба шарҳи Александр Гладченко ҷалб мекунам (@mssqlhelp):

Ҳеҷ гоҳ параметрҳои BUFFERCOUNT, BLOCKSIZE, MAXTRANSFERSIZE-ро дар истеҳсолот тағир надиҳед. Онҳо танҳо барои навиштани чунин мақолаҳо сохта шудаанд. Дар амал, шумо аз мушкилоти хотира дар муддати кӯтоҳ халос мешавед.

Албатта, оқилонатарин ва мундариҷаи истисноӣ будан хеле хуб мебуд, аммо, мутаассифона, ин тавр нест. Ба ин мавзӯъ ҳам мақолаҳо/интишорҳо бо забони англисӣ ва ҳам русӣ (ман ҳамеша дар иштибоҳ мемонам, ки онҳоро чӣ тавр дуруст номидам) бахшида шудаанд. Инҳоянд чанде аз онҳо, ки ман дучор омадам: вақтҳо, два, се (дар sql.ru).

Ҳамин тавр, барои оғози он, ман синтаксиси каме кандашудаи BACKUP-ро аз MSDN (дар омади гап, ман дар боло дар бораи БАЗАИ МАЪЛУМОТИ ЗАХИРАӢ навишта будам, аммо ҳамаи ин ҳам ба нусхабардории сабти транзаксия ва ҳам нусхаи дифференсиалӣ дахл дорад, аммо эҳтимолан бо таъсири камтар возеҳ):

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 }
<...>

<…> - ин маънои онро дорад, ки дар он ҷо чизе ҳаст, аммо ман онро хориҷ кардам, зеро ҳоло он ба мавзӯъ дахл надорад.

Шумо одатан чӣ гуна нусхабардорӣ мекунед? Чӣ тавр онҳо дар миллиардҳо мақолаҳо нусхабардории нусхабардориро "омӯзонанд"? Умуман, агар ба ман лозим ояд, ки нусхаи эҳтиётии якдафъаинаи баъзе маълумотҳои на он қадар калонро созам, ман ба таври худкор чунин чизе менависам:

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

Ва дар маҷмӯъ, эҳтимолан 75-90% ҳамаи параметрҳое, ки одатан дар мақолаҳо дар бораи нусхабардорӣ зикр шудаанд, дар ин ҷо номбар шудаанд. Хуб, INIT, SKIP низ вуҷуд дорад. Оё шумо MSDN-ро боздид кардаед? Оё шумо дидаед, ки имконоти якуним экран вуҷуд дорад? Ман ҳам дидам...

Шумо шояд аллакай фаҳмидед, ки минбаъд мо дар бораи се параметре, ки дар блоки якуми код боқӣ мондаанд - BLOCKSIZE, BUFFERCOUNT ва MAXTRANSFERSIZE сӯҳбат хоҳем кард. Инҳоянд тавсифи онҳо аз MSDN:

БЛОКСИЗА = { блокандозӣ | @ blocksize_variable } - андозаи блоки физикиро бо байт нишон медиҳад. Андозаҳои дастгирӣшаванда 512, 1024, 2048, 4096, 8192, 16, 384 ва 32 байт (768 KB) мебошанд. Қимати пешфарз 65 барои дастгоҳҳои навор ва 536 барои дастгоҳҳои дигар аст. Одатан ин параметр лозим нест, зеро изҳороти BACKUP ба таври худкор андозаи мувофиқи блокро барои дастгоҳ интихоб мекунад. Муқаррар кардани андозаи блок ба таври возеҳ интихоби автоматии андозаи блокро бекор мекунад.

BUFFERCOUNT = { буферӣ | @ буфершумори_тағйирёбанда } - Миқдори умумии буферҳои I/O-ро, ки барои амалиёти эҳтиётӣ истифода мешаванд, муайян мекунад. Шумо метавонед ҳама гуна арзиши бутуни мусбатро муайян кунед, аммо шумораи зиёди буферҳо аз сабаби фазои аз ҳад зиёди суроғаи виртуалӣ дар раванди Sqlservr.exe метавонад хатогии аз хотираро ба вуҷуд орад.

Ҳаҷми умумии фазои истифодашудаи буферҳо бо формулаи зерин муайян карда мешавад: BUFFERCOUNT * MAXTRANSFERSIZE.

MAXTRANSFERSIZE = { maxtransfersize | @ maxtransfersize_variable } андозаи калонтарини бастаи маълумотро бо байт барои мубодилаи байни SQL Server ва медиаи маҷмӯи захиравӣ муайян мекунад. Миқдори зиёди 65 байт (536 КБ) то 64 байт (4 МБ) дастгирӣ карда мешавад.

Қасам - Ман инро қаблан хонда будам, аммо ҳеҷ гоҳ фикр намекардам, ки онҳо ба ҳосилнокӣ чӣ қадар таъсир мерасонанд. Гузашта аз ин, аз афташ, ман бояд як навъ "баромадан" кунам ва иқрор шавам, ки ҳоло ҳам ман пурра намефаҳмам, ки онҳо маҳз чӣ кор мекунанд. Эҳтимол ман бояд дар бораи буферии I/O ва кор бо диски сахт бештар хонам. Рӯзе ман ин корро хоҳам кард, аммо ҳоло ман метавонам скрипт нависам, ки чӣ гуна ин арзишҳо ба суръати гирифтани нусхабардорӣ таъсир мерасонанд.

Ман махзани хурде сохтам, ки андозаи он тақрибан 10 ГБ аст, онро дар SSD гузоштам ва директорияро барои нусхабардорӣ дар HDD гузоштам.

Ман барои нигоҳ доштани натиҷаҳо ҷадвали муваққатӣ месозам (ман онро муваққатӣ надорам, бинобар ин ман метавонам натиҷаҳоро муфассалтар кобед, аммо шумо худатон қарор медиҳед):

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
);

Принсипи скрипт оддӣ аст - ҳалқаҳои лона ҷойгиршуда, ки ҳар яки онҳо арзиши як параметрро тағир медиҳанд, ин параметрҳоро ба фармони BACKUP дохил мекунанд, сабти охиринро бо таърих аз msdb.dbo.backupset захира мекунанд, файли захиравӣ ва такрори навбатиро нест мекунанд. . Азбаски маълумоти иҷрои эҳтиётӣ аз нусхабардорӣ гирифта мешавад, дақиқӣ то андозае гум шудааст (ҳеҷ сонияҳо вуҷуд надоранд), аммо мо аз ин наҷот хоҳем ёфт.

Аввалан шумо бояд xp_cmdshell-ро барои нест кардани нусхаҳои эҳтиётӣ фаъол созед (пас, агар ба шумо лозим набошад, хомӯш кардани онро фаромӯш накунед):

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

Хуб, дар асл:

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

Агар ба шумо ногаҳон дар бораи он чизе, ки дар ин ҷо рӯй дода истодааст, шарҳ додан лозим аст, дар шарҳҳо ё PM нависед. Ҳоло ман ба шумо танҳо дар бораи параметрҳое мегӯям, ки ман дар МАЪЛУМОТИ ЗАХИРАӢ гузоштаам.

Барои BLOCKSIZE мо рӯйхати арзишҳои "пӯшида" дорем ва ман бо BLOCKSIZE < 4KB нусхабардорӣ накардаам. MAXTRANSFERSIZE ҳар рақаме, ки ба 64 КБ баробар аст - аз 64 КБ то 4 МБ. Пешфарз дар системаи ман 1024KB аст, ман 512 - 1024 - 2048 - 4096 гирифтам.

Бо BUFFERCOUNT мушкилтар буд - он метавонад ҳар як рақами мусбат бошад, аммо истинод мегӯяд он дар МАЪЛУМОТИ ЗАХИРАӢ чӣ гуна ҳисоб карда мешавад ва чаро арзишҳои калон хатарноканд?. Он инчунин мегӯяд, ки чӣ гуна маълумотро дар бораи он, ки нусхаи эҳтиётӣ воқеан бо кадом BUFFERCOUNT сохта шудааст, ба даст овардан мумкин аст - барои ман ин 7 аст. Барои кам кардани он ҳеҷ маъно надошт ва маҳдудияти болоӣ ба таври таҷрибавӣ кашф карда шуд - бо BUFFERCOUNT = 896 ва MAXTRANSFERSIZE = 4194304 нусхабардорӣ бо афтод. хато (дар бораи он дар истиноди боло навишта шудааст):

Msg 3013, Сатҳи 16, Ҳолати 1, хати 7 МАЪЛУМОТИ ЗАХИРАӢ ба таври ғайримуқаррарӣ қатъ мешавад.

Msg 701, Сатҳи 17, Ҳолати 123, Сатри 7 Дар ҳавзи захираҳои "пешфарз" барои иҷро кардани ин дархост хотираи система нокифоя аст.

Барои муқоиса, ман аввал натиҷаҳои иҷро кардани нусхаи эҳтиётиро бе нишон додани ягон параметр нишон медиҳам:

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

Хуб, нусхабардорӣ ва нусхабардорӣ:

1070072 саҳифа барои пойгоҳи додаи 'bt', файли 'bt' дар файли 1 коркард карда шуд.

2 саҳифа барои пойгоҳи додаи 'bt', файли 'bt_log' дар файли 1 коркард карда шуд.

БАЗАИ МАЪЛУМОТИ ЗАХИРАӢ 1070074 саҳифаро дар 53.171 сония (157.227 МБ/с) бомуваффақият коркард кард.

Худи скрипт, санҷиши параметрҳо, дар тӯли якчанд соат кор кард, ҳама ченакҳо буданд ҷадвали электронии google. Ва ин аст интихоби натиҷаҳо бо се вақти беҳтарини иҷро (ман кӯшиш кардам, ки графики хуб созам, аммо дар ин мақола ман бояд бо ҷадвал кор кунам ва дар шарҳҳо @mixsture илова карда шуд графикаи хеле аҷиб).

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: Нусха дар стероидҳо

Диққат, як ёддошти хеле муҳим аз @mixsture аз он Шарҳҳо:

Мо бо итминон гуфта метавонем, ки муносибати байни параметрҳо ва суръати нусхабардорӣ дар ин диапазони арзишҳо тасодуфӣ аст, ҳеҷ гуна намуна вуҷуд надорад. Аммо дур шудан аз параметрҳои дарунсохт ба натиҷа таъсири хуб расонд

Онхое. Танҳо тавассути идоракунии параметрҳои стандартии БАЗЪИЯТ 2 маротиба дар вақти бартарафсозии нусхабардорӣ зиёд шуд: 26 сония, дар аввал 53 сония. Ин бад нест, дуруст? Аммо мо бояд бубинем, ки бо барқарорсозӣ чӣ мешавад. Чӣ мешавад, агар барои барқарор кардани он ҳоло 4 маротиба зиёдтар вақт лозим шавад?

Аввалан, биёед чен кунем, ки барои барқарор кардани нусхабардорӣ бо танзимоти пешфарз чӣ қадар вақт лозим аст:

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

Хуб, шумо худатон медонед, ки роҳҳо вуҷуд доранд, иваз кардан иваз кардан нест, барқароршавӣ барқароршавӣ нест. Ва ман инро чунин мекунам:

1070072 саҳифа барои пойгоҳи додаи 'bt', файли 'bt' дар файли 1 коркард карда шуд.

2 саҳифа барои пойгоҳи додаи 'bt', файли 'bt_log' дар файли 1 коркард карда шуд.

МАЪЛУМОТИ БАРҚОР 1070074 саҳифаро дар 40.752 сония (205.141 МБ/с) бомуваффақият коркард кард.

Ҳоло ман кӯшиш мекунам, ки нусхаҳои эҳтиётии бо тағирёфтаи BLOCKSIZE, BUFFERCOUNT ва MAXTRANSFERSIZE гирифташударо барқарор кунам.

BLOCKSIZE = 16384, BUFFERCOUNT = 224, MAXTRANSFERSIZE = 4194304

МАЪЛУМОТИ БАРҚОР 1070074 саҳифаро дар 32.283 сония (258.958 МБ/с) бомуваффақият коркард кард.

BLOCKSIZE = 4096, BUFFERCOUNT = 448, MAXTRANSFERSIZE = 4194304

МАЪЛУМОТИ БАРҚОР 1070074 саҳифаро дар 32.682 сония (255.796 МБ/с) бомуваффақият коркард кард.

BLOCKSIZE = 16384, BUFFERCOUNT = 448, MAXTRANSFERSIZE = 2097152

МАЪЛУМОТИ БАРҚОР 1070074 саҳифаро дар 32.091 сония (260.507 МБ/с) бомуваффақият коркард кард.

BLOCKSIZE = 4096, BUFFERCOUNT = 56, MAXTRANSFERSIZE = 4194304

МАЪЛУМОТИ БАРҚОР 1070074 саҳифаро дар 32.401 сония (258.015 МБ/с) бомуваффақият коркард кард.

Изҳороти RESTORE DATABASE ҳангоми барқарорсозӣ тағир намеёбад; ин параметрҳо дар он нишон дода нашудаанд; худи SQL Server онҳоро аз нусхабардорӣ муайян мекунад. Ва маълум аст, ки ҳатто ҳангоми барқароршавӣ фоида ба даст овардан мумкин аст - қариб 20% тезтар (Ростӣ, ман барои барқарорсозӣ вақти зиёд сарф накардам, ман якчанд нусхаҳои эҳтиётии "зудтарин" -ро гузаштам ва боварӣ ҳосил кардам, ки ҳеҷ гуна бадшавӣ вуҷуд надорад).

Дар ҳар сурат, иҷозат диҳед фаҳмонам, ки инҳо баъзе параметрҳое нестанд, ки барои ҳама мувофиқанд. Шумо метавонед танҳо тавассути санҷиш параметрҳои оптималиро барои худ гиред. Ман ин натиҷаҳоро гирифтам, шумо натиҷаҳои гуногун хоҳед гирифт. Аммо шумо мебинед, ки шумо метавонед нусхаҳои эҳтиётии худро "танзим" кунед ва онҳо воқеан метавонанд зудтар ташкил ва ҷойгир шаванд.

Ман инчунин тавсия медиҳам, ки ҳуҷҷатҳоро пурра хонед, зеро метавонад нозукиҳои хоси системаи шумо бошад.

Азбаски ман ба навиштан дар бораи нусхабардорӣ шурӯъ кардам, ман мехоҳам фавран дар бораи боз як "оптимизатсия" нависам, ки нисбат ба параметрҳои "танзим" маъмултар аст (то ҷое ки ман фаҳмидам, онро ҳадди аққал баъзе утилитаҳои эҳтиётӣ истифода мебаранд, шояд дар якҷоягӣ бо параметрҳо. қаблан тавсиф карда шудааст), аммо он ҳанӯз дар Ҳабре тавсиф нашудааст.

Агар мо ба сатри дуюми ҳуҷҷатҳо назар андозем, рост дар зери БАЗАИ МАЪЛУМОТИ НАЗАВӢ, дар он ҷо мебинем:

TO <backup_device> [ ,...n ]

Ба фикри шумо, агар шумо якчанд дастгоҳи нусхабардориро муайян кунед, чӣ мешавад? Синтаксис ба он имкон медиҳад. Ва як чизи хеле ҷолиб рӯй медиҳад - нусхабардорӣ танҳо дар якчанд дастгоҳ "паҳн карда мешавад". Онхое. ҳар як "дастгоҳ" ба таври инфиродӣ бефоида хоҳад буд, якашро гум мекунад, тамоми нусхаро гум мекунад. Аммо ин гуна ифлосшавӣ ба суръати нусхабардорӣ чӣ гуна таъсир мерасонад?

Биёед кӯшиш кунем, ки дар ду "дастгоҳ", ки дар як папка паҳлӯ ба паҳлӯ ҷойгиранд, нусхабардорӣ кунем:

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

Падарони ҷаҳон, чаро ин тавр мешавад?

1070072 саҳифа барои пойгоҳи додаи 'bt', файли 'bt' дар файли 1 коркард карда шуд.

2 саҳифа барои пойгоҳи додаи 'bt', файли 'bt' коркард карда шудlog' дар файли 1.

БАЗАИ МАЪЛУМОТИ ЗАХИРАӢ 1070074 саҳифаро дар 40.092 сония (208.519 МБ/с) бомуваффақият коркард кард.

Оё нусхабардорӣ 25% тезтар шуд? Чӣ мешавад, агар мо якчанд дастгоҳи дигар илова кунем?

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

БАЗАИ МАЪЛУМОТИ ЗАХИРАӢ 1070074 саҳифаро дар 34.234 сония (244.200 МБ/с) бомуваффақият коркард кард.

Дар маҷмӯъ, фоида тақрибан 35% вақти гирифтани нусхаро ташкил медиҳад, танҳо аз сабаби он, ки нусхабардорӣ якбора ба 4 файл дар як диск навишта мешавад. Ман шумораи калонтарро тафтиш кардам - ​​дар ноутбуки ман фоида нест, оптималӣ - 4 дастгоҳ. Барои шумо - ман намедонам, шумо бояд тафтиш кунед. Хуб, дар омади гап, агар шумо ин дастгоҳҳоро дошта бошед - инҳо дар ҳақиқат дискҳои гуногунанд, табрик, фоида бояд боз ҳам назаррастар бошад.

Акнун биёед дар бораи чӣ гуна барқарор кардани ин хушбахтӣ сӯҳбат кунем. Барои ин, шумо бояд фармони барқароркуниро тағир диҳед ва ҳамаи дастгоҳҳоро номбар кунед:

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

МАЪЛУМОТИ БАРҚОР 1070074 саҳифаро дар 38.027 сония (219.842 МБ/с) бомуваффақият коркард кард.

Каме тезтар, аммо дар ҷое наздик, аҳамиятнок нест. Умуман, нусхабардорӣ зудтар хориҷ карда мешавад ва ба ҳамон тарз барқарор карда мешавад - муваффақият? Дар мавриди ман, ин хеле муваффақ аст. Ин муҳим аст, Пас такрор мекунам - агар шумо агар шумо ақаллан яке аз ин файлҳоро гум кунед, шумо тамоми нусхаро аз даст медиҳед.

Агар шумо ба сабти маълумоти эҳтиётӣ, ки бо истифода аз Trace Flags 3213 ва 3605 намоиш дода мешавад, назар кунед, шумо хоҳед дид, ки ҳангоми нусхабардорӣ ба якчанд дастгоҳ ҳадди аққал шумораи BUFFERCOUNT меафзояд. Эҳтимол, шумо метавонед кӯшиш кунед, ки параметрҳои оптималии BUFFERCOUNT, BLOCKSIZE, MAXTRANSFERSIZE-ро интихоб кунед, аммо ман дарҳол муваффақ нашудам ва ман хеле танбал будам, ки бори дигар ин санҷишро гузаронам, аммо барои шумораи гуногуни файлҳо. Ва дар бораи чархҳо шармовар аст. Агар шумо хоҳед, ки чунин санҷишро дар хона ташкил кунед, аз нав сохтани скрипт душвор нест.

Дар охир, биёед дар бораи нарх гап занем. Агар нусхабардорӣ дар баробари кори корбарон хориҷ карда шавад, шумо бояд ба санҷиш муносибати хеле масъулиятнокро ба даст оред, зеро агар нусхабардорӣ зудтар хориҷ карда шавад, дискҳо бештар шиддат мегиранд, сарборӣ ба протсессор меафзояд (шумо ба ҳар ҳол бояд фишурда кунед. он дар парвоз) ва мутаносибан, ҷавобгарии умумии система коҳиш меёбад.

Фақат шӯхӣ мекунам, аммо ман хуб мефаҳмам, ки ман ҳеҷ гуна ваҳй накардаам. Он чизе ки дар боло навишта шудааст, танҳо як намоиши он аст, ки чӣ гуна шумо метавонед параметрҳои оптималиро барои гирифтани нусхабардорӣ интихоб кунед.

Дар хотир доред, ки ҳама корҳое, ки шумо мекунед, бо хатар ва хатари шумо анҷом дода мешавад. Нусхаҳои эҳтиётии худро санҷед ва дар бораи DBCC CHECKDB фаромӯш накунед.

Манбаъ: will.com

Илова Эзоҳ