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


Bővített események munkamenetei

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

A bővített események munkamenete a kiterjesztett események motort futtató SQL Server adatbázismotor folyamatában jön létre. A kiterjesztett események munkamenetének következő aspektusai kontextust biztosítanak a kiterjesztett események infrastruktúrájának és a feldolgozásnak a megértéséhez:

  • Munkamenet-állapotok. A kiterjesztett események munkamenetének különböző állapotai, amikor CREATE EVENT SESSION a ALTER EVENT SESSION rendszer végrehajtja az utasításokat.

  • Munkamenet tartalma és jellemzői. A kiterjesztett események munkamenetének tartalma, például a célok és események, valamint az objektumok kapcsolatának ismertetése egy munkamenetben vagy munkamenetek között.

Munkamenet-állapotok

Az alábbi ábrán egy bővített események munkamenetének különböző állapotai láthatók.

A Bővített események munkamenet állapotát bemutató diagram.

Az előző ábrára hivatkozva figyelje meg, hogy a munkamenet állapota megváltozik, mivel a különböző adatdefiníciós nyelv (DDL) parancsok egy esemény-munkamenethez lesznek kiadva. Az alábbi táblázat ezeket az állapotváltozásokat ismerteti.

Ábrafelirat DDL utasítás Description
Create CREATE EVENT SESSION A gazdafolyamat létrehoz egy munkamenet-objektumot, amely a megadott metaadatokat CREATE EVENT SESSIONtartalmazza. A gazdafolyamat ellenőrzi a munkamenet definícióját, ellenőrzi a felhasználói jogosultsági szintet, és tárolja a metaadatokat az master adatbázisban. Ezen a ponton a munkamenet nem aktív.
Alter ALTER EVENT SESSION, STATE=START A gazdafolyamat elindítja a munkamenetet. A gazdafolyamat beolvassa a tárolt metaadatokat, ellenőrzi a munkamenet definícióját, ellenőrzi a felhasználói jogosultság szintjét, és létrehozza a munkamenetet. A munkamenet-objektumok, például az események és a célok betöltve vannak, és az eseménykezelés aktív.
Alter ALTER EVENT SESSION, STATE=STOP A gazdafolyamat leállítja az aktív munkamenetet, de megőrzi a metaadatokat.
Drop DROP EVENT SESSION Attól függően, hogy a munkamenet aktív-e, a Drop (DROP SESSION) törli a metaadatokat, bezárja az aktív munkamenetet, vagy törli a munkamenet metaadatait.

Munkamenet tartalma és jellemzői

A kiterjesztett események munkameneteinek hallgatólagos határai vannak abban, hogy az egyik munkamenet konfigurációja nem módosítja egy másik munkamenet konfigurációját. Ezek a határok azonban nem akadályozzák meg, hogy egy esemény vagy céltípus egynél több munkamenetben legyen használva.

Az alábbi ábrán a munkamenet tartalma, valamint a csomagok és a munkamenetek közötti kapcsolat látható.

Az objektumok egyidejű használatát és a munkamenetekben való megosztását bemutató ábra.

Az előző ábrára hivatkozva vegye figyelembe, hogy:

  • A csomagobjektumok és a munkamenetek közötti leképezés sok-sok, ami azt jelenti, hogy egy adott típusú objektum több munkamenetben is megjelenhet, és a munkamenetek több objektumot is tartalmazhatnak.
  • Ugyanaz az esemény (1. esemény) vagy céltípus (1. cél) több munkamenetben is használható.

A munkamenetek jellemzői a következők:

  • A műveletek és predikátumok munkamenetenkénti eseményekhez vannak kötve. Ha az A munkamenet 1. eseménye az 1. művelettel és a Z predikátummal rendelkezik, ez semmilyen módon nem befolyásolja az 1. eseményt a B munkamenetben a 2. művelettel és a 3. művelettel, predikátum nélkül.
  • A szabályzatok a munkamenetekhez vannak csatolva, amelyek kezelik a pufferelést és a küldést, valamint az okozati összefüggések nyomon követését.

A pufferelés azt jelenti, hogy az eseményadatok hogyan tárolódnak egy esemény-munkamenet futtatása közben. A pufferelési szabályzatok meghatározzák, hogy mennyi memóriát használjon az eseményadatokhoz, és az események veszteségszabályzatát. A küldés azt az időtartamot jelenti, amíg az események pufferekben maradnak, mielőtt feldolgozásra szolgálnak fel célként.

Az ok-okozati összefüggés nyomon követése több tevékenységben is működik. Ha az oksági nyomkövetés engedélyezve van, minden aktivált esemény egyedi tevékenységazonosítóval rendelkezik a rendszeren. A tevékenységazonosító egy OLYAN GUID-érték kombinációja, amely állandó marad egy tevékenység összes eseményében, és egy sorszám, amely minden alkalommal növekszik, amikor egy esemény aktiválódik. Ha az egyik tevékenység miatt a munka egy másikon történik, a rendszer elküldi a szülő tevékenységazonosítóját a gyermekfeladatnak. A gyermekfeladat a szülő tevékenységazonosítóját adja ki, amikor először aktivál egy eseményt.

Időhöz kötött esemény-munkamenetek

Az SQL Server 2025 -től kezdve (17.x) létrehozhat egy esemény munkamenetet, amely a megadott idő leteltét követően automatikusan leáll. Ez segít elkerülni azokat az eseteket, amikor a munkamenetek véletlenül határozatlan ideig futnak, erőforrásokat használnak fel, és nagy mennyiségű adatot generálnak.

Ha a munkamenet által létrehozott eseményadatok terjedelmesek, az időhöz kötött esemény munkamenetek segítenek a kisebb, célzott diagnosztikai adatok meghatározott időtartamokra történő rögzítésében. Az időhöz kötött esemény munkamenetét manuálisan vagy ütemezett feladattal is elindíthatja a választott időpontban, és garantálhatja, hogy a munkamenet nem marad határozatlan ideig.

Ha egy esemény munkamenetét időkorlátba szeretné állítani, adja meg az MAX_DURATION argumentumot a munkamenet létrehozásakor vagy módosításakor. További információ: CREATE EVENT SESSION and ALTER EVENT SESSION.

Az esemény-munkamenetekhez hasonlóan az utasítással ALTER EVENT SESSION ... STATE = STOP is leállíthat egy időhöz kötött munkamenetet, mielőtt a maximális időtartam el nem telik. Ha a munkamenet újra elindul, a munkamenet automatikus leállítása előtt a megadott MAX_DURATION teljes időtartamnak újra el kell telik.

Módosíthatja a meglévő esemény-munkameneteket ALTER EVENT SESSION is, és megadhat egy másik maximális időtartamot, vagy eltávolíthatja azt a beállítás megadásával MAX_DURATION = UNLIMITED. A MAX_DURATION beállítás módosításához le kell állítani a munkamenetet.

Ha egy esemény munkamenete időkorlátos, a max_durationsys.server_event_sessions katalógusnézet oszlopában a munkamenet maximális időtartama másodpercben jelenik meg. Az esemény munkamenete korlátlan időtartamú, ha az érték nulla.