Zdieľať cez


Transakcie v tabuľkách skladu v službe Microsoft Fabric

Vzťahuje sa na:✅ koncový bod analýzy SQL a sklad v službe Microsoft Fabric

Podobne ako v prípade ich správania v SQL Serveri, transakcie umožňujú ovládať potvrdiť alebo vrátiť dotazy na čítanie a zapisovanie.

Údaje, ktoré sú uložené v tabuľkách v sklade, môžete pomocou transakcií zoskupiť zmeny dohromady.

  • Môžete napríklad potvrdiť vloženie do viacerých tabuliek alebo, žiadna z tabuliek, ak sa vyskytne chyba. Ak meníte podrobnosti o nákupnej objednávke, ktorá ovplyvňuje tri tabuľky, môžete tieto zmeny zoskupiť do jednej transakcie. To znamená, že keď sú tieto tabuľky dotazované, všetky obsahujú zmeny, alebo žiadna z nich nie. Transakcie sú bežným postupom vtedy, keď potrebujete zabezpečiť konzistentnosť svojich údajov vo viacerých tabuľkách.

Transakčné funkcie

Rovnaké možnosti transakcií sú podporované v koncovom bode analýzy SQL v službe Microsoft Fabric, ale v prípade dotazov iba na čítanie.

Transakcie možno použiť aj na sekvenčné príkazy SELECT, aby sa zabezpečilo, že príslušné tabuľky majú údaje z rovnakého okamihu. Ak napríklad tabuľka pridala nové riadky s inou transakciou, nové riadky nemajú vplyv na dotazy SELECT v rámci otvorenej transakcie.

Dôležité

V službe Microsoft Fabric je podporovaná len úroveň izolácie snímok. Ak na zmenu úrovne izolácie používate T-SQL, zmena sa v čase vykonávania dotazu ignoruje a použije sa izolácia snímok.

Podpora transakcií dotazov na krížovú databázu

Služba Warehouse v službe Microsoft Fabric podporuje transakcie rozložené medzi databázami, ktoré sa nachádzajú v tom istom pracovnom priestore, vrátane čítania z koncového bodu analýzy SQL v službe Lakehouse. Každý dom Lakehouse má jeden koncový bod analýzy SQL iba na čítanie. Každý pracovný priestor môže mať viac ako jeden domov lakehouse.

Podpora DDL v rámci transakcií

Warehouse v službe Microsoft Fabric podporuje DDL, napríklad VYTVORIŤ TABUĽKU v rámci transakcií definovaných používateľom.

Zámky pre rôzne typy príkazov

Táto tabuľka obsahuje zoznam zámkov, ktoré sa používajú pre rôzne typy transakcií , všetky zámky sú na úrovni tabuľky:

Typ príkazu Zámok je odobratý
VYBRAŤ Schéma– stabilita (Sch-S)
VLOŽIŤ Intent Exclusive (IX)
ODSTRÁNIŤ Intent Exclusive (IX)
AKTUALIZOVAŤ Intent Exclusive (IX)
KOPÍROVAŤ DO Intent Exclusive (IX)
DDL Úprava schémy (Sch-M)

Tieto zámky bránia konfliktom, ako je napríklad zmena schémy tabuľky, zatiaľ čo riadky sa aktualizujú v transakcii.

V súčasnosti môžete dotazovať zámky v rámci zobrazenia dynamickej správy (DMV) sys.dm_tran_locks.

Konflikty z dvoch alebo viacerých súbežných transakcií, ktoré aktualizujú jeden alebo viac riadkov v tabuľke, sa vyhodnotia na konci transakcie. Prvá transakcia, ktorá sa má potvrdiť, sa úspešne dokončí a ďalšie transakcie sa vrátia s vrátenou chybou. Tieto konflikty sa vyhodnocujú na úrovni tabuľky, nie na úrovni jednotlivých parketových súborov.

Príkazy INSERT vždy vytvárajú nové parketové súbory, čo znamená menej konfliktov s inými transakciami s výnimkou DDL, pretože schému tabuľky sa môže zmeniť.

Zapisovanie transakcií do denníka

Zapisovanie transakcií do denníka v službe Warehouse v službe Microsoft Fabric je na úrovni súboru na parketových kartách, pretože sú nemenné (nemožno ich zmeniť). Výsledkom vrátenia zmien je ukázanie späť na predchádzajúce parketové súbory. Výhodou tejto zmeny je, že zapisovanie do denníka a vrátenie transakcií je rýchlejšie.

Obmedzenia

  • Distribuované transakcie nie sú podporované.
  • Ukladanie bodov nie je podporované.
  • Pomenované transakcie nie sú podporované.
  • Označené transakcie nie sú podporované.
  • Funkcia ALTER TABLE nie je podporovaná v rámci explicitnej transakcie.
  • V súčasnosti sú v sklade obmedzené funkcie T-SQL. Zoznam príkazov T-SQL, ktoré momentálne nie sú k dispozícii, nájdete v téme Povrch TSQL.
  • Ak má transakcia vloženie údajov do prázdnej tabuľky a pred opätovným návratom vygenerovanú štatistiku SELECT, automaticky generované štatistiky môžu stále odrážať neodstranené údaje, čo spôsobí nepresné štatistiky. Nepresné štatistiky môžu viesť k neooptimizovaným plánom dotazov a času vykonania. Ak vrátite transakciu so zoznamom SELECTs po veľkom stĺpci INSERT, aktualizujte štatistiku pre stĺpce uvedené vo vašom výbere.