Snížení zátěže optimalizace produkčního serveru
platí pro:SQL Serverazure SQL Database
Poradce pro ladění databázového stroje spoléhá na optimalizátor dotazů k analýze úlohy a k optimalizaci doporučení. Provedení této analýzy na produkčním serveru se přidá k zatížení serveru a může poškodit výkon serveru během relace ladění. Dopad na zatížení serveru během relace ladění můžete snížit současným použitím testovacího a produkčního serveru.
Jak Poradce pro ladění databázového stroje používá testovací server
Tradičním způsobem použití testovacího serveru je zkopírování všech dat z produkčního serveru na testovací server, vyladění testovacího serveru a následné implementace doporučení na produkčním serveru. Tento proces eliminuje dopad na výkon na produkční server, ale přesto není optimálním řešením. Například kopírování velkých objemů dat z produkce na testovací server může spotřebovávat značné množství času a prostředků. Kromě toho je hardware testovacího serveru zřídka tak výkonný jako hardware, který je nasazený pro produkční servery. Proces ladění závisí na optimalizátoru dotazů a doporučení, která generuje, jsou částečně založená na základním hardwaru. Pokud není hardware testovacího a produkčního serveru stejný, sníží se kvalita doporučení Advisoru pro ladění databázového stroje.
Aby nedocházelo k těmto problémům, naladí Poradce pro ladění databázového stroje databázi na produkčním serveru tím, že přesměruje většinu zatížení ladění na testovací server. Provede to pomocí informací o konfiguraci hardwaru produkčního serveru a bez skutečného kopírování dat z produkčního serveru na testovací server. Poradce pro ladění databázového stroje nekopíruje skutečná data z produkčního serveru na testovací server. Kopíruje pouze metadata a nezbytné statistiky.
Následující kroky popisují proces ladění produkční databáze na testovacím serveru:
Ujistěte se, že na obou serverech existuje uživatel, který chce použít testovací server.
Než začnete, ujistěte se, že na obou serverech existuje uživatel, který chce použít testovací server k ladění databáze na produkčním serveru. To vyžaduje, abyste na testovacím serveru vytvořili uživatele a jeho přihlášení. Pokud jste členem správce systému pevné role serveru na obou počítačích, tento krok není nutný.
Vylaďte úlohu na testovacím serveru.
Pokud chcete ladit úlohu na testovacím serveru, musíte použít vstupní soubor XML s nástrojem příkazového řádku dta. Ve vstupním souboru XML zadejte název vašeho testovacího serveru podprvkem TestServer spolu se zadáním hodnot pro ostatní podprvky pod nadřazený prvek TuningOptions.
Během procesu ladění vytvoří Poradce pro optimalizaci databázového stroje na testovacím serveru prázdnou databázi. Chcete-li vytvořit tuto dohledovou databázi a vyladit ji, provede Poradce pro ladění databázového stroje volání na produkční server za účelem následujícího:
Poradce pro ladění databázového stroje importuje metadata z produkční databáze do databáze testovacího prostředí serveru. Tato metadata zahrnují prázdné tabulky, indexy, zobrazení, uložené procedury, triggery atd. To umožňuje, aby se dotazy na úlohy spouštěly v databázi testovacího prostředí serveru.
Poradce pro ladění databázového stroje importuje statistiky z produkčního serveru, aby optimalizátor dotazů mohl přesně optimalizovat dotazy na testovacím serveru.
Poradce pro ladění databázového stroje importuje hardwarové parametry určující počet procesorů a dostupnou paměť z produkčního serveru, aby optimalizátor dotazů poskytl informace, které potřebuje k vygenerování plánu dotazu.
Jakmile Poradce pro ladění databázového stroje dokončí ladění databáze testovacího prostředí serveru, vygeneruje doporučení pro ladění.
Použijte doporučení získané laděním testovacího serveru na produkční server.
Následující obrázek ukazuje scénář testovacího serveru a produkčního serveru:
Poznámka
Funkce ladění testovacího serveru není podporována v grafickém uživatelském rozhraní (GUI) Advisoru pro ladění databázového stroje.
Příklad
Nejprve se ujistěte, že uživatel, který chce provést ladění, existuje na testovacích i produkčních serverech.
Po zkopírování informací o uživateli na testovací server můžete definovat relaci ladění testovacího serveru ve vstupním souboru XML Advisoru pro ladění databázového stroje. Následující příklad vstupní soubor XML ukazuje, jak zadat testovací server pro ladění databáze pomocí Poradce pro ladění databázového stroje.
V tomto příkladu se databáze MyDatabaseName
ladí na MyServerName
. Skript Transact-SQL, MyWorkloadScript.sql
, se používá jako úloha. Tato úloha obsahuje události, které se spouštějí v MyDatabaseName
. Většina volání optimalizátoru dotazů do této databáze, k nimž dochází v rámci procesu ladění, je zpracovávána shellovou databází, která se nachází na MyTestServerName
. Databáze shellu se skládá z metadat a statistik. Výsledkem tohoto procesu je snížení režie optimalizace na testovací server. Když Poradce pro ladění databázového stroje vygeneruje doporučení pro ladění pomocí tohoto vstupního souboru XML, má zohlednit pouze indexy (<FeatureSet>IDX</FeatureSet>
), žádné particionování, a není třeba uchovávat žádné z existujících struktur fyzického návrhu v MyDatabaseName
.
<?xml version="1.0" encoding="utf-16" ?>
<DTAXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/sqlserver/2004/07/dta">
<DTAInput>
<Server>
<Name>MyServerName</Name>
<Database>
<Name>MyDatabaseName</Name>
</Database>
</Server>
<Workload>
<File>MyWorkloadScript.sql</File>
</Workload>
<TuningOptions>
<TestServer>MyTestServerName</TestServer>
<FeatureSet>IDX</FeatureSet>
<Partitioning>NONE</Partitioning>
<KeepExisting>NONE</KeepExisting>
</TuningOptions>
</DTAInput>
</DTAXML>
Viz také
důležité informace o používání testovacích serverů
referenční informace ke vstupnímu souboru XML (Poradce pro ladění databázového stroje)