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

pernyataan majemuk t-SQL menyebabkan kebuntuan, adakah yang tahu mengapa?

Anda juga perlu menahan lebih banyak kunci atau lebih sedikit.

Jawaban termudah adalah menggunakan NOLOCK (kinerja terbaik) atau TABLOCKX (konsistensi tanpa harus berpikir).

Jika Anda tidak dapat menggunakan with (nolock) karena persyaratan konsistensi, Anda dapat menambahkan with (tablockx) .Ini secara efektif berarti bahwa hanya satu utas yang dapat mengeksekusi pernyataan serupa pada satu waktu - tidak akan ada konkurensi.

Alternatifnya adalah menganalisis kebutuhan Anda secara lebih rinci, yang tidak dapat dilakukan tanpa memahami mengapa Anda memperbarui tabel, untuk apa data tersebut, dll.

Misalnya, apakah pernyataan ini benar-benar perlu ada dalam transaksi? Baunya seperti rumah tangga:

  DELETE FROM [dbo].[t_Log_2] 
  WHERE [idtm]<'2011-03-12 08:41:57';

Jika Anda mengeluarkannya dari transaksi, dan memasukkannya ke dalam kelompok yang terpisah, Anda mungkin menemukan bahwa masalahnya akan hilang.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Script untuk mematikan semua koneksi ke database (Lebih dari RESTRICTED_USER ROLLBACK)

  2. Cara mengulang dan mengurai parameter xml dalam prosedur tersimpan server sql

  3. shift kanan unsigned '>>>' Operator di sql server

  4. Membandingkan tanggal yang disimpan sebagai varchar

  5. Bagaimana saya bisa mencari semua kolom dalam sebuah tabel?