Czy zawsze jest to zła praktyka? Na przykład, dobrą praktyką jest tworzenie transakcji tylko dla jednej prostej SELECT? Jaki jest koszt utworzenia transakcji, gdy nie jest to naprawdę konieczne? Nawet jeśli używasz poziomu izolacji READ UNCOMMITTED, czy to zła praktyka?
Przeczytałem tutaj, że niektóre dodatkowe dane będą przechowywane w wierszu, więc możemy zaobserwować spadek wydajności, ale jakie są inne zagrożenia? na przykład. Czy wpłynie to na odzyskiwanie bazy danych? Czy jest coś jeszcze, co musimy zrobić, aby z tego skorzystać? Planuję wykonać następujące polecenia: ALTER DATABASE DatabaseName SET READ_COMMITTED_SNAPSHOT ON …
Rozwijam T-SQL od kilku lat i zawsze zagłębiam się dalej, wciąż ucząc się wszystkiego, co mogę, o wszystkich aspektach języka. Niedawno zacząłem pracować w nowej firmie i otrzymałem dziwną sugestię dotyczącą transakcji. Nigdy ich nie używaj. Zamiast tego użyj obejścia, które symuluje transakcję. To pochodzi od naszego DBA, który pracuje …
Mój szef otrzymał wczoraj zapytanie od klienta z pytaniem, w jaki sposób można dowiedzieć się, kto usunął niektóre dane z bazy danych SQL Server (jeśli to ważne, jest to edycja ekspresowa). Myślałem, że można to znaleźć w dzienniku transakcji (pod warunkiem, że nie zostało ono obcięte) - czy to prawda? …
Dokumentacja ADO.NET pokazuje możliwość ustawienia poziomu transakcji dla transakcji SQL na Chaos. Brzmi nieprzyjemnie, ale jeśli ta funkcja jest dostępna, prawdopodobnie ma uzasadnione zastosowanie. Polecenie SET TRANSACTION ISOLATION LEVEL w BOL (ach, patrz, mogę używać Google i BOL) wydaje się, że nic nie nazywa się „chaos”, a ADO.NET ma 5 …
Załóżmy, że mamy następującą sytuację: Mamy stolik (powiedzmy Table_A), który ma spust INSERT. Zadaniem wyzwalacza jest aktualizacja niektórych wierszy w table_Boparciu o wstawione wartości w table_A. Teraz wszystko jest w porządku, gdy po prostu wstawiamy wiersz do tabeli, ale co z sytuacjami, w których wstawiamy dane poprzez transakcję ?. Czy …
Byłem trochę zaskoczony, aby odkryć, że DDL ( alter table, create indexetc) niejawnie popełnić bieżącej transakcji w MySQL. Począwszy od MS SQL Server, możliwość dokonywania lokalnych zmian bazy danych w transakcji (która została następnie wycofana) była ważną częścią mojego przepływu pracy. W celu ciągłej integracji zastosowano wycofanie, jeśli migracja nastąpiła …
Obecnie debuguję proces wsadowy, który wykonuje wiele instrukcji DML, ale nie wykonuje od razu zatwierdzenia. Byłoby miło móc zobaczyć „oczekujące” zmiany z innej sesji, gdy transakcja nie jest zatwierdzona. czy to możliwe? Przykład: Insert into table myTable (col1, col2) values ("col1", "col2"); --Somehow view the pending transaction maybe by system …
Mam procedurę składowaną, która wykonuje w niej tylko 3 procedury składowane. Używam tylko 1 parametru do przechowywania, jeśli główny SP jest udany. Jeśli pierwsza procedura przechowywana działa poprawnie w głównej procedurze przechowywanej, ale druga procedura przechowywana nie powiedzie się, to czy automatycznie przywróci wszystkie SP w głównej SP, czy muszę …
Mam proces importowania, który przebiega tak często i chcę, aby była to transakcja typu „wszystko albo nic”, czyli transakcja. Istnieje wiele aspektów, a import może przynieść wyniki w przedziale od 100 tys. Odpowiada to ładowności od kilku MB do kilkuset MB danych. Wiem, że tabele tymczasowe są inną opcją - …
Może to głupie pytanie dla początkujących, ale nigdzie nie mogę znaleźć odpowiedzi. Wszędzie czytam o tym, Transaction Isolationco rozwiązuje widoczność danych w ramach jednoczesnych transakcji. Moje obawy dotyczą zachowania w ramach jednej transakcji. Jeśli rozpocznę transakcję, wstawię jakieś dane, czy będę mógł je wybrać zaraz po - nadal w ramach …
Mam tabelę logowania, w której wszystkie wstawki są wykonywane za pomocą jednej procedury składowanej. CREATE TABLE dbo.LogTable( LogRefnr int IDENTITY(1, 1) NOT NULL, LogQuery varchar(255) NOT NULL, LogTime datetime NOT NULL, logQueryDuration int NULL, LogSessionID int NULL, CONSTRAINT PK_Log PRIMARY KEY CLUSTERED (LogRefnr) ) go Create procedure DBO.LogInsert ( @Query …
Jakie zachowanie wyświetliłby PostgreSQL, gdyby na przykład wywołano poniższy skrypt BEGIN; SELECT * FROM foo; INSERT INTO foo(name) VALUES ('bar'); BEGIN; <- The point of interest END; Czy PostgreSQL odrzuci sekundę, BEGINczy też domyślnie zostanie podjęta decyzja o zatwierdzeniu, a następnie uruchomi BEGIN ENDblok na końcu jako osobna transakcja?
Naprawdę mam problemy ze śledzeniem blokowania, którego doświadczamy. Rdzeń blokujący status SPID to „spanie”, cmd to „OCZEKUJĄCE POLECENIE” i tak sqltextjest SET TRANSACTION ISOLATION LEVEL READ COMMITTED. Kiedy przeglądam raport Najważniejsze transakcje według liczby zablokowanych transakcji, blokująca instrukcja SQL ma wartość „-”. Przeprowadziłem śledzenie SQL, a kiedy następuje blokowanie, śledzenie …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.