KB2634571 – Подобренията за командата DBCC CHECKDB може да доведат до по-бърза производителност, когато използвате опцията за PHYSICAL_ONLY

Отнася се за
SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Express with Advanced Services SQL Server 2008 R2 Standard SQL Server 2008 R2 Standard Edition for Small Business SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 Service Pack 3 SQL Server 2008 Standard Edition for Small Business SQL Server 2008 Web SQL Server 2008 Workgroup SQL Server 2008 Service Pack 2 SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Enterprise Core SQL Server 2012 Express SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core

Microsoft разпространява корекциите за Microsoft SQL Server 2008 R2, SQL Server 2008 R2 SP1 и SQL Server 2008 като един файл за изтегляне. Тъй като корекциите са кумулативни, всяко ново издание съдържа всички актуални поправки и корекции на защитата, които са включени в предишните корекции за SQL Server 2008 R2, SQL Server 2008 R2 SP1 и SQL Server 2008.

Въведение

Командата DBCC CHECKDB балансира нуждата между производителност и ресурси. Следователно по подразбиране командата DBCC CHECKDB може да не увеличи максимално използването на ресурсите, когато се изпълняват проверки за съгласуваност за база данни.

Например командата DBCC CHECKDB може да не увеличи максимално използването на диска за вход/изход, когато се изпълняват проверки за съгласуваност за база данни.

Решение

Кумулативна информация за актуализацията

SQL Server 2008 Service Pack 2

Корекцията за този проблем е издадена за първи път в сборна актуализация 9 за SQL Server 2008 Service Pack 2. За допълнителна информация относно този пакет за кумулативна актуализация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2673382 Сборен пакет за актуализация 9 за SQL Server 2008 Service Pack 2

                 Забележка Тъй като компилациите са кумулативни, всяка нова корекция съдържа всички актуални поправки и корекции на защитата, които са включени в предишното издание на корекция на SQL Server 2008. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За повече информация вижте следната статия в базата знания на Microsoft:

2402659 Компилациите на SQL Server 2008, които са издадени след издаването на SQL Server 2008 Service Pack 2

Актуалните поправки на Microsoft SQL Server 2008 се създават за конкретни сервизни пакети на SQL Server. Трябва да приложите актуална корекция за SQL Server 2008 Service Pack 2 към инсталация на SQL Server 2008 Service Pack 2. По подразбиране всяка актуална корекция, предоставена в сервизен пакет на SQL Server, се включва в следващия сервизен пакет на SQL Server.

SQL Server 2008 Service Pack 3

Корекцията за този проблем е издадена за първи път в сборна актуализация 4 за SQL Server 2008 Service Pack 3. За повече информация относно този пакет за кумулативна актуализация вижте следната статия в базата знания на Microsoft:

2673383 Сборен пакет за актуализация 4 за SQL Server 2008 Service Pack 3

                 Забележка Тъй като компилациите са кумулативни, всяка нова корекция съдържа всички актуални поправки и корекции на защитата, които са включени в предишното издание на корекция на SQL Server 2008. Microsoft препоръчва да обмислите прилагането на най-новото издание на корекцията, което съдържа тази гореща корекция. За повече информация вижте следната статия в базата знания на Microsoft:

2629969 Компилациите на SQL Server 2008, които са издадени след издаването на SQL Server 2008 Service Pack 3

Актуалните поправки на Microsoft SQL Server 2008 се създават за конкретни сервизни пакети на SQL Server. Трябва да приложите актуална корекция за SQL Server 2008 Service Pack 3 към инсталация на SQL Server 2008 Service Pack 3. По подразбиране всяка актуална корекция, предоставена в сервизен пакет на SQL Server, се включва в следващия сервизен пакет на SQL Server.

Сборен пакет за актуализация 11 за SQL Server 2008 R2

Корекцията за този проблем е издадена за първи път в кумулативна актуализация 11. За повече информация как да получите този сборен пакет за актуализация за SQL Server 2008 R2, вижте следната статия в базата знания на Microsoft:

2633145 Сборен пакет за актуализация 11 за SQL Server 2008 R2

                 Забележка Тъй като компилациите са кумулативни, всяка нова корекция съдържа всички актуални поправки и корекции на защитата, които са били включени в предишното издание на корекция на SQL Server 2008 R2. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За повече информация вижте следната статия в базата знания на Microsoft:

981356 Компилациите на SQL Server 2008 R2, които са издадени след издаването на SQL Server 2008 R2

Сборен пакет за актуализация 4 за SQL Server 2008 R2 SP1

