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

Pengaruh petunjuk NOLOCK dalam pernyataan SELECT

1) Ya , pilih dengan NOLOCK akan selesai lebih cepat dari pemilihan normal.

2) Ya , pilih dengan NOLOCK akan memungkinkan kueri lain terhadap tabel yang terpengaruh untuk diselesaikan lebih cepat daripada pemilihan normal.

Mengapa demikian?

NOLOCK biasanya (tergantung pada mesin DB Anda) berarti berikan saya data Anda, dan saya tidak peduli dalam keadaan apa, dan jangan repot-repot menahannya saat Anda membacanya. Semuanya sekaligus lebih cepat, kurang intensif sumber daya, dan sangat sangat berbahaya.

Anda harus diperingatkan untuk tidak pernah melakukan pembaruan dari atau melakukan sesuatu yang kritis pada sistem, atau jika kebenaran mutlak diperlukan menggunakan data yang berasal dari NOLOCK Baca. Sangat mungkin bahwa data ini berisi baris yang dihapus selama kueri dijalankan atau yang telah dihapus di sesi lain yang belum diselesaikan. Ada kemungkinan bahwa data ini mencakup baris yang telah diperbarui sebagian. Ada kemungkinan bahwa data ini berisi catatan yang melanggar batasan kunci asing. Ada kemungkinan bahwa data ini mengecualikan baris yang telah ditambahkan ke tabel tetapi belum dilakukan.

Anda benar-benar tidak tahu bagaimana keadaan datanya.

Jika Anda mencoba untuk mendapatkan hal-hal seperti Hitungan Baris atau data ringkasan lainnya di mana beberapa margin kesalahan dapat diterima, maka NOLOCK adalah cara yang baik untuk meningkatkan kinerja kueri ini dan menghindarinya agar tidak berdampak negatif pada kinerja basis data.

Selalu gunakan NOLOCK memberi petunjuk dengan sangat hati-hati dan memperlakukan data apa pun yang dikembalikannya secara mencurigakan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan SQL Server 111:"... harus menjadi pernyataan pertama dalam kumpulan kueri"

  2. Bagaimana CAST() Bekerja di SQL Server

  3. Tentukan Langkah-Langkah untuk Kursor SQL Server - Tutorial SQL Server / TSQL

  4. SQL - Konversi tipe data varchar ke tipe data datetime menghasilkan nilai di luar rentang

  5. Menggunakan Peringatan dan Operator di SQL Server