Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-adatbázis a Microsoft Fabricben
Az SQL Server Query Store a repülési adatrögzítőhöz hasonlóan működik, és folyamatosan gyűjti a lekérdezésekkel és tervekkel kapcsolatos fordítási és futásidejű információkat. A lekérdezéssel kapcsolatos adatok megmaradnak a belső táblákban, és nézeteken keresztül jelennek meg a felhasználók számára.
Views
Az alábbi ábrán a Lekérdezéstár nézetei és logikai kapcsolatai láthatók, a fordítási idő adatai kék entitásként jelennek meg:
Leírások megtekintése
| View | Description |
|---|---|
| sys.query_store_query_text | Az adatbázison végrehajtott egyedi lekérdezési szövegeket jeleníti meg. A lekérdezés szövege előtt és után lévő megjegyzések és szóközök figyelmen kívül lesznek hagyva. A megjegyzések és a szövegen belüli szóközök nem lesznek figyelmen kívül hagyva. Minden tétel utasítás külön lekérdezési szövegbejegyzést hoz létre. |
| sys.query_context_settings | A tervre hatással lévő beállítások egyedi kombinációit mutatja be, amelyek alatt a lekérdezések végrehajtása történik. A különböző tervre hatással lévő beállításokkal végrehajtott lekérdezésszöveg külön lekérdezési bejegyzést hoz létre a Lekérdezéstárban, mert context_settings_id a lekérdezési kulcs része. |
| sys.query_store_query | Lekérdezés-bejegyzések, amelyeket a Lekérdezéstárban külön nyomon követnek és kényszerítenek. Egyetlen lekérdezésszöveg több lekérdezési bejegyzést is létrehozhat, ha az eltérő környezeti beállítások szerint van végrehajtva, vagy ha kívül, vagy különböző Transact-SQL modulokon, például tárolt eljárásokon és eseményindítókon belül hajtják végre. |
| sys.query_store_plan | A lekérdezés becsült tervét mutatja be a fordítási idő statisztikáival. A tárolt terv egyenértékű azzal, amelyet SET SHOWPLAN_XML ON használatával kap. |
| sys.query_store_runtime_stats_interval | A Lekérdezéstár az időt automatikusan generált időablakokra (intervallumokra) osztja, és minden végrehajtott tervhez az adott időköz összesített statisztikáit tárolja. Az intervallum méretét a Statistics Collection Interval (a Management Studióban) vagy INTERVAL_LENGTH_MINUTES az ALTER DATABASE SET Options (Transact-SQL) konfigurációs lehetőség szabályozza. |
| sys.query_store_runtime_stats | A futtatási idő összesített statisztikái a végrehajtott tervekhez. Az összes rögzített metrika négy statisztikai függvény formájában van kifejezve: Átlag, Minimum, Maximum és Szórás. |
A Lekérdezéstár nézetekkel kapcsolatos további információkért tekintse meg a Teljesítmény monitorozása a Lekérdezéstár használatával című szakaszában található kapcsolódó nézeteket, függvényeket és eljárásokat.
Lekérdezésfeldolgozás
A Lekérdezéstár a következő kulcsfontosságú pontokon kezeli a lekérdezésfeldolgozó folyamatot:
Amikor egy lekérdezés első alkalommal lesz lefordítva, a rendszer elküldi a lekérdezés szövegét és a kezdeti tervet a Lekérdezéstárba.
Amikor egy lekérdezés újrafordításra kerül, a terv frissül a Lekérdezéstárban. Ha új terv jön létre, a Lekérdezéstár hozzáadja a lekérdezés új tervbejegyzését, és megtartja az előzőeket a végrehajtási statisztikákkal együtt.
A lekérdezés végrehajtásakor a rendszer elküldi a futtatókörnyezeti statisztikákat a Lekérdezéstárnak. A Lekérdezéstár a jelenleg aktív intervallumon belül végrehajtott összes terv összesített statisztikáit pontos állapotban tartja.
A fordítás és az újrafordítási fázisok ellenőrzése során az SQL Server megállapítja, hogy van-e olyan terv a Lekérdezéstárban, amelyet alkalmazni kell az éppen futó lekérdezésre. Ha van egy kényszerített terv, és az eljárás gyorsítótárban lévő terv eltér a kényszerített tervtől, a lekérdezés újrafordításra kerül. Ez gyakorlatilag ugyanúgy működik, mintha a PLAN HINT-et alkalmazták volna az adott lekérdezésre. Ez a folyamat transzparens módon történik a felhasználói alkalmazás számára.
Az alábbi ábra az előző lépésekben ismertetett integrációs pontokat mutatja be:
Remarks
Az I/O-terhelés minimalizálása érdekében az új adatok a memóriában lesznek rögzítve. Az írási műveletek ezután várólistára kerülnek, és a lemezre kerülnek. A lekérdezési és tervinformációk, amelyek az alábbi ábrán Plan Store-ként jelennek meg, minimális késéssel lesznek kiürítve. A futásidejű statisztikák a memóriában maradnak a DATA_FLUSH_INTERVAL_SECONDS opció és a SET QUERY_STORE utasítás által meghatározott ideig. A Management Studio Lekérdezéstár párbeszédpanelen megadhatja az adatöblítési időköz (perc) értékét, amelyet a rendszer belsőleg másodpercre konvertál.
Ha a rendszer összeomlik vagy leállítás történik a 7745-ös nyomkövetési jelző használata közben, a Lekérdezéstár elveszítheti a gyűjtött, de még nem tárolt futtatókörnyezeti adatokat, akár egy meghatározott időkeretig DATA_FLUSH_INTERVAL_SECONDS. Az alapértelmezett 900 másodperces (15 perces) értéket javasoljuk a lekérdezésrögzítési teljesítmény és az adatok rendelkezésre állása közötti egyensúlyként.
Important
A maximális méret (MB) korlát nem szigorúan érvényes. A tárterület méretét csak akkor ellenőrzi a rendszer, ha a Lekérdezéstár adatokat ír lemezre. Ezt az időközt az Adatöblítési időköz érték állítja be. Ha a Lekérdezéstár túllépte a tárméret-ellenőrzések közötti maximális méretkorlátot, az írásvédett üzemmódra vált. Ha a méretalapú törlési mód engedélyezve van, a maximális méretkorlátot érvényesítő törlési mechanizmus is aktiválódik.
Note
Ha a rendszer memóriaterhelés alatt áll, a futásidejű statisztikákat a megadottnál korábbi lemezre lehet kiüríteni DATA_FLUSH_INTERVAL_SECONDS.
A lekérdezéstár adatainak olvasása során a memóriában és a lemezen tárolt adatok transzparensen egyesülnek.
Ha egy munkamenet leáll, vagy az ügyfélalkalmazás újraindul vagy összeomlik, a lekérdezési statisztikák nem lesznek rögzítve.
Lásd még
A teljesítmény monitorozása a Lekérdezéstár segítségével
Ajánlott eljárás a Lekérdezéstár használatával
Lekérdezéstár katalógusnézetei (Transact-SQL)