Megosztás a következőn keresztül:


Végrehajtási terv áttekintése

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

A lekérdezések végrehajtásához az SQL Server adatbázismotorjának elemeznie kell az utasítást, hogy megállapíthassa a szükséges adatok elérésének és feldolgozásának hatékony módját. Ezt az elemzést a Lekérdezésoptimalizáló nevű összetevő kezeli. A Lekérdezésoptimalizáló bemenete a lekérdezésből, az adatbázissémából (tábla- és indexdefiníciókból) és az adatbázis-statisztikákból áll. A Lekérdezésoptimalizáló létrehoz egy vagy több lekérdezés-végrehajtási tervet, más néven lekérdezésterveket vagy végrehajtási terveket. A Lekérdezésoptimalizáló heurisztikai készlettel választ ki egy lekérdezési tervet a fordítási idő és az optimális tervezés egyensúlyának érdekében, hogy megtalálja a megfelelő lekérdezéstervet.

Borravaló

A lekérdezésfeldolgozási és lekérdezés-végrehajtási tervekről további információt a lekérdezésfeldolgozási architektúra útmutatójának SELECT-utasítások optimalizálása és Végrehajtási terv gyorsítótárazása és újrafelhasználása című szakaszban talál.

A végrehajtási tervek SQL Server Management Studióban és az Azure Data Studióban való megtekintéséről további információt a Végrehajtási tervek megjelenítése és mentésecímű témakörben talál.

A lekérdezés-végrehajtási terv a következő definíciója:

  • A forrástáblák elérésének sorrendje.

    Általában számos sorozat létezik, amelyekben az adatbázis-kiszolgáló hozzáférhet az alaptáblákhoz az eredményhalmaz létrehozásához. Ha például egy SELECT utasítás három táblára hivatkozik, az adatbázis-kiszolgáló először hozzáférhet TableA, a TableA adataival kinyerheti az egyező sorokat TableB, majd a TableB adataival kinyerheti az adatokat TableC. A többi sorozat, amelyben az adatbázis-kiszolgáló hozzáférhet a táblákhoz, a következők:
    TableC, TableB, TableAvagy
    TableB, TableA, TableCvagy
    TableB, TableC, TableAvagy
    \, \, \

  • Az egyes táblák adatainak kinyerésére használt módszerek.

    Általában különböző módszerek vannak az egyes táblák adatainak elérésére. Ha csak néhány sorra van szükség meghatározott kulcsértékekkel, az adatbázis-kiszolgáló használhat indexet. Ha a tábla összes sorára szükség van, az adatbázis-kiszolgáló figyelmen kívül hagyhatja az indexeket, és elvégezhet egy táblavizsgálatot. Ha egy tábla összes sorára szükség van, de van egy index, amelynek kulcsoszlopai egy ORDER BYvannak, akkor a táblázatvizsgálat helyett indexvizsgálat végrehajtása külön eredményhalmazt menthet. Ha egy tábla kicsi, akkor a táblavizsgálatok lehetnek a leghatékonyabb módszer a tábla szinte minden elérésére.

  • A számítások kiszámításához használt módszerek, valamint az egyes táblák adatainak szűrése, összesítése és rendezése.

    Mivel az adatok táblákból érhetők el, különböző módszerekkel végezhet számításokat az adatokon, például skaláris értékek kiszámításán, valamint a lekérdezés szövegében meghatározott adatok összesítésére és rendezésére, például GROUP BY vagy ORDER BY záradék használatakor, valamint az adatok szűrésére, például WHERE vagy HAVING záradék használatakor.