Pytania otagowane jako concurrency

W przypadku pytań dotyczących problemów pojawiających się, gdy wielu użytkowników lub procesów jednocześnie uzyskuje dostęp do udostępnianych informacji w systemie baz danych lub je modyfikuje.

1
Aktualizacja Postgres… LIMIT 1
Mam bazę danych Postgres, która zawiera szczegółowe informacje o klastrach serwerów, takie jak status serwera („aktywny”, „tryb gotowości” itp.). Aktywne serwery w dowolnym momencie mogą wymagać przełączenia awaryjnego do trybu gotowości i nie dbam o to, który tryb gotowości jest używany w szczególności. Chcę, aby zapytanie do bazy danych zmieniło …


4
Jak testujesz warunki wyścigu w bazie danych?
Próbuję napisać kod bazy danych, aby upewnić się, że nie podlega warunkom wyścigu, aby upewnić się, że zablokowałem prawidłowe wiersze lub tabele. Ale często zastanawiam się: czy mój kod jest poprawny? Czy można zmusić do manifestacji jakiekolwiek istniejące warunki wyścigu? Chcę mieć pewność, że jeśli tak się stanie w środowisku …


6
Czy mogę polegać na wczytywaniu wartości tożsamości programu SQL Server w kolejności?
TL; DR: Poniższe pytanie sprowadza się do: Podczas wstawiania wiersza istnieje okno możliwości między wygenerowaniem nowej Identitywartości a zablokowaniem odpowiedniego klucza wiersza w indeksie klastrowym, w którym zewnętrzny obserwator mógłby zobaczyć nowszą Identity wartość wprowadzona przez równoległą transakcję? (W SQL Server.) Wersja szczegółowa Mam tabelę programu SQL Server z Identitykolumną …


1
Przeczytaj częściowo zaktualizowany wiersz?
Powiedzmy, że mam dwa zapytania uruchomione w dwóch osobnych sesjach w SSMS: Pierwsza sesja: UPDATE Person SET Name='Jonny', Surname='Cage' WHERE Id=42 Druga sesja: SELECT Name, Surname FROM Person WITH(NOLOCK) WHERE Id > 30 Czy to możliwe, że SELECTinstrukcja może odczytać częściowo zaktualizowany wiersz, na przykład jeden z Name = 'Jonny'i …

3
Wstaw, jeśli nie istnieje, jednocześnie
Mam problemy z współbieżnością z moimi wstawkami w procedurze przechowywanej. Odpowiednia część procedury jest następująca: select @_id = Id from table1 where othervalue = @_othervalue IF( @_id IS NULL) BEGIN insert into table1 (othervalue) values (@_othervalue) select @_id = Id from table1 where othervalue = @_othervalue END Kiedy uruchamiamy 3 …

1
Wysoce współbieżny system pamięci masowej
Wyobraź sobie, że Twoim wymaganiem jest posiadanie 3 ogromnych tabel (danych strukturalnych) z, powiedzmy, 30 miliardami wierszy w każdym (łączny rozmiar 4 TB), a twoi wielu współbieżnych użytkowników (którzy są równoległymi wątkami systemu operacyjnego na zdalnych komputerach LAN) będą musieli przeczytać część dane za pośrednictwem zapytań SELELCT, GDZIE GROUPBY i …


1
Blokowanie w Postgres dla kombinacji UPDATE / INSERT
Mam dwa stoliki. Jednym z nich jest tabela dziennika; inny zawiera zasadniczo kody kuponów, których można użyć tylko raz. Użytkownik musi mieć możliwość zrealizowania kuponu, który wstawi wiersz do tabeli dziennika i oznaczy kupon jako wykorzystany (aktualizując usedkolumnę do true). Oczywiście jest tutaj oczywisty problem z wyścigiem / kwestią bezpieczeństwa. …

2
LATCH_EX Oczekuje na zasób METADATA_SEQUENCE_GENERATOR
Mamy proces, który generuje raport asortymentowy. Po stronie klienta proces dzieli konfigurowalną liczbę wątków roboczych, aby utworzyć fragment danych dla raportu, który odpowiada jednemu z wielu sklepów (potencjalnie tysiące, zwykle dziesiątki). Każdy wątek roboczy wywołuje usługę sieci Web, która wykonuje procedurę przechowywaną. Proces bazy danych do przetwarzania każdego fragmentu gromadzi …

6
Najlepsza sytuacja do zastosowania ODCZYTAJ NIEZAKOŃCZONY poziom izolacji
Jak wszyscy wiemy, READ UNCOMMITTED to najniższy poziom izolacji, w którym mogą gromadzić się takie rzeczy, jak brudne odczyty i odczyty fantomowe. Kiedy najlepiej wykorzystać ten poziom izolacji i z jakich powodów można go użyć? Właściwie czytałem wcześniej odpowiedzi, ale nie mogłem tego całkowicie zrozumieć, ponieważ nie było wystarczającej liczby …

1
Umieszczanie wyciągu Select w transakcji
Jaka jest różnica między tymi 2 zapytaniami: START TRANSACTION; SELECT * FROM orders WHERE id=1; UPDATE orders SET username='John' WHERE id=1; COMMIT; I bez transakcji: SELECT * FROM orders WHERE id=1; UPDATE orders SET username='John' WHERE id=1; Jaki jest efekt SELECTzawarcia transakcji? Jeśli DELETE FROM orders WHERE id=1został wywołany z …

3
Niespójność powtarzalnego odczytu
http://www.postgresql.org/docs/9.2/static/transaction-iso.html Tryb powtarzalnego odczytu zapewnia rygorystyczną gwarancję, że każda transakcja widzi całkowicie stabilny widok bazy danych. Jednak ten widok niekoniecznie musi być spójny z niektórymi szeregowymi (pojedynczymi) realizacjami równoczesnych transakcji na tym samym poziomie. Na przykład, nawet transakcja tylko do odczytu na tym poziomie może zobaczyć rekord kontroli zaktualizowany, aby …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.