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, belirli bir süre içinde sunucudan yanıt alınmazsa (varsayılan olarak 30 saniye) sorgu varsayılan olarak iptal edilir. ODBC veya SqlClient, sorguyu SQL Server'ye 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ı durumunda ve ek ağ paketleri (ilk ağ paketine sığamayan ek satırlar) bekliyorsak, sonraki ağ paketi bu 30 saniye içinde alınmazsa, sorgu iptal edilir.

SQL Komut 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 Komut zaman aşımı ayarlarını artırmak yerine sorguları ayarlamak önemlidir.

Videoda ağ paketi boyutunun azaltılmasının zaman aşımını ortadan kaldırdığı bir örnek gösterilmiştir. Bu tanıtım, 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 ya da 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 SQL Komut 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 (komut zaman aşımı SQL gibi) gönderilir. Bu işlem de Genişletilmiş Olaylar'da 'sqlserver.attention' olayı oluşturur.

Aşağıdaki videoda SQL Komut zaman aşımı örneğini görebilirsiniz. SQLTest Aracı, uygulamalı laboratuvarları sizin için simüle eder, kayıt gerekmez. Videoyu izlerken çevrimiçi uygulamalı örnek üzerinde alıştırma yapabilirsiniz.