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.
JDBC-illesztőprogram letöltése
A 13.4-es verziótól kezdve az SQL Serverhez készült Microsoft JDBC-illesztőprogram teljesítménymetrika-keretrendszert biztosít a kritikus illesztőprogram-műveletek időzítésének nyomon követéséhez. Ezzel a keretrendszerrel megfigyelheti és elemezheti a kapcsolat- és utasításvégrehajtási viselkedést, így azonosíthatja az alkalmazás SQL Serverrel való interakcióinak késési szűk keresztmetszeteit.
A metrikák két, egymástól függetlenül vagy együtt használható mechanizmussal érhetők el:
-
Programozott visszahívás – Regisztráljon
PerformanceLogCallback-t, hogy metrikákat fogadjon az alkalmazáskódban. -
Java-naplózás – Előfizetés dedikált
java.util.loggingnaplózókra a metrikák naplózásához a naplókimenetben.
Nyomon követett tevékenységek
A vezérlőprogram két szinten követi nyomon a tevékenységeket: kapcsolat és utasítás szinten.
Kapcsolatszintű tevékenységek
| Activity | Leírás |
|---|---|
CONNECTION |
A kapcsolat létrehozásához szükséges teljes idő, beleértve az összes altevékenységet is. |
PRELOGIN |
A TDS bejelentkezés előtti egyeztetés ideje a kiszolgálóval. |
LOGIN |
A TDS bejelentkezési és hitelesítési kézfogásának ideje. |
TOKEN_ACQUISITION |
Ideje összevont hitelesítési jogkivonatokat beszerezni a Microsoft Entra-hitelesítés használatakor. |
Nyilatkozati szintű tevékenységek
| Activity | Leírás |
|---|---|
STATEMENT_REQUEST_BUILD |
Ügyféloldali idő a TDS-kérés létrehozásához (paraméterkötés, SQL-feldolgozás, csomagépítés). Csak időzítés; nem követi nyomon a kivételeket. |
STATEMENT_FIRST_SERVER_RESPONSE |
A kérés elküldésének ideje az első kiszolgálói válasz fogadásához. Csak időzítés; nem követi nyomon a kivételeket. |
STATEMENT_PREPARE |
A következő időpontra sp_preparevonatkozó prepareMethod=prepare idő: . |
STATEMENT_PREPEXEC |
A kombinált előkészítés és végrehajtás ideje sp_prepexec-on keresztül. |
STATEMENT_EXECUTE |
Az utasítás végrehajtásának ideje (sp_executesql, sp_execute, közvetlen SQL, vagy köteg). |
Teljesítménymetrikák engedélyezése
1. lehetőség: Visszahívás regisztrálása
Regisztráljon egy PerformanceLogCallback-t, hogy programozott módon fogadja a teljesítményadatokat:
SQLServerDriver.registerPerformanceLogCallback(new PerformanceLogCallback() {
@Override
public void publish(PerformanceActivity activity, int connectionId,
long durationMs, Exception exception) {
// Connection-level metrics
System.out.printf("Activity: %s, Connection: %d, Duration: %d ms%n",
activity, connectionId, durationMs);
}
@Override
public void publish(PerformanceActivity activity, int connectionId,
int statementId, long durationMs, Exception exception) {
// Statement-level metrics
System.out.printf("Activity: %s, Connection: %d, Statement: %d, Duration: %d ms%n",
activity, connectionId, statementId, durationMs);
}
});
2. lehetőség: Java-naplózás konfigurálása
Konfigurálja java.util.logging a teljesítménymetrika-naplózókat a FINE szinten.
Egy logging.properties fájlban:
com.microsoft.sqlserver.jdbc.PerformanceMetrics.Connection.level = FINE
com.microsoft.sqlserver.jdbc.PerformanceMetrics.Statement.level = FINE
handlers = java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level = FINE
Vagy programozott módon:
Logger.getLogger("com.microsoft.sqlserver.jdbc.PerformanceMetrics.Connection")
.setLevel(Level.FINE);
Logger.getLogger("com.microsoft.sqlserver.jdbc.PerformanceMetrics.Statement")
.setLevel(Level.FINE);
Metódushatás előkészítése utasítási tevékenységekre
A nyomon követett PreparedStatement tevékenységek a prepareMethod kapcsolati tulajdonságtól függenek. További információ: prepareMethodA kapcsolat tulajdonságainak beállítása.
prepareMethod beállítás |
Első végrehajtás | Második végrehajtás | Harmadik+ végrehajtás |
|---|---|---|---|
prepexec (alapértelmezett) |
STATEMENT_EXECUTE (sp_executesql) |
STATEMENT_PREPEXEC (sp_prepexec) |
STATEMENT_EXECUTE (sp_execute) |
prepare |
STATEMENT_PREPARE + STATEMENT_EXECUTE |
STATEMENT_EXECUTE |
STATEMENT_EXECUTE |
none |
STATEMENT_EXECUTE (közvetlen SQL) |
STATEMENT_EXECUTE (közvetlen SQL) |
STATEMENT_EXECUTE (közvetlen SQL) |
Megjegyzés:
Az alapértelmezett prepexec beállítással az illesztőprogram önálló használatot feltételezve defereli az előkészítést. A második végrehajtás (kombinált előkészítés és végrehajtás) használja sp_prepexec . A harmadik végrehajtástól kezdve a gyorsítótárazott fogópont a sp_execute segítségével újra felhasználható. Az első hívás kényszerítéséhez állítsa sp_prepexec a kapcsolati tulajdonságot enablePrepareOnFirstPreparedStatementCall a következőre: true.
Mintanapló kimenete
Az alábbi kimenet az alapértelmezett PreparedStatement beállítással három egymást követő végrehajtás prepexec során nyomon követett tevékenységeket mutatja be:
ConnectionID:1, StatementID:1 Request build time, duration: 8ms
ConnectionID:1, StatementID:1 First server response, duration: 17ms
ConnectionID:1, StatementID:1 Statement execute, duration: 75ms ← 1st call: sp_executesql
ConnectionID:1, StatementID:1 Request build time, duration: 9ms
ConnectionID:1, StatementID:1 First server response, duration: 0ms
ConnectionID:1, StatementID:1 Statement prepexec, duration: 0ms ← 2nd call: sp_prepexec
ConnectionID:1, StatementID:1 Request build time, duration: 0ms
ConnectionID:1, StatementID:1 First server response, duration: 0ms
ConnectionID:1, StatementID:1 Statement execute, duration: 0ms ← 3rd call: sp_execute
Lásd még
A teljesítmény és a megbízhatóság javítása a JDBC-illesztővelA kapcsolat tulajdonságainak beállítása