Pemblokiran SQL Server dalam database terjadi ketika transaksi menahan kunci pada sumber daya dan mencegah satu atau lebih koneksi beroperasi pada sumber daya yang sama. Sambungan kedua harus menunggu kunci dilepaskan sebelum dapat melanjutkan. Ini dilakukan untuk memastikan komponen isolasi, dari ACID – yang berarti bahwa transaksi bersamaan tidak terlihat satu sama lain sampai transaksi selesai. Pemblokiran di SQL Server dapat merusak kinerja di lingkungan apa pun.
Salah satu tugas yang dilakukan administrator basis data adalah mengidentifikasi kueri yang melakukan pemblokiran, memperbaikinya, dan kemudian melangkah lebih jauh untuk menentukan akar masalahnya. Meneliti akar penyebab, terutama setelah fakta, bisa menjadi tugas yang sangat sulit. Untuk sebagian besar, ini berarti proses rooting yang sangat memakan waktu melalui tampilan manajemen dinamis SQL Server seperti s ys.dm_exec_requests atau menjalankan prosedur sistem seperti sp_who2 untuk mengetahui detail ID proses sistem (SPIDS) yang terlibat dalam blockchain. Spotlight Cloud dapat sangat mengurangi upaya Anda untuk mengidentifikasi peristiwa pemblokiran ini.
Menggunakan Pemantauan Basis Data untuk Mengidentifikasi Blok SQL Server
|
Gambar 1:Dasbor Ikhtisar |
Mulai dari dasbor Ikhtisar, Spotlight Cloud memberikan pandangan yang jelas tentang seluruh lingkungan. Ini menunjukkan metrik termasuk jumlah sesi, proses, penggunaan memori, konsumsi disk, dan waktu tunggu secara sekilas. Lebih penting lagi, ini dengan jelas menunjukkan aktivitas pemblokiran; di tengah Gambar 1, Anda dapat melihat dengan jelas bahwa saat ini ada dua proses yang diblokir.
Untuk DBA, masuk ke detail diperlukan untuk menyelesaikan masalah pemblokiran. Spotlight Cloud memberi kita kemampuan untuk menelusuri lebih banyak detail sesi hanya dengan memilih menu tarik-turun dari Ikhtisar seperti yang ditunjukkan pada Gambar 2.
Gambar 2:Dropdown dari Ikhtisar |
Spotlight Cloud memungkinkan Anda dengan mudah melihat sesi apa yang diblokir dan pernyataan apa yang terlibat. Pada Gambar 3, Anda dapat melihat bahwa SPID 59 &65 keduanya diblokir (ditunjukkan dalam sorotan oranye di sekitar status), yang cocok dengan jumlah yang diblokir. Anda juga akan melihat bahwa Spotlight Cloud terus memberikan detail ringkasan tentang status instans kami saat ini, memungkinkan kami untuk mengawasi penghitung penting sambil menyelami masalah kinerja.
Menggunakan Spotlight Cloud SQL Server Monitoring untuk Mengatasi Masalah Pemblokiran
|
Gambar 3:Dasbor Sesi |
Dasbor Sesi (seperti yang terlihat pada Gambar 3) memberi kami informasi penting yang kami butuhkan untuk menyelesaikan masalah. Di sini Anda dapat menemukan informasi penting seperti pengguna apa yang menjalankan pernyataan, database apa yang terpengaruh dan kapan sesi dinyatakan. Kedalaman detail yang diberikan adalah penghemat waktu nyata bagi DBA yang membutuhkan jawaban cepat atas apa yang menyebabkan pemblokiran, sehingga mereka dapat menyelesaikannya. Anda tidak hanya melihat bahwa Anda memiliki dua transisi yang diblokir, tetapi kami juga dapat melihat bahwa keduanya adalah pernyataan UPDATE pada tabel yang sama yang dijalankan oleh akun Layanan Jaringan terhadap database Penjualan. Pernyataan yang sebenarnya ditampilkan di sudut kanan bawah. Terakhir, kita dapat melihat SPID aktif dan SPID yang diblokir.
Menuju sudut kanan atas Gambar 3, dalam teks biru, Spotlight Cloud memberi tahu Anda ke mana harus pergi selanjutnya dalam penyelidikan Anda. Produk di dalam setiap lapisan memberikan jalur yang jelas tentang cara menyelam lebih dalam. Mengeklik tautan Selidiki di Penganalisis Beban Kerja memungkinkan Anda melihat apa yang memanggil SPID 61 yang merupakan pemblokir prospek untuk SPID 65.
|
Gambar 4:Penganalisis Beban Kerja (di sinilah kami ingin memperluas Sesi yang Diblokir) |
Penganalisis Beban Kerja memberi Anda dimensi perincian yang memungkinkan Anda mengarahkan ke sumber daya tertentu seperti pemblokiran. Pada Gambar 4, Anda dapat melihat bagaimana kami menyelam lebih jauh dengan mengklik dua panah expander di sudut bagian Sesi yang Diblokir.
Gambar 5:Detail Sesi yang Diblokir |
Sekarang setelah Anda mengetahui database yang terlibat, Anda dapat menggali lebih jauh. Di navigasi sebelah kiri, Anda dapat menelusuri database penjualan. Di sini Anda dapat melihat SPID 61 dan 64 termasuk status saat ini. Kedua ID proses sistem ini memblokir dan perhatikan bahwa SPID 59 sekarang juga diblokir oleh SPID 64. Tampilan ini membantu memastikan bahwa Anda dapat tetap berada di depan pemblokiran saat Anda terus menyelidiki.
Di bagian bawah Gambar 5, Anda dapat melihat di Pemetaan Sesi yang Diblokir yang memberi tahu Anda detail SPID 61, yang dalam hal ini adalah pemblokir utama kami. Pelakunya sebenarnya adalah bagian dari Pekerjaan Agen SQL yang sedang berjalan, yang masuk akal berdasarkan pengguna yang kami temukan menjalankan pernyataan tersebut. Jika Anda ingat itu adalah akun layanan jaringan, NT AUTHORITY\NETWORK SERVICE. Pada contoh ini, Layanan Agen SQL berjalan di bawah kumpulan kredensial khusus ini.
Langkah selanjutnya adalah mencari tahu pekerjaan apa yang sedang berjalan dan melihat apakah Anda dapat menghentikan pekerjaan untuk menghentikan pemblokiran. Biasanya Anda akan pergi ke SQL Server Management Studio untuk meninjau SQL Agent dan melihat pekerjaan, tetapi Spotlight memudahkan Anda dan memberi Anda pandangan menyeluruh tentang pekerjaan juga. Anda dapat menemukannya dengan mengeklik panah di samping kata “Penganalisis Beban Kerja” di bagian atas seperti yang Anda lakukan saat menavigasi dari Ikhtisar ke Sesi.
Gambar 6:Drop down dari Workload Analyzer |
Mencegah Pemblokiran SQL Server di Masa Mendatang
Meneliti pemblokiran membutuhkan waktu, dan terkadang, saat kami sedang meneliti masalah tertentu, pemblokiran akan teratasi dengan sendirinya. Dalam hal ini, pekerjaan yang sedang berjalan selesai dan pembaruan yang diblokir dapat dijalankan. Meskipun masalah langsung sudah tidak ada lagi, Anda masih perlu terus menggali akar masalahnya untuk memastikan Anda dapat mencegahnya di masa mendatang.
Karena Anda telah mengidentifikasi SPID 61 sebagai pekerjaan yang sedang berjalan dan karena waktu telah berlalu, Anda sekarang perlu melihat riwayat. Untuk meninjau riwayat, cukup ubah rentang tanggal yang ditampilkan ke rentang waktu pemblokiran aktif. Pada Gambar 7, Anda dapat melihat rentang tanggal di sudut kanan Anda dapat mengklik drop-down dan menyesuaikan waktu yang sesuai. Selanjutnya, Anda ingin mencari SPID 61 menggunakan fungsi pencarian. Setiap lingkungan berbeda sehingga apa yang Anda lakukan dengan informasi ini sekarang akan bergantung. Apakah Anda menyesuaikan waktu pekerjaan, membuat beberapa perubahan pada indeks, kode, atau konfigurasi akan sepenuhnya terserah Anda.
Gambar 7 Pekerjaan |
Gambar 8:Blok berjalan lama |
Beberapa blok datang dan pergi begitu cepat sehingga tidak berpengaruh signifikan pada kinerja. Ketika mereka bertahan lebih lama, kita perlu mengetahui tentang puasa ini. Spotlight Cloud memiliki alarm "kunci yang berjalan lama" yang memberi tahu pengguna tentang blok yang tidak akan hilang.
Gambar 9:Dimensi objek yang diblokir |
Pemblokiran adalah gejala dari beberapa masalah yang lebih besar dan seringkali membutuhkan perspektif yang berbeda untuk sampai pada akar masalahnya. Dimensi objek yang diblokir di penganalisis beban kerja Spotlight Cloud memungkinkan pengguna dengan cepat memastikan objek yang menghasilkan aktivitas pemblokiran paling banyak untuk instance tertentu.
Mengidentifikasi pemblokiran dan menggali penyebabnya adalah bagian tersulit bagi DBA. Spotlight Cloud Professional memungkinkan kami mendapatkan informasi ini dengan cepat dan efisien. Saat waktu menyelesaikan masalah aktif, Spotlight Cloud memungkinkan kami untuk terus menyelidiki untuk mendapatkan akar masalah dan pada akhirnya memberi kami informasi yang kami butuhkan untuk membuat keputusan yang tepat tentang cara mencegah kejadian di masa mendatang.
Ingin melihat Spotlight Cloud beraksi? Mulai uji coba gratis 30 hari Anda hari ini.