Корекцията за този проблем е издадена за първи път в кумулативна актуализация 4. За повече информация относно как да получите този сборен пакет за актуализация за SQL Server 2008 R2 SP1 вижте следната статия в базата знания на Microsoft:

2633146 Сборен пакет за актуализация 4 за SQL Server 2008 R2 SP1

                 Забележка Тъй като компилациите са кумулативни, всяка нова корекция съдържа всички актуални поправки и корекции на защитата, които са били включени в предишното издание на корекция на SQL Server 2008 R2 SP1. Препоръчваме ви да помислите за прилагане на най-новото издание на корекцията, което съдържа тази гореща корекция. За повече информация вижте следната статия в базата знания на Microsoft:

2567616 Компилациите на SQL Server 2008 R2, които са издадени след издаването на SQL Server 2008 R2 SP1

SQL Server 2012

SQL Server 2012 съдържа промените в кода за тези корекции. И двата флага за проследяване 2562 и 2549, както са описани по-долу, важат и за SQL Server 2012. Въпреки това корекцията за намаляване на състезанията по ключалката за DBCC_MULTIOBJECT_SCANNER не изисква флаг за проследяване 2562 в SQL Server 2012. Тези промени са включени по подразбиране в SQL Server 2012.

Повече информация

Тази кумулативна актуализация въвежда два флага за проследяване за по-добро максимизиране на използването на дискови В/И ресурси, когато потребителят изпълнява командата DBCC CHECKDB . Въпреки че тези подобрения са насочени само към опцията PHYSICAL_ONLY , те могат също да подобрят цялостната производителност на командите DBCC CHECKDB , които не използват опцията за PHYSICAL_ONLY .

Trace flag 2562

Този флаг за проследяване включва следните промени:

  • Изпълнете командата DBCC CHECKDB в една "партида" независимо от броя на индексите в базата данни. По подразбиране командата DBCC CHECKDB се опитва да минимизира ресурсите на tempdb , като ограничава броя на индексите или "фактите", които генерира с помощта на концепцията за "партиди". Този флаг за проследяване налага цялата обработка да се обедини в една партида.
  • Подобрете вътрешната обработка, за да определите кои страници да се четат от базата данни. Това намалява състезанията по DBCC_MULTIOBJECT_SCANNER резето.

Един ефект от използването на този флаг за проследяване е, че изискванията за пространство за tempdb може да се увеличат. Tempdb може да нарасне до 5 процента или повече от потребителската база данни, която се обработва от командата DBCC CHECKDB . Затова ви препоръчваме да оразмерите tempdb до поне 5 процента от размера на вашата база данни, когато използвате този флаг за проследяване, за да избегнете автоматично нарастване, което може да забави изпълнението на командата DBCC CHECKDB .

Забележка Trace flag 2562 е флаг за проследяване на ниво сесия. Можете да го разрешите на ниво сесия.

Trace flag 2549

Командата DBCC CHECKDB създава вътрешен списък със страници за четене на уникално дисково устройство във всички файлове на база данни. Тази логика определя уникални дискови устройства въз основа на буквата на устройството на името на физическия файл на всеки файл. Ако базовите дискове са наистина уникални, независимо дали буквите на устройството са или не, командата DBCC CHECKDB ще ги третира като един диск. Когато този флаг за проследяване е разрешен, се приема, че всеки файл на базата данни е на уникален диск. Не използвайте този флаг за проследяване, освен ако не знаете, че всеки файл се базира на уникален физически диск.

Забележка Trace flag 2549 е глобален флаг за проследяване. За да го разрешите, трябва да го използвате като параметър за стартиране или да използвате DBCC TRACEON (2549,-1).

Въпреки че тези флагове за проследяване подобряват производителността на командите DBCC CHECKDB , които са насочени към използването на опцията DBCC CHECKDB , някои потребители може да не забележат подобрение в производителността. Докато тези флагове за проследяване подобряват използването на дисковите В/И ресурси, базовата производителност на дисковите ресурси може да ограничи цялостната производителност на командата DBCC CHECKDB .

Имайте предвид следните ограничения:

  • Подобренията на производителността не са предназначени да подобрят производителността, когато използвате опцията за поправка .
    Например подобренията на производителността не са предназначени да подобрят производителността, когато използвате опцията за REPAIR_ALLOW_DATA_LOSS .
  • Подобренията не засягат командата DBCC CHECKALLOC .
  • Подобренията може да помогнат за производителността на командата DBCC CHECKTABLE за индекси с много страници. Подобренията обаче не са насочени към подобряване на изпълнението на командата DBCC CHECKTABLE .

Състояние

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.