Pertanyaan tentang toko versi tempdb


9

Kami menemukan kesalahan hari ini:

Kesalahan: 3967, Tingkat Permasalahan: 17

dan dari apa yang saya tahu itu pada dasarnya 'toko versi lengkap'. Ini menimbulkan beberapa pertanyaan yang sulit saya jawab, seperti di toko saya, kami belum pernah mengalami kesalahan ini sebelumnya:

  • Jika ada ukuran maksimum yang telah ditetapkan (berdasarkan ukuran tempdb total atau sebaliknya), apakah ini dinamis?

  • Apakah ada pengaturan yang akan membuatnya dinamis jika tidak?

  • Bisakah kita mengatur peringatan berdasarkan ini? (mis. DMV yang akan digunakan untuk melacak ukuran, dll.)

Jawaban:


7

Severity 17 menunjukkan SQL Server kehabisan sumber daya yang diperlukan. Anda biasanya melihat ini ketika database kehabisan ruang. Dalam hal ini, sepertinya tempdb sedang digunakan untuk baris versi snapshot isolasi yang sudah dibaca untuk permintaan yang diperlukan untuk menumpahkan ke tempdb.

Ini bisa sangat umum jika tempdb memiliki ukuran maksimum yang terbatas dan kueri tertulis yang buruk dicoba bahwa, misalnya, melakukan join silang yang sangat besar.

Anda dapat menggunakan kueri ini untuk melihat ukuran toko versi saat ini di tempdb:

SELECT *
FROM sys.dm_os_performance_counters dopc
WHERE dopc.counter_name LIKE 'Version %';

Technet memiliki artikel menarik tentang penggunaan versi store di https://technet.microsoft.com/en-us/library/cc966545.aspx#EDAA

Halaman MSDN ini menyebutkan kesalahan 3967:

Ketika tempdb kehabisan ruang, Mesin Database memaksa toko versi menyusut. Selama proses penyusutan, transaksi berjalan terpanjang yang belum menghasilkan versi baris ditandai sebagai korban. Pesan 3967 dihasilkan dalam log kesalahan untuk setiap transaksi korban. Jika suatu transaksi ditandai sebagai korban, itu tidak lagi dapat membaca versi baris di versi store. Ketika mencoba membaca versi baris, pesan 3966 dihasilkan dan transaksi dibatalkan. Jika proses penyusutan berhasil, ruang menjadi tersedia di tempdb.

Tak satu pun dari halaman yang saya tautkan di atas berisi saran eksplisit tentang ukuran maksimum dari versi store di tempdb, yang membuat saya percaya bahwa satu-satunya batasan adalah ukuran maksimum yang dikonfigurasikan dari tempdb itu sendiri, dikurangi ruang apa pun yang digunakan dalam tempdb untuk benda lainnya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.