Uruchomiam następujące (obojętne) zapytanie CREATE TABLE large_temp_table AS SELECT a.*, b.*, c.* FROM a LEFT JOIN b ON a.foo = b.foo LEFT JOIN c ON a.bar = c.bar Załóżmy, że uruchomienie zapytania zajmuje 10 minut. Próba aktualizacji wartości w tabelach a, b lub c podczas działania będzie czekać na zakończenie …
Korzystamy z programu SQL Server 2000 i co wieczór otrzymujemy kilka takich błędów. Could not continue scan with NOLOCK due to data movement Zapytanie zgłaszające ten błąd jest dużym złożonym zapytaniem, które łączy kilkanaście tabel. Nasze podstawowe dane mogą być często aktualizowane. Kulturowa „najlepsza praktyka” polega na tym, że w …
Mam dwie procedury składowane, które są zakleszczone, gdy system jest obciążony. Proc A wybiera z tabeli, podczas gdy Proc B wstawia do tej samej tabeli. Wykres blokady pokazuje, że Proc A ma blokadę strony w trybie S, dla której Proc B chce blokady w trybie IX, Proc A czeka jednak …
Przeczytałem, że jeśli użyję IsolationLevel.ReadUncommitted, zapytanie nie powinno powodować żadnych blokad. Jednak kiedy to przetestowałem, zobaczyłem następującą blokadę: Resource_Type: HOBT Request_Mode: S (Shared) Co to jest blokada HOBT? Coś związanego z HBT (blokada sterty lub drzewa binarnego)? Dlaczego nadal miałbym dostać blokadę S? Jak uniknąć wspólnego blokowania podczas wysyłania zapytań …
Podczas próby uruchomienia mojego planu konserwacji pojawia się następujący błąd: Wykonanie zapytania „” nie powiodło się z następującym błędem: „Nie można zreorganizować indeksu” (partycja 1) w tabeli „”, ponieważ blokowanie na poziomie strony jest wyłączone. ” Obecnie w tym indeksie włączono blokowanie na poziomie wiersza. Mogę włączyć blokowanie na poziomie …
ALTER TABLEZapytanie rozpoczęliśmy kilka godzin temu i dopiero niedawno zdaliśmy sobie sprawę (za pośrednictwem pg_stat_activity), że czeka ono na zamek. Odkryliśmy inne zapytanie, które trzyma blokadę tabeli, którą chcemy zmienić, i nie pozwalając jej odejść. Nasze zapytanie jest „prostym” zapytaniem (zmiana typu danych kolumny), ale działa na ogromnej tabeli. Zamiast …
W tabeli, gdzie każdy wiersz posiada licznik (tylko wartość całkowita), muszę dostać aktualną wartość i zwiększyć ją w tym samym czasie . Skutecznie chcę to zrobić: SELECT counter FROM table WHERE id=123 UPDATE table SET counter=counter+1 WHERE id=123 Ale robienie tego, ponieważ dwa zapytania nie są oczywiście bezpieczne dla wątków: …
Edytowane: Dlaczego raportowanie sesji jest blokowane, ale czeka z PAGELATCH_*, a nie LCK_M_powiązane typy oczekiwania? Wcześniej zakładałem, że SQL Server zgłasza tylko sesje blokujące w kolumnie blocking_session_Id. Jeśli zablokowane sesje czekały na logiczną blokadę, a nie na nic innego, jak np PAGELATCH_*.
Korzystam z równoczesnych zapytań Postgres: UPDATE foo SET bar = bar + 1 WHERE baz = 1234 Każde zapytanie wpływa na ustaloną liczbę K wierszy i nie mogę znaleźć sposobu na wymuszenie kolejności, w jakiej wiersze są aktualizowane, co powoduje zakleszczenie. Obecnie rozwiązuję ten problem ręcznie, wymuszając wykonanie zamówienia, ale …
Obie formy blokowania powodują, że proces czeka na poprawną kopię rekordu, jeśli jest on aktualnie używany przez inny proces. W przypadku pesymistycznego blokowania mechanizm blokowania pochodzi od samej bazy danych (natywny obiekt blokady), podczas gdy w przypadku blokowania optymistycznego mechanizm blokowania jest pewną wersją wersjonowania wierszy, taką jak znacznik czasu, …
Mój starszy DBA powiedział mi, że domyślnie wykonanie zapytania SQL nie blokuje tabeli. Miałem problemy z raportem SQL Server Reporting Services (SSRS), który wydaje się mieć problemy z blokowaniem i błędami. Zrobiłem trochę Googlinga, ale niczego nie znalazłem. Czy raporty SSRS blokują tabele, których dotyczy zapytanie? Czy istnieje dokumentacja MSDN, …
Czy w SQL Server 2008 R2 istnieje sposób, aby spowodować przekroczenie limitu czasu dla modyfikacji bazy danych dotyczącej transakcji? Mamy scenariusz, w którym nasz kod aplikacji zawiesza się lub zgłasza wyjątek i nie wykonuje wycofania ani zatwierdzenia. Spowoduje to następnie zawieszenie innych sesji i oczekiwanie na zakończenie transakcji.
Mam długo działającą transakcję (o nazwie powiedzmy T1), która wykonuje niektóre operacje usuwania, aktualizacji i wstawiania w tabeli w SQL Server 2008 R2. W tym samym czasie inny proces okresowo uruchamia instrukcje select z tej tabeli. W domyślnych ustawieniach izolacji (READ COMMITTED, jak sądzę?) T1 blokuje wykonywanie wszystkich instrukcji select …
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.