Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
JDBC sürücüsünü indirin
13.4 sürümünden başlayarak SQL Server için Microsoft JDBC Sürücüsü, kritik sürücü işlemlerinin zamanlamasını izlemeye yönelik bir performans ölçümleri çerçevesi sağlar. Bağlantı ve deyim yürütme davranışını gözlemlemek ve analiz etmek için bu çerçeveyi kullanabilir ve uygulamanızın SQL Server ile etkileşimlerindeki gecikme sorunlarını belirlemenize yardımcı olabilirsiniz.
Ölçümler, bağımsız olarak veya birlikte kullanılabilecek iki mekanizmayla kullanılabilir:
-
Programlı geri çağırma - Uygulama kodunuzdaki ölçümleri almak için bir
PerformanceLogCallbackkaydedin. -
Java günlüğü - Günlük çıkışındaki ölçümleri yakalamak için ayrılmış
java.util.logginggünlükçülere abone olun.
İzlenen etkinlikler
Sürücü, etkinlikleri iki düzeyde izler: bağlantı ve komut.
Bağlantı düzeyi etkinlikleri
| Activity | Açıklama |
|---|---|
CONNECTION |
Tüm alt etkinlikler dahil olmak üzere bağlantı kurulması için toplam süre. |
PRELOGIN |
Sunucuyla TDS ön oturum açma anlaşması zamanı. |
LOGIN |
TDS oturum açma ve kimlik doğrulama el sıkışma zamanı. |
TOKEN_ACQUISITION |
Microsoft Entra kimlik doğrulamasını kullanırken federe kimlik doğrulama belirteçlerini alma süresi. |
İfade düzeyinde etkinlikler
| Activity | Açıklama |
|---|---|
STATEMENT_REQUEST_BUILD |
TDS isteğini derlemek için istemci tarafı süresi (parametre bağlama, SQL işleme, paket oluşturma). Yalnızca zamanlama; özel durumları izlemez. |
STATEMENT_FIRST_SERVER_RESPONSE |
İsteği göndermeden ilk sunucu yanıtını almaya kadar geçen süre. Yalnızca zamanlama; özel durumları izlemez. |
STATEMENT_PREPARE |
sp_prepare zamanı prepareMethod=prepare olduğunda. |
STATEMENT_PREPEXEC |
sp_prepexec aracılığıyla hazırlığı ve yürütmeyi birleştirme zamanı. |
STATEMENT_EXECUTE |
Deyim yürütme süresi (sp_executesql, sp_execute, doğrudan SQL ya da toplu iş). |
Performans ölçümlerini etkinleştirme
1. Seçenek: Geri çağırma kaydı
Program aracılığıyla performans verilerini almak için bir PerformanceLogCallback kaydedin:
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);
}
});
Seçenek 2: Java günlüğünü yapılandırma
Performans metrik günlükçülerini java.util.logging düzeyinde FINE için yapılandırın.
Bir logging.properties dosyasında:
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
Veya program aracılığıyla:
Logger.getLogger("com.microsoft.sqlserver.jdbc.PerformanceMetrics.Connection")
.setLevel(Level.FINE);
Logger.getLogger("com.microsoft.sqlserver.jdbc.PerformanceMetrics.Statement")
.setLevel(Level.FINE);
Beyan ifadeleri üzerinde yöntemin etkisinin hazırlanması
PreparedStatement için izlenen etkinlikler, prepareMethod bağlantı özelliğine bağlıdır. hakkında prepareMethoddaha fazla bilgi için bkz . Bağlantı özelliklerini ayarlama.
prepareMethod ayar |
İlk çalıştırma | İkinci çalıştırma | Üçüncü işlem |
|---|---|---|---|
prepexec (varsayılan) |
STATEMENT_EXECUTE (sp_executesql) |
STATEMENT_PREPEXEC (sp_prepexec) |
STATEMENT_EXECUTE (sp_execute) |
prepare |
STATEMENT_PREPARE + STATEMENT_EXECUTE |
STATEMENT_EXECUTE |
STATEMENT_EXECUTE |
none |
STATEMENT_EXECUTE (doğrudan SQL) |
STATEMENT_EXECUTE (doğrudan veri tabanı sorgulaması - SQL) |
STATEMENT_EXECUTE (doğrudan SQL) |
Uyarı
Varsayılan prepexec ayar ile sürücü, tek kullanım varsayılarak hazırlığı önler. İkinci çalıştırma, sp_prepexec (birleştirilmiş hazırlama ve yürütme) kullanır. Üçüncü yürütmeden itibaren, sp_execute aracılığıyla önbelleğe alınan tanıtıcı yeniden kullanılır. İlk çağrıyı zorlamak sp_prepexec için bağlantı özelliğini enablePrepareOnFirstPreparedStatementCall olarak trueayarlayın.
Örnek günlük çıktısı
Aşağıdaki çıktıda, varsayılan PreparedStatement ayara sahip bir prepexec öğesinin ardışık üç yürütmesinde izlenen etkinlikler gösterilir:
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
Ayrıca bakınız
JDBC sürücüsüyle performansı ve güvenilirliği artırmaBağlantı özelliklerini ayarlama