Bagikan melalui


Transaksi dalam tabel Gudang di Microsoft Fabric

Berlaku untuk:✅ Titik akhir analitik SQL dan Gudang di Microsoft Fabric

Mirip dengan perilakunya di SQL Server, transaksi memungkinkan Anda mengontrol penerapan atau pembatalan kueri baca dan tulis.

Anda dapat memodifikasi data yang disimpan dalam tabel di Gudang menggunakan transaksi untuk mengelompokkan perubahan bersama-sama.

  • Misalnya, Anda dapat menerapkan penyisipan ke tabel perkalian, atau, tidak ada tabel jika terjadi kesalahan. Jika Anda mengubah detail tentang pesanan pembelian yang memengaruhi tiga tabel, Anda dapat mengelompokkan perubahan tersebut menjadi satu transaksi. Itu berarti ketika tabel tersebut dikueri, mereka semua memiliki perubahan atau tidak ada yang melakukannya. Transaksi adalah praktik umum ketika Anda perlu memastikan data Anda konsisten di beberapa tabel.

Kemampuan transaksi

Kemampuan transaksi yang sama didukung di titik akhir analitik SQL di Microsoft Fabric, tetapi untuk kueri baca-saja.

Transaksi juga dapat digunakan untuk pernyataan SELECT berurutan untuk memastikan tabel yang terlibat semua memiliki data dari titik waktu yang sama. Sebagai contoh, jika tabel memiliki baris baru yang ditambahkan oleh transaksi lain, baris baru tidak memengaruhi kueri SELECT di dalam transaksi terbuka.

Penting

Hanya tingkat isolasi rekam jepret yang didukung di Microsoft Fabric. Jika Anda menggunakan T-SQL untuk mengubah tingkat isolasi Anda, perubahan diabaikan pada waktu Eksekusi Kueri dan isolasi rekam jepret diterapkan.

Dukungan transaksi kueri lintas database

Gudang di Microsoft Fabric mendukung transaksi yang mencakup seluruh database yang berada dalam ruang kerja yang sama termasuk membaca dari titik akhir analitik SQL Lakehouse. Setiap Lakehouse memiliki satu titik akhir analitik SQL baca-saja. Setiap ruang kerja dapat memiliki lebih dari satu lakehouse.

Dukungan DDL dalam transaksi

Gudang di Microsoft Fabric mendukung DDL seperti CREATE TABLE di dalam transaksi yang ditentukan pengguna.

Kunci untuk berbagai jenis pernyataan

Tabel ini menyediakan daftar kunci apa yang digunakan untuk berbagai jenis transaksi, semua kunci berada di tingkat tabel:

Jenis pernyataan Kunci diambil
SELECT Skema-Stabilitas (Sch-S)
INSERT Niat Eksklusif (IX)
DELETE Niat Eksklusif (IX)
UPDATE Niat Eksklusif (IX)
SALIN KE DALAM Niat Eksklusif (IX)
DDL Modifikasi Skema (Sch-M)

Kunci ini mencegah konflik seperti skema tabel diubah saat baris sedang diperbarui dalam transaksi.

Anda dapat mengkueri kunci yang saat ini disimpan dengan sys.dm_tran_locks tampilan manajemen dinamis (DMV).

Konflik dari dua transaksi bersamaan atau lebih yang memperbarui satu atau beberapa baris dalam tabel dievaluasi di akhir transaksi. Transaksi pertama yang berhasil diselesaikan dan transaksi lainnya digulung balik dengan kesalahan yang dikembalikan. Konflik ini dievaluasi pada tingkat tabel dan bukan tingkat file parquet individual.

Pernyataan INSERT selalu membuat file parket baru, yang berarti lebih sedikit konflik dengan transaksi lain kecuali untuk DDL karena skema tabel bisa berubah.

Pengelogan transaksi

Pengelogan transaksi di Gudang di Microsoft Fabric berada di tingkat file parket karena file parket tidak dapat diubah (tidak dapat diubah). Pembatalan menghasilkan menunjuk kembali ke file parket sebelumnya. Manfaat dari perubahan ini adalah bahwa pengelogan transaksi dan pembatalan lebih cepat.

Batasan

  • Transaksi terdistribusi tidak didukung.
  • Titik penyimpanan tidak didukung.
  • Transaksi bernama tidak didukung.
  • Transaksi yang ditandai tidak didukung.
  • ALTER TABLE tidak didukung dalam transaksi eksplisit.
  • Saat ini, ada fungsionalitas T-SQL terbatas di gudang. Lihat area permukaan TSQL untuk daftar perintah T-SQL yang saat ini tidak tersedia.
  • Jika transaksi memiliki penyisipan data ke dalam tabel kosong dan mengeluarkan SELECT sebelum menggulung balik, statistik yang dihasilkan secara otomatis masih dapat mencerminkan data yang tidak dilakukan, menyebabkan statistik yang tidak akurat. Statistik yang tidak akurat dapat menyebabkan rencana kueri dan waktu eksekusi yang tidak optimal. Jika Anda mengembalikan transaksi dengan SELECT setelah INSERT besar, perbarui statistik untuk kolom yang disebutkan dalam SELECT Anda.