Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Applies to:✅ SQL analytics uç birimi ve Microsoft Fabric Ambarı
SQL Server davranışlarına benzer şekilde, işlemler okuma ve yazma sorgularının işlenmesini veya geri alınmasını denetlemenize olanak sağlar.
Fabric Data Warehouse ACID uyumlu işlemleri destekler. Her işlem atomik, tutarlı, yalıtılmış ve kalıcıdır (ACID). Tek bir işlem içindeki tüm işlemler atomik olarak değerlendirilir, tümü başarılı veya başarısız olur. İşlemdeki herhangi bir komut başarısız olursa, tüm işlem geri alınır.
Açık işlemler
Değişiklikleri birlikte gruplandırmak için açık işlemleri kullanarak Bir Ambardaki tablolarda depolanan verileri değiştirebilirsiniz.
Örneğin, katlar tablosuna eklemeler işleyebilir veya hata oluştuğunda tabloların hiçbirini işlemeyebilirsiniz. Üç tabloyu etkileyen bir satın alma siparişinin ayrıntılarını değiştiriyorsanız, bu değişiklikleri tek bir işlem halinde gruplandırabilirsiniz. Bu, demektir ki bu tablolar sorgulandığında, ya tüm değişikliklere sahiptir ya da hiçbirinde değişiklik yoktur. İşlemler, verilerinizin birden çok tabloda tutarlı olduğundan emin olmanız gereken durumlarda yaygın bir uygulamadır.
Açık işlemler için standart T-SQL (BEGIN TRAN, COMMIT TRANve ROLLBACK TRAN) söz dizimi denetim mekanizmalarını kullanabilirsiniz. Daha fazla bilgi için bkz. - BEGIN TRANSACTION
- COMMIT TRANSACTION
- ROLLBACK TRANSACTION
Örneğin, Fabric Data Warehouse bu şema değişikliklerini tek bir atomik birim olarak ele alır:
-- Sample Syntax---
BEGIN TRAN;
ALTER TABLE <table_name> ADD <column_name> <type>;
ALTER TABLE <table_name> DROP COLUMN <column_name>;
COMMIT;
İşlemdeki herhangi bir deyim başarısız olursa, tüm şema değişiklikleri otomatik olarak geri alınır.
Fabric Data Warehouse, aşağıdakileri açık bir işlem içinde yürütmeyi destekler:
CREATE TABLEDROP TABLETRUNCATE TABLECTASsp_rename-
ALTER TABLEboş değer atanabilir sütunlar ekle -
ALTER TABLEsütunları kaldır -
ALTER TABLEanahtar sözcüğüylePRIMARY KEY,UNIQUEveFOREIGN KEYkısıtlamalarını ekle veya kaldırNOT ENFORCED - Birden çok
ALTER TABLEdeyim -
ALTER TABLEdağıtılmış geçici tablolarda
Veritabanları arası sorgu işlemi desteği
Microsoft Fabric ambarı, Lakehouse'un SQL analiz uç noktasından okuma da dahil olmak üzere aynı çalışma alanındaki ambarlar arasında yapılan işlemleri destekler. Örnek için bkz. Veritabanları arası SQL Sorgusu yazma.
Fabric Data Warehouse'da kilitlemeyi ve engellemeyi anlama
Fabric Data Warehouse, sorgunun bir satıra mı yoksa çok satıra mı dokunduğundan bağımsız olarak tablo düzeyinde kilitleme kullanır. Aşağıdaki tabloda, farklı T-SQL işlemleri için hangi kilitlerin kullanıldığına ilişkin bir liste sağlanmaktadır.
| Deyim türü | Kilit alındı |
|---|---|
| DML | |
| SELECT | Schema-Stability (Sch-S) |
| INSERT | Amaç Özel Kullanım (IX) |
| DELETE | Amaç Özel Kullanım (IX) |
| UPDATE | Amaç Özel Kullanım (IX) |
| MERGE | Amaç Özel Kullanım (IX) |
| KOPYALA | Amaç Özel Kullanım (IX) |
| DDL | |
| TABLO OLUŞTUR | Şema Değişiklikleri (Sch-M) |
| ALTER TABLE | Şema Değişiklikleri (Sch-M) |
| DROP TABLE | Şema Değişiklikleri (Sch-M) |
| TABLOYU KISALT | Şema Değişiklikleri (Sch-M) |
Şema Değişiklikleri (Sch-M) |
|
| KOPYA OLARAK TABLO OLUŞTURMA | Şema Değişiklikleri (Sch-M) |
Şu anda tutulan kilitleri dinamik yönetim görünümü (DMV) sys.dm_tran_locks sorgulayabilirsiniz.
Kilitler, kilit yükseltme ve kilit uyumluluğu hakkında daha fazla bilgi için bkz. İşlem kilitleme ve satır sürüm oluşturma kılavuzu.
Anlık görüntü yalıtımı
Fabric Data Warehouse tüm işlemlerde anlık görüntü yalıtımı uygular. Anlık görüntü yalıtımı, veriler için işlem düzeyi tutarlılığı sağlayan ve güncelleştirilecek satırları seçmek için içinde tempdb depolanan satır sürümlerini kullanan satır tabanlı bir yalıtım düzeyidir. İşlem, işlem başladığında var olan veri satırı sürümlerini kullanır. Bu, her işlemin işlemin başlangıcında mevcut olan verilerin tutarlı bir anlık görüntüsünde çalıştırılmasını sağlar.
Anlık görüntü yalıtımı altında, bir işlemdeki sorgular, işlem başladığında veritabanının durumuna bağlı olarak aynı sürümü veya anlık görüntüyü görür. Anlık görüntü yalıtımında, verileri değiştiren işlemler verileri okuyan işlemleri engellemez ve verileri okuyan işlemler de veri yazan işlemleri engellemez. Bu iyimser ve engelleyici olmayan davranış, karmaşık işlemler için kilitlenme olasılığını da önemli ölçüde azaltır.
Yalıtım düzeyinizi değiştirmek için T-SQL kullanırsanız, değişiklik sorgu yürütme zamanında yoksayılır ve anlık görüntü yalıtımı uygulanır.
Anlık görüntü yalıtımında, yazma-yazma veya güncelleştirme çakışmaları mümkündür. Daha fazla bilgi için bkz. Fabric Data Warehouse'da Yazma-Yazma Çakışmalarını Anlama.
Şema kilitleri
Şema kilitleri, bir işlemde satırlar güncelleştirilirken tablonun şemasının değiştirilmesi gibi DDL deyimlerinde çakışmaları önler. Şema değişiklikleri ve geçişler gibi DDL işlemlerinin, etkin okuma iş yüklerini engelleyebileceğini veya bu iş yükleri tarafından engellenebileceğini unutmayın.
- Veri tanımı dili (DDL) işlemleri sırasında Database Engine şema değişikliği (
Sch-M) kilitleri kullanır. Kilit, tutıldığı süre boyunca,Sch-Mkilit serbest bırakılana kadar tabloya tüm eşzamanlı erişimi engeller. - Veri işleme dili (DML) işlemleri sırasında Database Engine şema kararlılığı (
Sch-S) kilitleri kullanır.Sch-Mkilitlerini alan işlemlerSch-Skilitler tarafından engellenir. Sorgu derlenirken diğer işlemler çalışmaya devam eder, ancak DDL işlemleri şemaya özel erişim elde edene kadar engellenir. - DDL işlemleri, işlem süresi boyunca, hedef tabloyla ilişkili
Xvesys.tablesgibi sistem görünümlerindeki satırlarda özel (sys.objects) kilit de alır. Bu,SELECTvesys.tablesüzerinde eşzamanlısys.objectsdeyimlerlerini engeller.
Engellemeyi önlemek için en iyi yöntemler
- Uzun süreli işlemlerden kaçının veya eşzamanlı faaliyetin azaldığı ya da hiç olmadığı dönemlerde zamanlayın.
- Engellemeyi en aza indirmek için DDL işlemlerini yalnızca bakım pencereleri sırasında zamanlayın.
- DDL deyimleri açık kullanıcı işlemleri ()
BEGIN TRANiçinde yürütülebilirken, eşzamanlı iş yüklerinde dikkatli kullanılmalıdır. Kilitleme davranışı nedeniyle, bir işlem içindeki DDL, etkilenen tablolarda eşzamanlı DML veya SELECT işlemlerinin yanı sıra veyasys.tablesgibisys.objectssistem kataloğu görünümlerinde SELECT sorgularını engelleyebilir. Olası kilit çakışmalarını izlemek ve gidermek için kullanınsys.dm_tran_locks. - Ambardaki kilitleri ve çakışmaları izleyin.
- Geçerli kilitleri incelemek için sys.dm_tran_locks kullanın.
Fabric Data Warehouse yazma-yazma çakışmalarını anlama
İki işlem, UPDATE, DELETE, MERGE veya TRUNCATE aynı tablo üzerinde işlem yapmaya çalıştığında yazma-yazma çakışmaları oluşabilir.
Fabric Data Warehouse tablo düzeyinde kilitleme kullandığından, yazma-yazma çakışmaları veya güncelleştirme çakışmaları tablo düzeyinde mümkündür. İki işlem aynı tablodaki farklı satırları değiştirmeyi denerse, yine de çakışabilir.
Yazma-yazma çakışmaları çoğunlukla iki senaryodan kaynaklanır.
- Kullanıcı tarafından oluşturulan iş yükü çakışmaları
- Birden çok kullanıcı veya işlem aynı tabloyu eşzamanlı olarak değiştirir.
- ETL işlem hatlarında, toplu güncelleştirmelerde veya çakışan işlemlerde oluşabilir.
- Sistem tarafından oluşturulan çakışmalar
- Otomatik veri sıkıştırma gibi arka plan sistemi görevleri, dosyaları düşük kalitede yeniden yazar.
- Bunlar kullanıcı işlemleriyle çakışabilir, ancak Veri sıkıştırma önalımı bu türdeki yazma-yazma çakışmalarını etkin bir şekilde engeller.
Yazma-yazma çakışması oluşursa aşağıdaki gibi hata iletileri görebilirsiniz:
- Hata 24556: Güncelleştirme çakışması nedeniyle anlık görüntü yalıtım işlemi durduruldu. '%.*ls' tablosuna '%.*ls' veritabanında doğrudan veya dolaylı olarak erişmek için anlık görüntü yalıtımı kullanılması, tablodaki satırlar başka bir eşzamanlı işlem tarafından silindiyse veya güncelleştirildiyse güncelleştirme çakışmalarına neden olabilir. İşlemi yeniden deneyin.
- Hata 24706: Güncelleştirme çakışması nedeniyle anlık görüntü yalıtım işlemi durduruldu. Anlık görüntü yalıtımını kullanarak '%.*ls' veritabanındaki '%.*ls' tablosuna doğrudan veya dolaylı olarak erişip başka bir işlem tarafından değiştirilen veya silinen satırı güncelleştirmek, silmek veya eklemek mümkün değildir. Lütfen işlemi yeniden deneyin.
Bu hata iletileriyle karşılaşırsanız, bir veya daha fazla işlem başarılı oldu ve bir veya daha fazla çakışan işlem başarısız oldu. Başarısız olan işlemleri yeniden deneyin.
Uyarı
İşlemler yalnızca ekleme değişikliklerine neden olsa MERGE bile, yine de bir yazma-yazma çakışması oluşturur. İşlem diğer eşzamanlı DML işlemlerinden farklı satırları etkilediğinde MERGE , işlenen ilk işlem değilse MERGE bu hatayla karşılaşabilir: 'Güncelleştirme çakışması nedeniyle anlık görüntü yalıtım işlemi durduruldu.'
Yazma-yazma çakışmalarını önlemeye yönelik en iyi yöntemler
Yazım çakışmalarını önlemek için:
- Aynı tabloda eşzamanlı
UPDATE,DELETE,MERGEişlemlerinden kaçının.- Çok adımlı işlemler içindeki
UPDATE,DELETE,MERGEişlemlerine dikkat edin.
- Çok adımlı işlemler içindeki
- Tüm uygulamalarda ve sorgularda Yeniden Deneme Mantığını kullanın.
- Saklı yordamlarda ve ETL işlem hatlarında yeniden deneme mantığı uygulayın.
- Geçici çakışmaları işlemek için işlem hatlarında veya uygulamalarda gecikmeli yeniden deneme mantığı ekleyin.
- Geçici ağ kesintilerini kötüleştiren yeniden deneme fırtınalarından kaçınmak için üstel geri çekilme yöntemini kullanın. Daha fazla bilgi için bkz. Yeniden deneme düzeni.
- Fabric Data Warehouse arka plan veri sıkıştırma hizmetiyle yazma-yazma çakışmaları mümkündür, ancak genellikle Veri sıkıştırma öncelik tanıma özelliği tarafından engellenir.
Tablo ve parquet dosyasını engelleme
Bir tablodaki bir veya daha fazla satırı güncelleştiren iki veya daha fazla eşzamanlı işlemden kaynaklanan çakışmalar, işlemin sonunda değerlendirilir. İlk işlemi başarılı bir şekilde tamamlanır ve diğer işlemler hata verilerek geri alınır. Bu çakışmalar ayrı ayrı parquet dosya düzeyinde değil tablo düzeyinde değerlendirilir.
INSERT deyimleri her zaman yeni parquet dosyaları oluşturur; bu da Tablonun şeması değişebileceğinden DDL dışındaki diğer işlemlerle daha az çakışma olduğu anlamına gelir.
Sınırlamalar
- Dağıtılmış işlemler desteklenmez, örneğin.
BEGIN DISTRIBUTED TRANSACTION - Kaydetme noktaları desteklenmez.
- Adlandırılmış işlemler desteklenmez.
- İşaretli işlemler desteklenmez.
- Şu anda, ambarda sınırlı T-SQL işlevselliği vardır. Şu anda desteklenmeyen T-SQL komutlarının listesi için Fabric Veri Ambarı'nın T-SQL yüzey alanına bakın.
- Bir işlem boş bir tabloya veri ekleme işlemine sahipse ve geri dönmeden önce bir SELECT oluşturuyorsa, otomatik olarak oluşturulan istatistikler yine de kaydedilmemiş verileri yansıtarak yanlış istatistiklere neden olabilir. Yanlış istatistikler, iyileştirilmemiş sorgu planlarına ve yürütme sürelerine yol açabilir. Büyük bir INSERT işleminden sonra SELECTs ile bir işlemi geri alırsanız, SELECT'inizde belirtilen sütunların istatistiklerini güncelleştirin.