Saya memiliki banyak kebuntuan yang terjadi di sistem saya.
Saya ingin menggunakan Snapshot Isolasi untuk memperbaikinya, tetapi DBA saya memiliki cadangan tentang hal itu.
Salah satu kekhawatirannya adalah bahwa Snapshot Isolasi memperlambat menulis. Ini karena harus menulis ke cache dan kemudian ke TempDb (versi baris) dan kemudian dapat kembali ke pemanggil.
Tulisan "normal" hanya dapat menulis ke cache dan kemudian dilakukan.
Apakah ini cara kerja pembuatan baris? Atau lebih kompleks dari itu? Apakah itu entah bagaimana melakukan ini secara paralel?
Atau apakah menulis lebih lambat dengan Isolasi Snapshot?
sql-server
sql-server-2008
sql-server-2008-r2
snapshot
isolation-level
Gunung berapi
sumber
sumber
Jawaban:
Tidak, ini salah. Entah bagaimana itu menyiratkan bahwa menulis di hadapan versi memiliki latensi yang lebih tinggi karena setiap tulisan harus menyentuh disk (untuk tempdb) yang tidak benar. Tulis ke tempdb juga merupakan tulis ke 'cache'. Satu-satunya 'menunggu' terjadi pada waktu KOMIT ketika log harus dikeraskan. Memang benar bahwa dengan memversi baik log DB dan tempdb harus mengeras, tetapi ini tidak selalu berarti latensi yang lebih tinggi (IO harus paralel pada jalur penyimpanan yang berbeda, tempdb disimpan pada drive terpisah dari LDF yang sering digunakan, Baik?). Untuk penjelasan lengkapnya, baca Cara Kerjanya: Presentasi I / O SQL Server Bob Dorr Saya sangat berharap DBA Anda memahami ini lebih baik daripada yang Anda sampaikan di sini.
Seperti yang saya sebutkan di posting Anda yang lain: snapshot tidak memiliki biaya untuk INSERTS dan biaya untuk pembaruan dan penghapusan dapat dengan mudah dikurangi. Row Versioning Resource Usage menjelaskan trade off. Pada saat ini Anda mungkin harus menguji dengan beban kerja yang realistis, yang merupakan satu-satunya cara untuk menilai dampak yang akan Anda alami.
sumber
sys.dm_db_file_space_usage
di server produksi Anda. Jikaversion_store_reserved_page_count
bukan nol Anda sudah menggunakan versi toko .Saya percaya ada masalah lain dalam aplikasi jika Anda mendapatkan kebuntuan. Isolasi snapshot biasanya membantu mengurangi kunci tunggu tetapi akar deadlock biasanya metode akses yang berbeda dalam aplikasi yang harus dicegah dengan mengikuti pola yang konsisten. Diskusi tentang kebuntuan itu rumit dan ada banyak sumber daya yang didedikasikan untuk mereka.
DBA Anda berhak memiliki kekhawatiran tentang mengubah level isolasi menjadi snapshot karena meningkatkan beban pada tempDB. Saya sarankan pergi ke snapshot isolasi secara umum, tapi saya pikir itu hanya satu bagian dari mengatasi kebuntuan Anda. Anda mungkin berakhir dengan tulisan kotor, di mana satu transaksi memperbarui baris A lalu B, dan transaksi lainnya memperbarui baris B lalu A.
sumber