Transakcje w tabelach magazynu w usłudze Microsoft Fabric
Dotyczy: Punkt końcowy SQL i magazyn w usłudze Microsoft Fabric
Podobnie jak w przypadku ich zachowania w SQL Server transakcje umożliwiają kontrolowanie zatwierdzenia lub wycofywania zapytań odczytu i zapisu.
Dane przechowywane w tabelach w magazynie można modyfikować przy użyciu transakcji w celu grupowania zmian.
- Można na przykład zatwierdzić wstawianie do tabel wielokrotności lub, w przypadku wystąpienia błędu, żadna z tabel. Jeśli zmieniasz szczegóły dotyczące zamówienia zakupu, które ma wpływ na trzy tabele, możesz pogrupować te zmiany w jedną transakcję. Oznacza to, że gdy te tabele są odpytywane, wszystkie mają zmiany lub żadna z nich nie robi. Transakcje są typowym rozwiązaniem w przypadku konieczności zapewnienia spójności danych w wielu tabelach.
Ważne
Usługa Microsoft Fabric jest dostępna w wersji zapoznawczej.
Możliwości transakcyjne
Te same możliwości transakcyjne są obsługiwane w punkcie końcowym SQL w usłudze Microsoft Fabric, ale w przypadku zapytań tylko do odczytu.
Transakcje mogą być również używane do sekwencyjnych instrukcji SELECT, aby upewnić się, że wszystkie tabele zawierają dane z tego samego punktu w czasie. Jeśli na przykład tabela zawiera nowe wiersze dodane przez inną transakcję, nowe wiersze nie mają wpływu na zapytania SELECT wewnątrz otwartej transakcji.
Ważne
Tylko poziom izolacji migawek jest obsługiwany w usłudze Microsoft Fabric. Jeśli używasz języka T-SQL do zmiany poziomu izolacji, zmiana zostanie zignorowana w czasie wykonywania zapytania, a izolacja migawki zostanie zastosowana.
Obsługa transakcji zapytań między bazami danych
Magazyn w usłudze Microsoft Fabric obsługuje transakcje obejmujące wiele baz danych znajdujących się w tym samym obszarze roboczym, w tym odczyt z punktu końcowego SQL usługi Lakehouse. Każda usługa Lakehouse ma jeden punkt końcowy SQL, a każdy obszar roboczy może mieć więcej niż jeden magazyn lakehouse.
Obsługa języka DDL w ramach transakcji
Magazyn w usłudze Microsoft Fabric obsługuje język DDL, taki jak CREATE TABLE wewnątrz transakcji zdefiniowanych przez użytkownika.
Blokady dla różnych typów instrukcji
Ta tabela zawiera listę blokad używanych dla różnych typów transakcji. Wszystkie blokady znajdują się na poziomie tabeli:
Typ instrukcji | Blokada zajęta |
---|---|
SELECT | Schema-Stability (Sch-S) |
INSERT | Intent Exclusive (IX) |
DELETE | Intent Exclusive (IX) |
UPDATE | Intent Exclusive (IX) |
COPY INTO | Intent Exclusive (IX) |
DDL | Schema-Modification (Sch-M) |
Te blokady uniemożliwiają konflikty, takie jak schemat tabeli, podczas gdy wiersze są aktualizowane w transakcji.
Możesz wykonywać zapytania dotyczące blokad aktualnie przechowywanych za pomocą dynamicznego widoku zarządzania (DMV) sys.dm_tran_locks.
Konflikty z co najmniej dwóch współbieżnych transakcji, które aktualizują jeden lub więcej wierszy w tabeli, są oceniane na końcu transakcji. Pierwsza transakcja do zatwierdzenia zakończy się pomyślnie, a pozostałe transakcje są wycofywane z zwróconym błędem. Te konflikty są oceniane na poziomie tabeli, a nie na poziomie pojedynczego pliku parquet.
Instrukcje INSERT zawsze tworzą nowe pliki parquet, co oznacza, że mniej konfliktów z innymi transakcjami z wyjątkiem języka DDL, ponieważ schemat tabeli może ulec zmianie.
Rejestrowanie transakcji
Rejestrowanie transakcji w magazynie w usłudze Microsoft Fabric jest na poziomie pliku parquet, ponieważ pliki parquet są niezmienne (nie można ich zmienić). Wycofanie powoduje skierowanie z powrotem do poprzednich plików parquet. Korzyści wynikające z tej zmiany są takie, że rejestrowanie transakcji i wycofywanie są szybsze.
Ograniczenia
- Transakcje rozproszone nie są obsługiwane.
- Punkty zapisywania nie są obsługiwane.
- Nazwane transakcje nie są obsługiwane.
- Oznaczone transakcje nie są obsługiwane.
- Obecnie w magazynie jest ograniczona funkcjonalność języka T-SQL. Zobacz Obszar powierzchni TSQL , aby uzyskać listę poleceń języka T-SQL, które są obecnie niedostępne.
- Jeśli transakcja zawiera dane wstawiania do pustej tabeli i wystawia polecenie SELECT przed cofnięciem, automatycznie wygenerowane statystyki mogą nadal odzwierciedlać niezatwierdzone dane, powodując niedokładne statystyki. Niedokładne statystyki mogą prowadzić do niezoptymalizowanego czasu wykonywania i planów zapytań. Jeśli wycofasz transakcję z funkcją SELECTs po dużej operacji INSERT, możesz zaktualizować statystyki kolumn wymienionych w elemecie SELECT.
Następne kroki
Opinia
Prześlij i wyświetl opinię dla