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
Az SQL Trace-ben az események akkor lesznek összegyűjtve, ha azok a nyomkövetési definícióban felsorolt eseményosztályok példányai. Ezek az események szűrhetők a nyomkövetésből, vagy várólistára állíthatók a céljukhoz. A cél lehet fájl vagy SQL Server Management Objects (SMO), amely az SQL Servert kezelő alkalmazások nyomkövetési információit használhatja.
Fontos
Az SQL Trace és az SQL Server Profiler elavult. A Microsoft SQL Server nyomkövetési és visszajátszási objektumait tartalmazó Microsoft.SqlServer.Management.Trace névtér is elavult.
Ez a funkció az SQL Server egy későbbi verziójában lesz eltávolítva. Ne használja ezt a funkciót az új fejlesztési munkában, és tervezze meg a funkciót jelenleg használó alkalmazások módosítását.
Használja helyette a Bővített események parancsot. Kiterjesztett események további információiért tekintse meg a következőket: Gyors kezdési útmutató: Kiterjesztett események az SQL Serverben, valamint az SSMS XEvent Profiler.
Az SQL Trace előnyei
A Microsoft SQL Server Transact-SQL rendszer által tárolt eljárásokat biztosít nyomkövetések létrehozásához az SQL Server adatbázismotor egy példányán. Ezek a rendszer által tárolt eljárások a saját alkalmazásaiból használhatók nyomkövetések manuális létrehozásához az SQL Server Profiler használata helyett. Ez lehetővé teszi, hogy egyéni alkalmazásokat írjon a vállalat igényeinek megfelelően.
SQL Trace-architektúra
Az eseményforrás lehet bármilyen forrás, amely létrehozza a nyomkövetési eseményt, például Transact-SQL kötegeket vagy SQL Server-eseményeket, például holtpontokat. Az eseményekkel kapcsolatos további információkért lásd az SQL Server eseményosztályának referenciáját. Az esemény bekövetkezése után, ha az eseményosztály szerepel egy nyomkövetési definícióban, az eseményinformációkat a nyomkövetés gyűjti össze. Ha a nyomkövetési definícióban szűrők lettek definiálva az eseményosztályhoz, a rendszer alkalmazza a szűrőket, és a nyomkövetési esemény adatait egy üzenetsorba továbbítja. Az üzenetsorból a nyomkövetési információk vagy fájlba íródnak, vagy az SMO felhasználhatja az alkalmazásokban, például az SQL Server Profilerben. Az alábbi ábra bemutatja, hogyan gyűjti össze az SQL Trace az eseményeket a nyomkövetés során.
SQL Trace terminológia
Az alábbi kifejezések az SQL Trace fő fogalmait írják le.
Event
Művelet előfordulása a Microsoft SQL Server adatbázismotor egy példányán belül.
Adatoszlop
Egy esemény attribútuma.
Eseményosztály
Nyomon követhető eseménytípus. Az eseményosztály tartalmazza az esemény által jelentett összes adatoszlopot.
Eseménykategória
Kapcsolódó eseményosztályok csoportja.
Nyomkövetés (főnév)
Az adatbázismotor által visszaadott események és adatok gyűjteménye.
Nyomon követ (ige)
Események gyűjtése és figyelése az SQL Server egy példányában.
Nyomkövetési meghatározás
Eseményosztályok, adatoszlopok és szűrők gyűjteménye, amelyek azonosítják a nyomkövetés során gyűjtendő események típusait.
Szűrő
A nyomkövetésben gyűjtött eseményeket korlátozó feltételek.
Nyomkövetési fájl
Nyomkövetés mentésekor létrehozott fájl.
Template
Az SQL Server Profilerben egy fájl, amely meghatározza a nyomkövetésben összegyűjtendő eseményosztályokat és adatoszlopokat.
Nyomkövetési tábla
Az SQL Server Profilerben egy tábla jön létre, amely akkor jön létre, amikor a rendszer egy táblába menti a nyomkövetést.
Adatoszlopok használata a visszaadott események leírásához
Az SQL Trace a nyomkövetési kimenet adatoszlopait használja a nyomkövetés futtatásakor visszaadott események leírására. Az alábbi táblázat az SQL Server Profiler adatoszlopait ismerteti, amelyek ugyanazok az adatoszlopok, mint amelyeket az SQL Trace használ, és az alapértelmezés szerint kijelölt oszlopokat jelzi.
| Adatoszlop | Oszlopszám | Description |
|---|---|---|
| * ApplicationName | 10 | Az ügyfélalkalmazás neve, amely létrehozta a kapcsolatot egy SQL Server példányához. Ez az oszlop az alkalmazás által átadott értékekkel van feltöltve, nem pedig a program nevével. |
| BigintData1 | 52 | Érték (bigint adattípus), amely a nyomkövetésben megadott eseményosztálytól függ. |
| BigintData2 | 53 | Érték (bigint adattípus), amely a nyomkövetésben megadott eseményosztálytól függ. |
| * Bináris adatok | 2 | A nyomkövetésben rögzített eseményosztálytól függő bináris érték. |
| * ClientProcessID | 9 | Az azonosító, amelyet a hostszámítógép rendel a kliens alkalmazás futtató folyamatához. Ez az adatoszlop akkor lesz feltöltve, ha az ügyfél megadja az ügyfél folyamatazonosítóját. |
| ColumnPermissions | 44 | Jelzi, hogy beállították-e oszlopengedélyt. Elemezheti az utasítás szövegét annak megállapításához, hogy mely oszlopokra alkalmazták az engedélyeket. |
| * CPU | 18 | Az esemény által használt processzoridő (ezredmásodpercben). |
| Adatbázis-azonosító | 3 | A USE database_name utasítás által megadott adatbázis azonosítója, vagy az alapértelmezett adatbázis azonosítója, ha egy adott példányhoz nem adtak ki USE database_nameutasítást. Az SQL Server Profiler megjeleníti az adatbázis nevét, ha a ServerName adatoszlop rögzítésre kerül a nyomkövetésben, és a szerver elérhető. Határozza meg az adatbázis értékét a DB_ID függvénnyel. |
| DatabaseName | 35 | Annak az adatbázisnak a neve, amelyben a felhasználói utasítás fut. |
| DBUserName | 40 | Az ügyfél SQL Server-felhasználóneve. |
| * Időtartam | 13 | Az esemény időtartama (mikroszekundumban). A kiszolgáló egy esemény időtartamát mikroszekundumban (egymilliomodik vagy 10-6 másodpercben) és az esemény által használt processzoridőt ezredmásodpercben (egy másodperc ezredmásodpercben vagy 10-3-ban) jelenti. Az SQL Server Profiler grafikus felhasználói felülete alapértelmezés szerint ezredmásodpercben jeleníti meg az Időtartam oszlopot, de ha egy nyomkövetést fájlba vagy adatbázistáblába ment, az Időtartam oszlop értéke mikroszekundumokban lesz megírva. |
| * EndTime | 15 | Az esemény befejezésének időpontja. Ez az oszlop nem töltődik fel olyan eseményosztályok esetében, amelyek elindítható eseményre hivatkoznak, például SQL:BatchStarting vagy SP:Starting. |
| Error | 31 | Egy adott esemény hibaszáma. Gyakran ez a sysmessagesben tárolt hibaszám. |
| * EventClass | 27 | A rögzített eseményosztály típusa. |
| EventSequence | 51 | Ennek az eseménynek a sorrendszáma. |
| EventSubClass | 21 | Az esemény alosztályának típusa, amely további információkat nyújt az egyes eseményosztályokról. A Végrehajtási figyelmeztetés eseményosztály eseményosztályának eseményosztály-értékei például a végrehajtási figyelmeztetés típusát jelölik: 1 = Lekérdezési várakozás. A lekérdezésnek meg kell várnia az erőforrásokat a végrehajtás előtt; például memória. 2 = Lekérdezés időtúllépése. A lekérdezés időtúllépést tapasztalt, miközben a szükséges erőforrások végrehajtására várt. Ez az adatoszlop nem minden eseményosztályhoz van feltöltve. |
| GUID | 54 | GUID-érték, amely a nyomkövetésben megadott eseményosztálytól függ. |
| Fájlnév | 36 | A módosított fájl logikai neve. |
| Fogantyú | 33 | Az ODBC, OLE DB vagy DB-Library által a kiszolgáló végrehajtásának koordinálásához használt egész szám. |
| Állomásnév | 8 | Az a számítógép neve, amelyen a kliens fut. Ez az adatoszlop akkor lesz feltöltve, ha az ügyfél megadja a gazdagép nevét. A gazdanév meghatározásához használja az HOST_NAME függvényt. |
| IndexID | 24 | Az esemény által érintett objektum indexének azonosítója. Az objektum index azonosítójának meghatározásához használja a sysindexes rendszer tábla indid oszlopát. |
| IntegerData | 25 | A nyomkövetésben rögzített eseményosztálytól függő egész szám. |
| IntegerData2 | 55 | A nyomkövetésben rögzített eseményosztálytól függő egész szám. |
| IsSystem | 60 | Azt jelzi, hogy az esemény rendszerfolyamaton vagy felhasználói folyamaton történt-e: 1 = rendszer 0 = felhasználó |
| LineNumber | 5 | A hibát tartalmazó sor számát tartalmazza. Az olyan eseményeknél, amelyek Transact-SQL utasításokat tartalmaznak( például SP:StmtStarting), a LineNumber a tárolt eljárásban vagy kötegben tartalmazza az utasítás sorszámát. |
| LinkedServerName | 45 | A linkelt szerver neve. |
| * LoginName | 11 | A felhasználó bejelentkezésének neve (akár SQL Server biztonsági bejelentkezés, akár a Windows bejelentkezési adatai DOMAIN\Felhasználónév formájában). |
| LoginSid | 41 | A bejelentkezett felhasználó biztonsági azonosítója (SID). Ezeket az információkat a főadatbázissys.server_principals nézetében találja. A kiszolgálóra való minden bejelentkezés egyedi azonosítóval rendelkezik. |
| MethodName | 47 | Az OLEDB metódus neve. |
| Mode | 32 | A különböző események által az esemény által kért vagy fogadott állapot leírására használt egész szám. |
| NestLevel | 29 | A @@NESTLEVEL által visszaadott adatokat képviselő egész szám. |
| NTDomainName | 7 | Az a Microsoft Windows-tartomány, amelyhez a felhasználó tartozik. |
| * NTUserName | 6 | A Windows felhasználóneve. |
| ObjectID | 22 | Az objektum rendszer által hozzárendelt azonosítója. |
| ObjectID2 | 56 | Ha elérhető, a kapcsolódó objektum vagy entitás azonosítója. |
| ObjectName | 34 | A hivatkozott objektum neve. |
| ** ObjectType | 28 | Az eseményben érintett objektum típusát képviselő érték. Ez az érték a sysobjects típusoszlopának felel meg. |
| Ellensúlyoz | 61 | Az utasítás kezdő eltolása a tárolt eljáráson vagy kötegen belül. |
| OwnerID | 58 | Csak zárolási események esetén. A zárolást tartalmazó objektum típusa. |
| Tulajdonosnév | 37 | Az objektum tulajdonosának adatbázis-felhasználóneve. |
| ParentName | 59 | Annak a sémának a neve, amelyben az objektum található. |
| Permissions | 19 | Az ellenőrzött engedélyek típusát jelző egész szám. Az értékek a következők: 1 = AZ ÖSSZES KIJELÖLÉSE 2 = Az összes frissítése 4 = ÖSSZES HIVATKOZÁS 8 = INSERT 16 = DELETE 32 = VÉGREHAJTÁS (csak eljárások) 4096 = SELECT ANY (legalább egy oszlop) 8192 = BÁRMIT FRISSÍTHET 16384 = BÁRMELY HIVATKOZÁS |
| ProviderName | 46 | Az OLEDB-szolgáltató neve. |
| * Olvas | 16 | A logikai lemez olvasási műveleteinek száma, amelyeket a kiszolgáló hajt végre az esemény nevében. Ezek az olvasási műveletek tartalmazzák az utasítás végrehajtása során a táblákból és pufferekből származó összes olvasást. |
| RequestID | 49 | Az utasítást tartalmazó kérés azonosítója. |
| RoleName | 38 | Az engedélyezve lévő alkalmazásszerepkör neve. |
| RowCounts | 48 | A köteg sorainak száma. |
| Kiszolgálónév | 26 | A nyomon követendő SQL Server-példány neve. |
| SessionLoginName | 64 | A felhasználó bejelentkezési neve, aki a játékmenetet indította. Ha például a Login1 használatával csatlakozik az SQL Serverhez, és egy utasítást hajt végre Login2-ként, a SessionLoginName megjeleníti a Login1-et, míg a LoginName a Login2-t. Ez az adatoszlop SQL Server- és Windows-bejelentkezéseket is megjelenít. |
| Severity | 20 | A kivételesemény súlyossági szintje. |
| SourceDatabaseID | 62 | Annak az adatbázisnak az azonosítója, amelyben az objektum forrása létezik. |
| * SPID | 12 | Az SQL Server által az ügyfélhez társított folyamathoz hozzárendelt munkamenet-azonosító (SPID). |
| SqlHandle | 63 | 64 bites hash, amely egy ad hoc lekérdezés szövegén vagy egy SQL objektum adatbázis- és objektumazonosítóján alapul. Ez az érték átadható sys.dm_exec_sql_text() számára a társított SQL-szöveg lekéréséhez. |
| * StartTime | 14 | Az esemény kezdetének időpontja, amikor elérhető. |
| State | 30 | Hibaállapot-kód. |
| Siker | 23 | Azt jelzi, hogy az esemény sikeres volt-e. Az értékek többek között az alábbiak lehetnek: 1 = Siker. 0 = Hiba Az 1 például sikeres engedélyellenőrzést, a 0 pedig sikertelen ellenőrzést jelent. |
| TargetLoginName | 42 | Bejelentkezést célzó műveletek esetén a célként megadott bejelentkezés neve; például új bejelentkezés hozzáadásához. |
| TargetLoginSid | 43 | A bejelentkezést célzó műveletek esetén a célként megadott bejelentkezés SID-azonosítója; például új bejelentkezés hozzáadásához. |
| TargetUserName | 39 | Adatbázis-felhasználót célzó műveletek esetén a felhasználó neve; például engedélyt adhat egy felhasználónak. |
| * TextData | 1 | A nyomkövetésben rögzített eseményosztálytól függő szöveges érték. Ha azonban paraméteres lekérdezést követ nyomon, a változók nem jelennek meg adatértékekkel a TextData oszlopban. |
| Tranzakcióazonosító | 4 | A tranzakció rendszer által kiosztott azonosítója. |
| Típus | 57 | A nyomkövetésben rögzített eseményosztálytól függő egész szám. |
| * Írja | 17 | Azon fizikai lemezírási műveletek száma, amelyeket a kiszolgáló hajt végre az esemény nevében. |
| XactSequence | 50 | Az aktuális tranzakciót leíró token. |
* Ezek az adatoszlopok alapértelmezés szerint minden eseményhez fel vannak töltve.
** További információ az ObjectType adatoszlopról: ObjectType Trace Event Column.
SQL-nyomkövetési feladatok
| Tevékenység leírása | Téma |
|---|---|
| Ismerteti, hogyan hozhat létre és futtathat nyomkövetéseket Transact-SQL tárolt eljárások használatával. | Nyomkövetések létrehozása és futtatása Transact-SQL tárolt eljárások használatával |
| Ismerteti, hogyan hozhat létre manuális nyomkövetéseket tárolt eljárásokkal az SQL Server-adatbázismotor egy példányán. | Manuális nyomkövetések létrehozása tárolt eljárások használatával |
| Ismerteti, hogyan mentheti a nyomkövetési eredményeket arra a fájlra, amelyben a nyomkövetési eredmények meg vannak írva. | Nyomkövetési eredmények mentése fájlba |
| Leírja, hogyan javítható a nyomkövetési adatokhoz való hozzáférés a temp könyvtárban rendelkezésre álló tárhely használatával. | A nyomkövetési adatokhoz való hozzáférés javítása |
| Azt ismerteti, hogyan hozhat létre nyomkövetést tárolt eljárásokkal. | Nyomkövetés létrehozása (Transact-SQL) |
| Azt ismerteti, hogyan hozhat létre tárolt eljárásokat olyan szűrő létrehozásához, amely csak a nyomkövetés alatt álló eseményhez szükséges információkat kéri le. | Nyomkövetési szűrő beállítása (Transact-SQL) |
| Azt ismerteti, hogyan lehet tárolt eljárásokat használni egy meglévő nyomkövetés módosításához. | Meglévő nyomkövetés módosítása (Transact-SQL) |
| Bemutatja, hogyan használható beépített függvények a mentett nyomkövetés megtekintésére. | Mentett nyomkövetés megtekintése (Transact-SQL) |
| Bemutatja, hogyan használható a beépített függvények a nyomkövetési szűrő információinak megtekintésére. | Szűrőadatok megtekintése (Transact-SQL) |
| Azt ismerteti, hogyan lehet tárolt eljárásokat használni a nyomkövetés törléséhez. | Nyomkövetés törlése (Transact-SQL) |
| Azt ismerteti, hogyan minimalizálható a nyomkövetés által okozott teljesítményköltség. | Az SQL Trace optimalizálása |
| Azt ismerteti, hogyan szűrhet egy nyomkövetést a nyomkövetés során felmerülő többletterhelés minimalizálása érdekében. | Nyomkövetés szűrése |
| Ismerteti, hogyan minimalizálható a nyomkövetés által gyűjtött adatok mennyisége. | Nyomkövetési fájl- és táblaméretek korlátozása |
| A Nyomkövetés ütemezésének két módja a Microsoft SQL Serveren. | Ütemezze a nyomkövetéseket |
Lásd még:
SQL Server profiler sablonok és jogosultságok
SQL Server Management Objects (SMO) programozási útmutató