Megosztás:


Nyomkövetések megtekintése és elemzése az SQL Server Profilerrel

A következőkre vonatkozik:SQL ServerAzure SQL kezelte példány

Az SQL Server Profiler használatával megtekintheti a rögzített eseményadatokat egy nyomkövetésben. Az SQL Server Profiler meghatározott nyomkövetési tulajdonságok alapján jeleníti meg az adatokat. Az SQL Server-adatok elemzésének egyik módja az adatok másolása egy másik programba, például az SQL Serverbe vagy az adatbázismotor-finomhangolási tanácsadóba. Az adatbázismotor finomhangolási tanácsadója olyan nyomkövetési fájlt használhat, amely SQL-köteg- és távoli eljáráshívási (RPC-) eseményeket tartalmaz, ha a Szöveg adatoszlop szerepel a nyomkövetésben. Annak érdekében, hogy a megfelelő események és oszlopok rögzítve legyenek a Database Engine Tuning Advisor használatához, használja az SQL Server Profilerhez mellékelt előre definiált hangolási sablont.

Ha az SQL Server Profilerrel nyit meg nyomkövetést, a nyomkövetési fájlnak nem kell .trc fájlkiterjesztéssel rendelkeznie, ha a fájlt SQL Server Profiler vagy SQL Trace rendszer tárolt eljárásokkal hozta létre.

Az SQL Server Profiler az SQL Trace-fájlokat .log és az általános SQL-szkriptfájlokat is képes olvasni. Olyan SQL Trace-fájl .log megnyitásakor, amely nem rendelkezik .log fájlkiterjesztéssel, például trace.txt, adja meg a SQLTrace_Log fájlformátumot.

A nyomkövetési elemzéshez konfigurálhatja az SQL Server Profiler dátum- és időmegjelenítési formátumát.

Adatok hibaelhárítása

Az SQL Server Profiler használatával az adatokat csoportosíthatja nyomkövetések vagy nyomkövetési fájlok szerint a időtartam, CPU, olvasások vagy írások adatoszlopok alapján. Például a hibaelhárítás során olyan lekérdezésekkel foglalkozhat, amelyek rosszul teljesítenek, vagy amelyek rendkívül magas logikai olvasási műveleteket végeznek.

További információkat úgy találhat, hogy a nyomkövetési adatokat táblákba menti, és az Transact-SQL-et használja az eseményadatok lekérdezésére. Ha például meg szeretné állapítani, hogy melyik SQL:BatchCompleted események túl sok várakozási időt töltöttek, hajtsa végre a következőt:

SELECT TextData,
       Duration,
       CPU
FROM trace_table_name
WHERE EventClass = 12
-- SQL:BatchCompleted events
      AND CPU < (Duration * 1000);

A kiszolgáló egy esemény időtartamát mikroszekundumban (10^-6 másodperc) és az esemény által használt processzoridőt ezredmásodpercben (10^-3 másodperc) 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 a nyomkövetést fájlba vagy adatbázistáblába menti, a Időtartam oszlopérték mikroszekundumokban lesz megírva. Ezek a mérések Transact-SQL (T-SQL) lekérdezésekhez használhatók.

Objektumnevek megjelenítése nyomkövetések megtekintésekor

Ha az objektumazonosító (objektumazonosító) helyett egy objektum nevét szeretné megjeleníteni, a kiszolgálónév és adatbázis-azonosítót adatoszlopokat, valamint az Objektumnév adatoszlopot kell rögzítenie.

Ha a objektumazonosító adatoszlop szerint szeretne csoportosítani, először a kiszolgálónév és adatbázis-azonosító adatoszlop, majd az objektumazonosító adatoszlop szerint csoportosítsa. Hasonlóképpen, ha az indexazonosító adatoszlop szerint szeretne csoportosítani, akkor először a kiszolgálónév, adatbázis-azonosítóés objektumazonosító adatoszlopok, majd az indexazonosító adatoszlopok szerint kell csoportosítania. Ebben a sorrendben kell csoportosítania, mert az objektum- és indexazonosítók nem egyediek a kiszolgálók és adatbázisok (és az indexazonosítók objektumai között).

Adott események megkeresése egy nyomkövetésben

Az események nyomkövetésben való kereséséhez és csoportosításához kövesse az alábbi lépéseket:

  1. Hozzon létre egy nyomot.

    • A nyomkövetés meghatározásakor rögzítse a eseményosztály, ClientProcessIDés kezdési időpont adatoszlopokat a rögzíteni kívánt egyéb adatoszlopok mellett. További információ: Nyomkövetés létrehozása (SQL Server Profiler).

    • Csoportosítsa a rögzített adatokat az Eseményosztály adatoszlopa szerint, és rögzítse a nyomkövetést egy fájlhoz vagy táblához. A rögzített adatok csoportosításához válassza az Oszlopok rendszerezése lehetőséget a Nyomkövetés tulajdonságai párbeszédpanel Eseménykijelölés lapján. További információ: Nyomkövetésben megjelenített oszlopok rendszerezése (SQL Server Profiler).

    • Indítsa el a nyomkövetést, és állítsa le a megfelelő idő leteltét vagy az események számának rögzítése után.

  2. Keresse meg a céleseményeket.

    • Nyissa meg a nyomkövetési fájlt vagy táblát, és bontsa ki a kívánt eseményosztály csomópontját; például Holtpontlánc. További információ: Nyomkövetési fájl megnyitása (SQL Server Profiler) vagy Nyomkövetési tábla megnyitása (SQL Server Profiler).

    • Keressen végig a nyomkövetési adatokon, amíg meg nem találja azokat az eseményeket, amelyekhez keres (az SQL Server Profiler Szerkesztés menüjének Keresés parancsával megtalálhatja a nyomkövetés értékeit). Figyelje meg a ClientProcessID és kezdési időpont nyomon követhető események adatoszlopainak értékeit.

  3. Az események megjelenítése a kontextusban.

    • A nyomkövetési tulajdonságok megjelenítése és csoportosítása a ClientProcessID adatoszlop szerint az Eseményosztály adatoszlop helyett.

    • Bontsa ki minden megtekinteni kívánt ügyfélfolyamat-azonosító csomópontját. Keressen manuálisan a nyomkövetésben, vagy használja a Keresés lehetőséget, amíg meg nem találja a célesemények korábban feljegyzett kezdési idejét . Az események időrendben jelennek meg az egyes kiválasztott ügyfélfolyamat-azonosítókhoz tartozó többi eseménysel együtt. A nyomkövetésben rögzített Holtpont és Holtpontlánc események például közvetlenül az SQL:BatchStarting események után jelennek meg a kibontott ügyfélfolyamat-azonosítón belül.

Ugyanez a módszer használható a csoportosított események megkeresésére is. Miután megtalálta a keresett eseményeket, csoportosítsa őket ClientProcessID, ApplicationNamevagy egy másik eseményosztály szerint a kapcsolódó tevékenységek időrendi sorrendben való megtekintéséhez.