Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 27|Jawab: 0

[Kiat] Pengoptimalan WITH (NOLOCK) untuk kueri EF Core konkurensi tinggi

[Salin tautan]
Diposting padaKemarin pukul 20:48 | | |
Persyaratan: Beberapa data memungkinkan pembacaan kotor, seperti konten artikel, tampilan halaman, komentar, dll., yang tidak seketat data keuangan. Untuk meningkatkan performa kueri, transaksi ReadUncommitted dapat digunakan, tetapi SqlTransaction dan TransactionScope memiliki bug tingkat isolasi kebocoran yang belum diperbaiki, jadi pertimbangkan untuk menggunakan solusi WITH (NOLOCK).

Resensi:
Pengoptimalan Kueri Kerangka Entitas WITH(NOLOCK)
https://www.itsvse.com/thread-9513-1-1.html

.NET/C# menggunakan SqlScriptDOM untuk mengurai dan mengeksekusi pernyataan SQL
https://www.itsvse.com/thread-11222-1-1.html

Tingkat isolasi kebocoran SqlTransaction dan TransactionScope (bug ini telah ada selama 8 tahun dan masih belum diperbaiki!) Saya memperkirakan banyak orang mungkin terpengaruh, tetapi mungkin tidak menyadarinya):Login hyperlink terlihat.

Artikel ini perlu mereferensikan SqlScriptDOM untuk mengurai pernyataan SQL dan menambahkan WITH(NOLOCK). Lihat proyek sumber terbuka:Login hyperlink terlihat.

Nuget mengutip sebagai berikut:
Buat fitur AllowDirtyReadAttribute.cs baru, kode sebagai berikut:
Buat WithNoLockInterceptor baru untuk mengganti metode tertentu di DbCommandInterceptor. Kodenya adalah sebagai berikut:
Injeksikan ke EF Core dengan konfigurasi berikut:
Gunakan untuk menambahkannya di atas metode pengontrol[Izinkan Membacanya]Bisa.

Pernyataan SQL mentah:
PILIH [o]. [Id],
         [o]. [Nama Pelanggan],
         [o0]. [Id],
         [o0]. [UrutanId],
         [o0]. [Produk]
DARI [Perintah] AS [o]
             SAMBUNGAN LUAR KIRI
         [Garis Pesanan] SEBAGAI [o0]
         PADA [o]. [Id] = [o0]. [UrutanId]
DI MANA [o]. [Id] = 1
PERINTAH OLEH [o]. [Id];

Pernyataan yang dihasilkan setelah menambahkan NOLOCK:
PILIH [o]. [Id],
         [o]. [Nama Pelanggan],
         [o0]. [Id],
         [o0]. [UrutanId],
         [o0]. [Produk]
DARI [Perintah] SEBAGAI [o] DENGAN (NOLOCK)
         SAMBUNGAN LUAR KIRI
         [Garis Pesanan] SEPERTI [o0] DENGAN (NOLOCK)
         PADA [o]. [Id] = [o0]. [UrutanId]
DI MANA [o]. [Id] = 1
PERINTAH OLEH [o]. [Id];




Mantan:(MSSQL) Pencarian Teks Lengkap SQL Server, Indeks Teks Lengkap
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com