Společnost Microsoft distribuuje opravy pro Microsoft SQL Server 2008 R2, SQL Server 2008 R2 SP1 a SQL Server 2008 jako jeden soubor ke stažení. Vzhledem k tomu, že opravy jsou kumulativní, obsahuje každá nová verze všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího vydání opravy pro SQL Server 2008 R2, SQL Server 2008 R2 SP1 a SQL Server 2008.
Úvod
Příkaz DBCC CHECKDB vyvažuje potřebu poměru výkonu a zdrojů. Proto ve výchozím nastavení nemusí příkaz DBCC CHECKDB při spuštění kontrol konzistence databáze maximalizovat využití prostředků.
Příkaz DBCC CHECKDB například nemusí maximalizovat využití diskových vstupně-výstupních operací, když jsou spuštěny kontroly konzistence databáze.
Řešení
Informace o kumulativní aktualizaci
SQL Server 2008 Service Pack 2
Oprava, která tento problém řeší, byla poprvé vydána v kumulativní aktualizaci 9 pro SQL Server 2008 Service Pack 2. Další informace o tomto balíčku kumulativních aktualizací naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2673382 Balíček kumulativní aktualizace 9 pro SQL Server 2008 Service Pack 2
Poznámka Vzhledem k tomu, že buildy jsou kumulativní, obsahuje každá nová verze opravy všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze opravy pro SQL Server 2008. Doporučujeme zvážit použití nejnovější verze opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2402659 Buildy SQL Server 2008 vydané po vydání aktualizace Service Pack 2 SQL Server 2008
Opravy hotfix pro Microsoft SQL Server 2008 se vytvářejí pro konkrétní aktualizace Service Pack pro SQL Server. Opravu hotfix pro SQL Server 2008 Service Pack 2 je nutné nainstalovat pro instalaci systému SQL Server 2008 Service Pack 2. Ve výchozím nastavení jsou všechny opravy hotfix poskytované v aktualizaci Service Pack pro SQL Server zahrnuty do další aktualizace Service Pack pro SQL Server.
SQL Server 2008 Service Pack 3
Oprava tohoto problému byla poprvé vydána v kumulativní aktualizaci 4 pro SQL Server 2008 Service Pack 3. Další informace o tomto balíčku kumulativních aktualizací naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2673383 Balíček kumulativní aktualizace 4 pro SQL Server 2008 Service Pack 3
Poznámka Vzhledem k tomu, že buildy jsou kumulativní, obsahuje každá nová verze opravy všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze opravy pro SQL Server 2008. Společnost Microsoft doporučuje zvážit použití nejnovější verze opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2629969 Buildy SQL Server 2008 vydané po vydání aktualizace Service Pack 3 SQL Server 2008
Opravy hotfix pro Microsoft SQL Server 2008 se vytvářejí pro konkrétní aktualizace Service Pack pro SQL Server. Opravu hotfix pro SQL Server 2008 Service Pack 3 je nutné nainstalovat pro instalaci systému SQL Server 2008 Service Pack 3. Ve výchozím nastavení jsou všechny opravy hotfix poskytované v aktualizaci Service Pack pro SQL Server zahrnuty do další aktualizace Service Pack pro SQL Server.
Balíček kumulativní aktualizace 11 pro SQL Server 2008 R2
Oprava tohoto problému byla poprvé vydána v kumulativní aktualizaci 11. Další informace o získání tohoto balíčku kumulativních aktualizací pro SQL Server 2008 R2 naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2633145 Balíček kumulativní aktualizace 11 pro SQL Server 2008 R2
Poznámka Vzhledem k tomu, že buildy jsou kumulativní, obsahuje každá nová verze opravy všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze opravy pro SQL Server 2008 R2. Doporučujeme zvážit použití nejnovější verze opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
981356 Buildy SQL Server 2008 R2, které byly vydány po vydání verze SQL Server 2008 R2
Balíček kumulativní aktualizace 4 pro SQL Server 2008 R2 SP1
Oprava tohoto problému byla poprvé vydána v kumulativní aktualizaci 4. Další informace o získání tohoto balíčku kumulativní aktualizace pro SQL Server 2008 R2 SP1 naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2633146 Balíček kumulativní aktualizace 4 pro SQL Server 2008 R2 SP1
Poznámka Vzhledem k tomu, že buildy jsou kumulativní, obsahuje každá nová verze opravy všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího vydání opravy pro SQL Server 2008 R2 SP1. Doporučujeme zvážit použití nejnovější verze opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze znalostní báze Microsoft Knowledge Base:
2567616 Buildy SQL Server 2008 R2, které byly vydány po vydání aktualizace SP1 SQL Server 2008 R2
SQL Server 2012
SQL Server 2012 obsahuje změny kódu pro tyto opravy. Oba příznaky trasování 2562 a 2549 popsané níže platí také pro SQL Server 2012. Oprava pro omezení kolizí na západce DBCC_MULTIOBJECT_SCANNER však v SQL Server 2012 nevyžaduje trasování 2562. Tyto změny byly součástí SQL Serveru 2012 ve výchozím nastavení.
Další informace
Tato kumulativní aktualizace zavádí dva příznaky trasování pro lepší maximalizaci využití vstupně-výstupních prostředků disku, když uživatel spustí příkaz DBCC CHECKDB . Ačkoli tato vylepšení cílí pouze na možnost PHYSICAL_ONLY , mohou také zlepšit celkový výkon příkazů DBCC CHECKDB , které možnost PHYSICAL_ONLY nepoužívají.
Trace flag 2562
Tento příznak obsahuje následující změny:
- Spusťte příkaz DBCC CHECKDB v jedné "dávce" bez ohledu na počet indexů v databázi. Ve výchozím nastavení se příkaz DBCC CHECKDB snaží minimalizovat prostředky databáze tempdb tím, že omezuje počet indexů nebo "faktů", které generuje pomocí konceptu "dávek". Tento příznak trasování vynutí veškeré zpracování v jedné dávce.
- Zlepšete interní zpracování při určování, které stránky mají být z databáze čteny. Tím se sníží kolize na západce DBCC_MULTIOBJECT_SCANNER .
Jedním z důsledků použití tohoto příznaku sledování může být zvýšení nároků na místo pro databázi tempdb . Databáze tempdb může vzrůst až na 5 % nebo více uživatelské databáze zpracovávané příkazem DBCC CHECKDB . Proto doporučujeme při použití tohoto příznaku předběžně nastavit velikost databáze tempdb alespoň na 5 procent velikosti databáze, aby nedocházelo k automatickému růstu, který by mohl zpomalit výkon příkazu DBCC CHECKDB .
Poznámka Trace flag 2562 je příznak trasování na úrovni relace. Můžete ho povolit na úrovni relace.
Trace flag 2549
Příkaz DBCC CHECKDB vytvoří interní seznam stránek ke čtení na jedinečnou diskovou jednotku napříč všemi databázovými soubory. Tato logika určuje jedinečné diskové jednotky na základě písmene jednotky fyzického názvu každého souboru. Pokud jsou podkladové disky skutečně jedinečné, ať už jsou nebo nejsou písmena jednotek, bude je příkaz DBCC CHECKDB považovat za jeden disk. Pokud je tento příznak povolen, předpokládá se, že se každý soubor databáze nachází na jedinečné diskové jednotce. Tento příznak trasování nepoužívejte, pokud nevíte, že každý soubor je umístěn na jedinečném fyzickém disku.
Poznámka Trace flag 2549 je globální příznak trasování. Chcete-li jej povolit, musíte jej použít jako spouštěcí parametr nebo použít DBCC TRACEON (2549,-1).
Přestože tyto příznaky trasování zlepšují výkon příkazů DBCC CHECKDB , které jsou určeny pro použití možnosti DBCC CHECKDB , někteří uživatelé nemusí zaznamenat žádné zlepšení výkonu. Zatímco tyto příznaky trasování zlepšují využití diskových vstupně-výstupních prostředků, základní výkon diskových prostředků může omezovat celkový výkon příkazu DBCC CHECKDB .
Mějte na paměti následující omezení:
- Vylepšení výkonu nejsou navržena za účelem zlepšení výkonu při použití možnosti opravy .
Vylepšení výkonu například nejsou navržena tak, aby zlepšila výkon při použití možnosti REPAIR_ALLOW_DATA_LOSS . - Tato vylepšení nemají vliv na příkaz DBCC CHECKALLOC .
- Tato vylepšení mohou přispět ke zvýšení výkonu příkazu DBCC CHECKTABLE u indexů s mnoha stránkami. Tato vylepšení však nemají za cíl zlepšit výkon příkazu DBCC CHECKTABLE .
Stav
Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.