Transakce v tabulkách warehouse v Microsoft Fabric

Platí pro: Sql Endpoint and Warehouse v Microsoft Fabric

Podobně jako u SQL Server transakce umožňují řídit potvrzení nebo vrácení zpět dotazů na čtení a zápis.

Data, která jsou uložená v tabulkách ve skladu, můžete upravit pomocí transakcí a seskupit změny dohromady.

  • Vložení můžete například potvrdit do více tabulek nebo do žádné z tabulek, pokud dojde k chybě. Pokud měníte podrobnosti o nákupní objednávce, která ovlivňuje tři tabulky, můžete tyto změny seskupit do jedné transakce. To znamená, že při dotazování na tyto tabulky buď dojde ke změnám ve všech tabulkách, nebo k žádnému z nich. Transakce jsou běžným postupem, kdy potřebujete zajistit, aby vaše data byla konzistentní napříč několika tabulkami.

Důležité

Microsoft Fabric je ve verzi Preview.

Transakční možnosti

Stejné transakční funkce jsou podporované v koncovém bodu SQL v Microsoft Fabric, ale pro dotazy jen pro čtení.

Transakce lze také použít pro sekvenční příkazy SELECT, aby se zajistilo, že všechny tabulky mají data ze stejného bodu v čase. Pokud má například tabulka nové řádky přidané jinou transakcí, nové řádky neovlivní dotazy SELECT uvnitř otevřené transakce.

Důležité

Microsoft Fabric podporuje pouze úroveň izolace snímků. Pokud ke změně úrovně izolace použijete T-SQL, bude se změna v době provádění dotazu ignorovat a použije se izolace snímku.

Podpora transakcí mezidatabázových dotazů

Warehouse v Microsoft Fabric podporuje transakce napříč databázemi, které jsou ve stejném pracovním prostoru, včetně čtení z koncového bodu SQL Lakehouse. Každý Lakehouse má jeden koncový bod SQL a každý pracovní prostor může mít více než jeden lakehouse.

Podpora DDL v rámci transakcí

Sklad v Microsoft Fabric podporuje DDL, jako je CREATE TABLE, v uživatelsky definovaných transakcích.

Zámky pro různé typy příkazů

Tato tabulka obsahuje seznam zámků, které se používají pro různé typy transakcí. Všechny zámky jsou na úrovni tabulky:

Typ příkazu Zámek pořízený
SELECT Schema-Stability (Sch-S)
INSERT Výhradní záměr (IX)
DELETE Výhradní záměr (IX)
UPDATE Výhradní záměr (IX)
COPY INTO Výhradní záměr (IX)
DDL Schema-Modification (Sch-M)

Tyto zámky zabraňují konfliktům, například změně schématu tabulky při aktualizaci řádků v transakci.

Zámky, které jsou aktuálně uloženy, můžete dotazovat pomocí zobrazení dynamické správy (DMV) sys.dm_tran_locks.

Konflikty ze dvou nebo více souběžných transakcí, které aktualizují jeden nebo více řádků v tabulce, jsou vyhodnoceny na konci transakce. První transakce k potvrzení je úspěšně dokončena a ostatní transakce jsou vráceny zpět s vrácenou chybou. Tyto konflikty se vyhodnocují na úrovni tabulky, nikoli na úrovni jednotlivých souborů Parquet.

Příkazy INSERT vždy vytvářejí nové soubory Parquet, což znamená méně konfliktů s jinými transakcemi s výjimkou DDL, protože schéma tabulky se může měnit.

Protokolování transakcí

Protokolování transakcí ve skladu v Microsoft Fabric je na úrovni souboru Parquet, protože soubory Parquet jsou neměnné (nejde je změnit). Vrácení zpět má za následek odkazování zpět na předchozí soubory Parquet. Výhodou této změny je rychlejší protokolování transakcí a vrácení zpět.

Omezení

  • Distribuované transakce nejsou podporovány.
  • Ukládání bodů není podporováno.
  • Pojmenované transakce nejsou podporovány.
  • Označené transakce nejsou podporovány.
  • V tuto chvíli jsou funkce T-SQL ve skladu omezené. Seznam příkazů T-SQL, které momentálně nejsou k dispozici, najdete v části Plocha TSQL .
  • Pokud transakce obsahuje data vložená do prázdné tabulky a před vrácením zpět vydá příkaz SELECT, mohou automaticky generované statistiky stále odrážet nepotvrzená data, což způsobuje nepřesné statistiky. Nepřesné statistiky můžou vést k neoptimalizovaným plánům dotazů a časům provádění. Pokud vrátíte zpět transakci pomocí příkazu SELECTs po velké operaci INSERT, můžete aktualizovat statistiky pro sloupce uvedené v příkazu SELECT.

Další kroky