Sdílet prostřednictvím


Přehled plánu provádění

platí pro:SQL ServerAzure SQL Databaseazure SQL Managed Instance

Aby bylo možné spouštět dotazy, musí databázový stroj SQL Serveru analyzovat příkaz, aby určil efektivní způsob, jak získat přístup k požadovaným datům a zpracovat je. Tuto analýzu zpracovává komponenta s názvem Query Optimizer. Vstup optimalizátoru dotazů se skládá z dotazu, schématu databáze (definice tabulek a indexů) a statistiky databáze. Optimalizátor dotazů sestaví jeden nebo více plánů provádění dotazů, někdy nazývané také jako plány dotazů nebo plány provádění . Optimalizátor dotazů zvolí plán dotazu pomocí sady heuristik k vyvážení doby kompilace a naplánování optimálního nastavení, aby bylo možné najít vhodný plán dotazu.

Spropitné

Další informace o zpracování dotazů a plánech provádění dotazů najdete v částech Optimalizace příkazů SELECT a Ukládání a opakované použití plánů provádění do mezipaměti v průvodci architekturou zpracování dotazů.

Informace o zobrazení plánů provádění v aplikaci SQL Server Management Studio a Azure Data Studio najdete v tématu Zobrazení a uložení plánů provádění.

Definice plánu provádění dotazů je:

  • Posloupnost, ve které jsou zdrojové tabulky přístupné.

    Obvykle existuje mnoho sekvencí, ve kterých může databázový server přistupovat k základním tabulkám pro sestavení sady výsledků. Pokud například příkaz SELECT odkazuje na tři tabulky, databázový server by mohl nejprve získat přístup k TableA, pomocí dat z TableA extrahovat odpovídající řádky z TableBa pak pomocí dat z TableB extrahovat data z TableC. Další sekvence, ve kterých má databázový server přístup k tabulkám, jsou:
    TableC, TableB, TableAnebo
    TableB, TableA, TableCnebo
    TableB, TableC, TableAnebo
    TableC, TableA, TableB

  • Metody použité k extrakci dat z každé tabulky.

    Obecně platí, že pro přístup k datům v každé tabulce existují různé metody. Pokud se vyžaduje jenom několik řádků s konkrétními hodnotami klíče, může databázový server použít index. Pokud jsou požadovány všechny řádky v tabulce, databázový server může indexy ignorovat a provést kontrolu tabulky. Pokud jsou všechny řádky v tabulce povinné, ale existuje index, jehož klíčové sloupce jsou v ORDER BY, může provedení kontroly indexu místo prohledávání tabulky uložit samostatnou sadu výsledků. Pokud je tabulka malá, prohledávání tabulek může být nejúčinnější metodou téměř veškerého přístupu k tabulce.

  • Metody používané k výpočtům a způsob filtrování, agregace a řazení dat z každé tabulky.

    Při přístupu k datům z tabulek existují různé metody pro výpočty dat, jako jsou výpočty skalárních hodnot, a agregace a řazení dat definovaných v textu dotazu, například při použití klauzule GROUP BY nebo ORDER BY a filtrování dat, například při použití klauzule WHERE nebo HAVING.