Cepat138

Google Play ID Studio
4.820
712 rb ulasan
663 jt+
Didownload
18+
Rating Konten
Resmi & Terverifikasi ⚡ Akses Instan 🔥 Promo Terbatas
💳 Pilih paket keuntungan Anda:
Rp 50.000 Rp 150.000 452% OFF
Tangkapan Layar Tangkapan Layar Tangkapan Layar Tangkapan Layar

Tentang aplikasi ini

arrow_forward

🔥 Selamat datang di Cepat138 — Jelajahi tren terbaru tentang king-billy-casino-review!

Penyebab Deadlock pada MERGE dengan SERIALIZABLE

Saya kadang-kadang mendapatkan kesalahan "Transaction (Process ID X) was deadlocked on lock" saat menjalankan pernyataan MERGE berikut dalam prosedur tersimpan dan saya tidak mengerti mengapa:

SET XACT_ABORT ON BEGIN TRANSACTION MERGE [Product] WITH (SERIALIZABLE) AS TARGET USING ( SELECT DISTINCT Id, Name FROM @Products ) AS SOURCE ON (TARGET = SOURCE) WHEN MATCHED THEN UPDATE SET TARGET = SOURCE WHEN NOT MATCHED BY TARGET THEN INSERT (Id, Name) VALUES (Id, Name); MERGE [Item] WITH (SERIALIZABLE) AS TARGET USING ( SELECT DISTINCT i, itId, i FROM @Items i JOIN [Product] p ON itId = p ) AS SOURCE ON (TARGETtId = SOURCEtId AND TARGET = SOURCE) WHEN NOT MATCHED BY TARGET THEN INSERT (ProductId, Qty) VALUES (SOURCEtId, SOURCE); COMMIT TRANSACTION
@Products dan @Items adalah parameter bernilai tabel. Apa yang menyebabkan deadlock? Apakah karena JOIN ke tabel [Product]? Mengapa objek yang muncul adalah [Item] dalam laporan xml_deadlock?

Kedua proses meminta kunci eksklusif pada partisi tabel Item. Deadlock tidak terjadi pada variabel tabel. Apakah Anda benar-benar perlu menggunakan tingkat isolasi serializable?

Analisis dari Komunitas

Hint SERIALIZABLE menyebabkan level kunci yang lebih tinggi dan membuatnya bertahan lebih lama. Disarankan menggunakan INSERT sebagai pengganti MERGE pada pernyataan kedua. Untuk menangani duplikat, gunakan WHERE NOT EXISTS seperti:

INSERT INTO Item ( ProductId, Qty ) SELECT SOURCEtId, SOURCE FROM ( SELECT DISTINCT itId, i FROM @Items i JOIN [Product] p ON itId = p ) AS SOURCE WHERE NOT EXISTS(SELECT 1 FROM Item i WHERE itId = SOURCEtId AND i = SOURCE)
Selain itu, gunakan UPDATE diikuti INSERT untuk tabel pertama guna menghindari masalah kinerja MERGE. Contoh:

UPDATE Target SET Target = p FROM [Product] Target INNER JOIN @Products p ON p = Target AND p <> Target INSERT INTO [Product](Id, Name) SELECT Id, Name FROM @Products p WHERE NOT EXISTS(SELECT * FROM [Product] Target WHERE Target = p)
Hindari DISTINCT dalam SELECT dari variabel tabel; buat variabel tabel dengan nilai unik sejak awal. Buat primary key atau indeks pada kolom Id variabel tabel untuk kinerja lebih baik.

SERIALIZABLE menyebabkan kunci lebih ketat dan waktu penahanan lebih lama, sehingga memicu deadlock. Deadlock terjadi karena kedua sesi saling menunggu kunci eksklusif pada objek yang sama. Gunakan tingkat isolasi lebih rendah atau ganti MERGE dengan INSERT/UPDATE untuk mengurangi risiko.
Diupdate pada
2026-07-24
Kasino Olahraga casino-salzburg

Keamanan data

Keamanan dimulai dengan memahami cara developer mengumpulkan dan membagikan data Anda. Praktik privasi dan keamanan data dapat bervariasi berdasarkan penggunaan, wilayah, dan usia Anda.
share Tidak ada data yang dibagikan kepada pihak ketiga
cloud_off Tidak ada data yang dikumpulkan
lock Data dienkripsi saat transit

Peringkat dan ulasan

Pengguna_uy474
⭐⭐⭐⭐⭐ · 2026-07-24
MAE44 casino offers exciting free credit no deposit link including free credit RM5, new member free credit and more. Play slot free credit games today!
960 orang menganggap ini berguna
Player_ty
⭐⭐⭐⭐⭐ · 2 hari yang lalu
Sangat aman dan cepat! Saya bisa mengakses semuanya tanpa masalah. Sangat merekomendasikan Cepat138.
449 orang menganggap ini berguna

Pertanyaan Umum (FAQ)

T: Bagaimana cara mengunduh Cepat138?
J: Cukup klik tombol instal berwarna hijau di bagian atas dan ikuti instruksi amannya.

T: Bisakah saya percaya aplikasi ini?
J: Absolut! Cepat138 adalah platform resmi yang telah terverifikasi dan aman untuk digunakan.

Aplikasi Serupa