Episode
Batas Waktu Perintah SQL Server - Batas Waktu Aplikasi - Perhatian Peristiwa diperpanjang
Ketika Anda menggunakan ODBC atau SqlClient untuk mengakses data dari SQL Server, secara default kueri akan dibatalkan jika tidak ada respons dari server dalam jangka waktu tertentu (30 detik secara default). ODBC atau SqlClient akan memulai timer setelah mengirim kueri ke SQL Server dan jika tidak ada hasil dari server dalam waktu 30 detik, kueri akan dibatalkan dan pesan kesalahan waktu habis akan dikirim ke aplikasi. Jika paket jaringan (berisi hasil kueri) diterima dalam 30 detik, dan jika kita mengharapkan paket jaringan tambahan (baris tambahan yang tidak dapat cocok dalam paket jaringan pertama), maka timer dimulai ulang, jika paket jaringan berikutnya tidak diterima dalam periode 30 detik ini, kueri akan dibatalkan.
Alasan umum untuk batas waktu Perintah SQL adalah skema non-optimal atau kueri yang tidak efisien yang dijalankan untuk jangka waktu yang lama atau yang melewatkan indeks atau mengunci masalah tunggu. Penting untuk menyetel kueri daripada meningkatkan pengaturan batas waktu Perintah SQL.
Dalam video, contoh ditunjukkan di mana penurunan ukuran paket jaringan menghilangkan batas waktu, demonstrasi ini adalah untuk memahami bagaimana paket jaringan terlibat dalam mengatur ulang timer dan untuk mengembangkan pemahaman yang lebih baik tentang batas waktu. Mengubah ukuran paket jaringan bukanlah solusi untuk menghindari batas waktu, menyetel skema yang tidak optimal atau kueri yang tidak efisien atau menambahkan indeks atau menghindari tunggu kunci adalah solusi yang tepat.
Untuk mengidentifikasi perintah yang mengarah ke kesalahan batas waktu Perintah SQL, Anda dapat menggunakan Extended Events dan memantau peristiwa 'sqlserver.attention'. Skrip peristiwa yang diperluas yang digunakan dalam video tersedia di www.sqlvideo.com/xevents.
Di SQL Server Management Studio, batas waktu Perintah SQL dapat diubah menggunakan 'Opsi' dalam dialog koneksi. Secara default, ini diatur ke '0', yang berarti tidak ada batas waktu. Saat kueri atau prosedur tersimpan dijalankan, jika Anda mengklik tombol 'Batal' (persegi merah), perhatian yang sama akan dikirim ke SQL Server (seperti Batas Waktu Perintah SQL). Dan ini pada gilirannya akan menghasilkan peristiwa 'sqlserver.attention' di Extended Events.
Dalam video di bawah ini Anda dapat melihat contoh batas waktu Perintah SQL. SQLTest Tool mensimulasikan lab langsung untuk Anda, tidak perlu pendaftaran. Anda dapat mempraktikkan contoh langsung online saat menonton Video.
Ketika Anda menggunakan ODBC atau SqlClient untuk mengakses data dari SQL Server, secara default kueri akan dibatalkan jika tidak ada respons dari server dalam jangka waktu tertentu (30 detik secara default). ODBC atau SqlClient akan memulai timer setelah mengirim kueri ke SQL Server dan jika tidak ada hasil dari server dalam waktu 30 detik, kueri akan dibatalkan dan pesan kesalahan waktu habis akan dikirim ke aplikasi. Jika paket jaringan (berisi hasil kueri) diterima dalam 30 detik, dan jika kita mengharapkan paket jaringan tambahan (baris tambahan yang tidak dapat cocok dalam paket jaringan pertama), maka timer dimulai ulang, jika paket jaringan berikutnya tidak diterima dalam periode 30 detik ini, kueri akan dibatalkan.
Alasan umum untuk batas waktu Perintah SQL adalah skema non-optimal atau kueri yang tidak efisien yang dijalankan untuk jangka waktu yang lama atau yang melewatkan indeks atau mengunci masalah tunggu. Penting untuk menyetel kueri daripada meningkatkan pengaturan batas waktu Perintah SQL.
Dalam video, contoh ditunjukkan di mana penurunan ukuran paket jaringan menghilangkan batas waktu, demonstrasi ini adalah untuk memahami bagaimana paket jaringan terlibat dalam mengatur ulang timer dan untuk mengembangkan pemahaman yang lebih baik tentang batas waktu. Mengubah ukuran paket jaringan bukanlah solusi untuk menghindari batas waktu, menyetel skema yang tidak optimal atau kueri yang tidak efisien atau menambahkan indeks atau menghindari tunggu kunci adalah solusi yang tepat.
Untuk mengidentifikasi perintah yang mengarah ke kesalahan batas waktu Perintah SQL, Anda dapat menggunakan Extended Events dan memantau peristiwa 'sqlserver.attention'. Skrip peristiwa yang diperluas yang digunakan dalam video tersedia di www.sqlvideo.com/xevents.
Di SQL Server Management Studio, batas waktu Perintah SQL dapat diubah menggunakan 'Opsi' dalam dialog koneksi. Secara default, ini diatur ke '0', yang berarti tidak ada batas waktu. Saat kueri atau prosedur tersimpan dijalankan, jika Anda mengklik tombol 'Batal' (persegi merah), perhatian yang sama akan dikirim ke SQL Server (seperti Batas Waktu Perintah SQL). Dan ini pada gilirannya akan menghasilkan peristiwa 'sqlserver.attention' di Extended Events.
Dalam video di bawah ini Anda dapat melihat contoh batas waktu Perintah SQL. SQLTest Tool mensimulasikan lab langsung untuk Anda, tidak perlu pendaftaran. Anda dapat mempraktikkan contoh langsung online saat menonton Video.
Memiliki umpan balik? Kirimkan masalah di sini.