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.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analytics Platform System (PDW)
Important
SQL Server Native Client (SNAC) ile birlikte gönderilmez:
- SQL Server 2022 (16.x) ve sonraki sürümleri
- SQL Server Management Studio 19 ve sonraki sürümleri
YENI uygulama geliştirme için SQL Server Yerel İstemcisi (SQLNCLI veya SQLNCLI11) ve SQL Server için eski Microsoft OLE DB Sağlayıcısı (SQLOLEDB) önerilmez.
Yeni projeler için aşağıdaki sürücülerden birini kullanın:
SQL Server Veritabanı Altyapısı'nın (sürüm 2012 ile 2019 arasında) bir bileşeni olarak gelen SQLNCLI için, Destek Yaşam Döngüsü özel durumukonusuna bakın.
SQL Server Native Client ODBC sürücüsü, iki tür performans verisini profilleyebilir:
Uzun süredir devam eden sorgular.
Sürücü, belirli bir süre içinde sunucudan yanıt alamayan herhangi bir sorguyu log dosyasına yazabilir. Uygulama programcıları veya veritabanı yöneticileri daha sonra her kayıtlı SQL ifadesini araştırarak performansını nasıl geliştirebileceklerini belirleyebilirler.
Sürücü performans verileri.
Sürücü, performans istatistiklerini kaydedebilir ve bunları ya bir dosyaya yazabilir ya da SQLPERF adlı sürücüye özgü bir veri yapısı aracılığıyla uygulamaya erişime açabilir. Performans istatistiklerini içeren dosya, Microsoft Excel gibi sekmelerle belirlenmiş dosyaları destekleyen herhangi bir tablo ile kolayca analiz edilebilen sekme-sınırlı bir dosyadır.
Her iki profilleme türü de şu şekilde etkinleştirilebilir:
Logingi belirten bir veri kaynağına bağlanmak.
Profillemeyi kontrol eden sürücüye özgü öznitelikleri ayarlamak için SQLSetConnectAttr çağırılması.
Her uygulama süreci, SQL Server Native Client ODBC sürücüsünün kendi kopyasına sahip olur ve profilleme, sürücü kopyası ile uygulama sürecinin birleşimine göre küreseldir. Uygulamada herhangi bir şey profilleme açıldığında, profilleme o uygulamadan sürücüde aktif olan tüm bağlantıların bilgilerini kaydeder. Özellikle profilleme gerektirmeyen bağlantılar bile dahil ediliyor.
Sürücü profilleme logunu (performans verileri veya uzun süreli sorgu günlüğü) açtıktan sonra, sürücü ODBC Sürücü Yöneticisi tarafından yüklenene kadar günlüğü kapatmaz; bir uygulama, sürücüde açtığı tüm ortam işlemlerini serbest bıraktığında. Uygulama yeni bir ortam adresi açarsa, sürücünün yeni bir kopyası yüklenir. Uygulama ya aynı log dosyasını belirten bir veri kaynağına bağlanır ya da sürücüye özgü öznitelikleri aynı dosyaya loglar olarak ayarlarsa, sürücü eski logun üzerine yazar.
Bir uygulama bir log dosyasına profil vermeye başlar ve ikinci bir uygulama aynı log dosyasına profil vermeye çalışırsa, ikinci uygulama herhangi bir profilleme verisini kaydedemez. İkinci uygulama sürücüsünü kaldırdıktan sonra profil oluşturmaya başlarsa, ikinci uygulama ilk uygulamanın log dosyasını üzerine yazar.
Bir uygulama, profilleme etkin olan bir veri kaynağına bağlanırsa, sürücü SQLSetConnectOption çağrısı yaparak loglamaya başladığında sürücü SQL_ERROR döner. SQLGetDiagRec çağrısı ardından aşağıdaki sonuçları verir:
SQLState: 01000, pfNative = 0
ErrorMsg: [Microsoft][SQL Server Native Client]
An error has occurred during the attempt to access
the log file, logging disabled.
Bir ortam kolu kapalıyken sürücü performans verisi toplamayı durdurur. Bir SQL Server Native Client uygulamasının birden fazla bağlantısı varsa ve her biri kendi ortam tutamacına sahipse, ilgili ortam tutamaçları kapandığında sürücü performans verisini toplamayı durdurur.
Sürücünün performans verileri ya SQLPERF veri yapısında saklanabilir ya da sekmelerle belirlenmiş bir dosyaya kaydedilebilir. Veriler aşağıdaki istatistik kategorilerini içerir:
Uygulama profili
Bağlantı
Network
Time
Aşağıdaki tabloda, SQLPERF veri yapısındaki alanların açıklamaları, performans günlüğü dosyasında kaydedilen istatistikler için de geçerlidir.
Uygulama Profili İstatistikleri
| SQLPERF alanı | Description |
|---|---|
| Zamanlayıcı Çözüm | Sunucunun saat süresinin minimum çözünürlüğü milisaniyelerde. Bu genellikle 0 (sıfır) olarak bildirilir ve yalnızca bildirilen sayı büyükse dikkate alınmalıdır. Sunucu saatinin minimum çözünürlüğü, bazı zamanlayıcı tabanlı istatistikler için muhtemel aralıktan daha büyükse, bu istatistikler şişirilebilir. |
| SQLidu | SQL_PERF_START'den sonra , INSERTDELETE, veya UPDATE ifadelerin sayısı. |
| SQLiduRows | SQL_PERF_START'den sonra , INSERTDELETE, veya UPDATE ifadelerin sayısı. |
| SQLSelects | SQL_PERF_START sonra işlenen SELECT ifadesi sayısı. |
| SQLSelectRows | SQL_PERF_START sonrası seçilen sıra sayısı. |
| Transactions | SQL_PERF_START sonrası kullanıcı işlemlerinin sayısı, geri dönüşler dahil. Bir ODBC uygulaması SQL_AUTOCOMMIT_ON ile çalışırken, her komut bir işlem olarak kabul edilir. |
| SQLPrepares | SQL_PERF_START'dan sonra SQLPrepare Fonksiyon çağrısı sayısı. |
| ExecDirects | SQL_PERF_START sonrası SQLExecDirect çağrı sayısı. |
| SQLExecutes | SQL_PERF_START'den sonra gelen SQLExecute çağrı sayısı. |
| CursorOpens | Sürücünün SQL_PERF_START sonra sunucu imlecini açtığı sayısı. |
| CursorSize | SQL_PERF_START'dan sonra imleçler tarafından açılan sonuç kümelerindeki satır sayısı. |
| CursorUsed | SQL_PERF_START sonra sürücüden alınan satır sayısı. |
| PercentCursorUsed | Eşittir CursorUsed/CursorSize. Örneğin, bir uygulama sürücünün "SELECT COUNT(*) FROM Authors" (SELECT COUNT(*) komutunu başlatmasına neden olursa, SELECT ifadesi için 23 satır sonuç setinde olur. Uygulama bu satırlardan sadece üçünü getirirse, CursorUsed/CursorSize 3/23 olur, yani PercentCursorUsed 13.043478 olur. |
| AvgFetchTime | Eşittir SQLFetchTime/SQLFetchCount. |
| AvgCursorSize | Eşit CursorSize/CursorOpens. |
| AvgCursorUsed | Eşit CursorUsed/CursorOpens. |
| SQLFetchTime | Sunucu imlecine karşı fetch'lerin tamamlanması gereken toplam süre. |
| SQLFetchCount | SQL_PERF_START sonra sunucu imlecine karşı yapılan getirme sayısı. |
| CurrentStmtCount | Sürücüde açık olan tüm bağlantılarda şu anda açık olan ifade tutamaçlarının sayısı. |
| MaxOpenStmt | SQL_PERF_START sonra eşzamanlı açılan maksimum ifade adresi sayısı. |
| SumOpenStmt | SQL_PERF_START sonra açılan ifade adreslerinin sayısı. |
| Bağlantı İstatistikleri: | |
| CurrentConnectionCount | Uygulamanın sunucuya açık olan mevcut aktif bağlantı adresi sayısı. |
| MaxConnectionsOpens | SQL_PERF_START sonra açılan maksimum eşzamanlı bağlantı tutamaçları. |
| SumConnectionsOpens | SQL_PERF_START sonra açılan bağlantı kollarının sayısının toplamı. |
| SumConnectionTime | SQL_PERF_START sonra tüm bağlantıların açıldığı sürenin toplamı. Örneğin, bir uygulama 10 bağlantı açıp her bağlantıyı 5 saniye sürdürseyse, SumConnectionTime 50 saniye olurdu. |
| AvgTimeOpened | Eşittir SumConnectionsOpened/SumConnectionTime. |
| Ağ İstatistikleri: | |
| ServerRndTrips | Sürücünün sunucuya komut gönderip cevap aldığı sayısı. |
| BuffersSent | SQL_PERF_START sonra sürücü tarafından SQL Server'ye gönderilen Tablolu Veri Akışı (TDS) paket sayısı. Büyük komutlar birden fazla tampon alabilir, yani sunucuya büyük bir komut gönderilir ve altı paket doldurursa, ServerRndTrips bir, BuffersSent ise altı paket artar. |
| BuffersRec | Uygulama sürücüyü kullanmaya başladıktan sonra sürücünün SQL Server'dan aldığı TDS paket sayısı. |
| Bayt Sayısı | Uygulama sürücüyü kullanmaya başladıktan sonra TDS paketlerinde SQL Server'a gönderilen bayt veri sayısı. |
| BytesRec | Uygulama sürücüyü kullanmaya başladıktan sonra sürücünün SQL Server'dan aldığı TDS paketlerindeki bayt veri sayısı. |
Zaman İstatistikleri
| SQLPERF Alanı | Description |
|---|---|
| msExecutionTime | Sürücünün SQL_PERF_START sonra işlem için harcadığı kümülatif süre, sunucudan yanıt bekleme süresi dahil. |
| msNetworkServerTime | Sürücünün sunucudan yanıt beklemek için harcadığı toplam süre. |