Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Mengapa menggunakan tingkat isolasi READ UNCOMMITTED?

Tingkat isolasi ini memungkinkan pembacaan kotor. Satu transaksi mungkin melihat perubahan tanpa komitmen yang dibuat oleh beberapa transaksi lain.

Untuk mempertahankan tingkat isolasi tertinggi, DBMS biasanya memperoleh kunci pada data, yang dapat mengakibatkan hilangnya konkurensi dan overhead penguncian yang tinggi. Tingkat isolasi ini melonggarkan properti ini.

Anda mungkin ingin melihat artikel Wikipedia di READ UNCOMMITTED untuk beberapa contoh dan bacaan lebih lanjut.

Anda mungkin juga tertarik untuk membaca artikel blog Jeff Atwood tentang bagaimana dia dan timnya mengatasi masalah kebuntuan di masa-masa awal Stack Overflow. Menurut Jeff:

Tetapi apakah nolock berbahaya? Bisakah Anda akhirnya membaca data yang tidak valid dengan read uncommitted pada? Ya, secara teori. Anda tidak akan menemukan kekurangan astronot arsitektur database yang mulai menjatuhkan ilmu ACID pada Anda dan semuanya kecuali menarik alarm kebakaran gedung ketika Anda memberi tahu mereka bahwa Anda ingin mencoba nolock .Itu benar:teorinya menakutkan. Tapi itulah yang saya pikirkan:"Dalam teori tidak ada perbedaan antara teori dan praktik. Dalam praktik ada."

Saya tidak akan pernah merekomendasikan menggunakan nolock sebagai perbaikan umum "baik untuk apa yang membuat Anda sakit" untuk masalah database yang mungkin Anda miliki. Anda harus mencoba mendiagnosis sumber masalahnya terlebih dahulu.

Namun dalam praktiknya menambahkan nolock untuk pertanyaan yang benar-benar Anda ketahui sederhana, urusan baca-saja langsung tampaknya tidak pernah menimbulkan masalah... Selama Anda tahu apa yang Anda lakukan.

Salah satu alternatif untuk READ UNCOMMITTED level yang mungkin ingin Anda pertimbangkan adalah READ COMMITTED SNAPSHOT . Mengutip Jeff lagi:

Snapshots mengandalkan metode pelacakan perubahan data yang sama sekali baru ... lebih dari sekadar sedikit perubahan logis, ini memerlukan server untuk menangani data secara fisik secara berbeda. Setelah metode pelacakan perubahan data baru ini diaktifkan, metode ini akan membuat salinan, atau cuplikan dari setiap perubahan data. Dengan membaca cuplikan ini daripada data langsung pada saat pertengkaran, Kunci Bersama tidak lagi diperlukan pada pembacaan, dan kinerja basis data secara keseluruhan dapat meningkat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa Perbedaan antara CHAR dan VARCHAR di SQL Server - Tutorial SQL Server / T-SQL Bagian 31

  2. Menyimpan perubahan setelah mengedit tabel di SQL Server Management Studio

  3. Perbaiki "SQL Server memblokir akses ke PERNYATAAN 'OpenRowset/OpenDatasource' dari komponen 'Kueri Terdistribusi Ad Hoc"

  4. Migrasi Cloud 101:Pindah dari SQL Server ke Azure

  5. Kembalikan Nomor Minggu ISO dari Tanggal di SQL Server (T-SQL)