Bölüm

SQL Server Komut Zaman Aşımı - Uygulama Zaman Aşımı - Genişletilmiş Olay Dikkati

SQL Server'dan verilere erişmek için ODBC veya SqlClient kullandığınızda, sunucudan belirli bir süre içinde yanıt alınmazsa (varsayılan olarak 30 saniye) sorgu varsayılan olarak iptal edilir. ODBC veya SqlClient, sorguyu SQL Server'a gönderdikten sonra bir zamanlayıcı başlatır ve 30 saniye içinde sunucudan sonuç alınmazsa sorgu iptal edilir ve uygulamaya bir zaman aşımı hata iletisi gönderilir. 30 saniye içinde bir ağ paketinin (sorgu sonuçlarını içeren) alınması ve ek ağ paketleri (ilk ağ paketine sığmayan ek satırlar) bekliyorsak, bu 30 saniyelik süre içinde bir sonraki ağ paketi alınmazsa zamanlayıcı yeniden başlatılır.

SQL Komutu zaman aşımının yaygın nedenleri, uzun süre yürütülen veya dizinleri veya kilit bekleme sorunlarını kaçıran en uygun olmayan şema veya verimsiz sorgulardır. SQL Komutu zaman aşımı ayarlarını artırmak yerine sorguları ayarlamak önemlidir.

Videoda, ağ paketi boyutunun azaltılmasının zaman aşımını nerede ortadan kaldırdığı gösterilmiştir. Bu gösterim, ağ paketlerinin zamanlayıcıyı sıfırlamaya nasıl dahil olduğunu anlamak ve zaman aşımını daha iyi anlamaktır. Ağ paketi boyutunu değiştirmek zaman aşımını önlemek, en uygun olmayan şemayı veya verimsiz sorguları ayarlamak veya dizin eklemek ya da kilit beklemelerini önlemek için uygun bir çözüm değildir.

SQL Komut zaman aşımı hatasına yol açan komutu tanımlamak için Genişletilmiş Olaylar'ı kullanabilir ve 'sqlserver.attention' olayını izleyebilirsiniz. Videoda kullanılan genişletilmiş olay betiğine www.sqlvideo.com/xevents adresinden ulaşabilirsiniz.

SQL Server Management Studio'da SQL Komutu zaman aşımı, bağlantı iletişim kutusundaki 'Seçenekler' kullanılarak değiştirilebilir. Varsayılan olarak bu değer '0' olarak ayarlanmıştır ve bu da zaman aşımı olmadığı anlamına gelir. Sorgu veya saklı yordam yürütülürken , 'İptal' düğmesine (kırmızı kare) tıklarsanız, aynı dikkat SQL Server'a gönderilir (SQL Komut Zaman Aşımı gibi). Bu da Genişletilmiş Olaylar'da sırayla 'sqlserver.attention' olayı oluşturur.

Aşağıdaki videoda SQL Komutu zaman aşımı örneğini görebilirsiniz. SQLTest Aracı, uygulamalı laboratuvarların sizin için simülasyonunu oluşturur, kayıt gerekmez. Videoyu izlerken çevrimiçi uygulamalı örneği uygulayabilirsiniz.

Geri bildirimde bulunmak ister misiniz? Burada bir sorun gönderin.