Locks, blocks,       deadlocks,…Łukasz Grala
Łukasz Grala•   Architekt - trener | SQLExpert.pl•   lukasz@sqlexpert.pl•   BLOGI:•   SQLResearch.com PowerPivot.info.pl• ...
Plan prezentacji•   Współbieżność / transakcje•   Poziomy izolacji•   Anomalia poziomów izolacji•   Mechanizm blokad•   Pr...
WspółbieżnośdTransakcje, poziomy izolacji
TRANSAKCJE•   Atomicity•   Consistency•   Isolation•   Durability
Poziomy izolacji• Typy współbieżności (modele)  – Optymistyczna  – Pesymistyczna
Poziomy izolacji• Transaction Isolation Level  –   READ UNCOMMITTED  –   READ COMMITTED (default)  –   REPEATABLE READ  – ...
Anomalia•   Brudne odczyty•   Stracone aktualizacje•   Niepowtarzalne odczyty•   Urojenia
Anomalia    Poziom izolacji   Brudne odczyty   Niepowtarzalne odczyty   FantomyRead uncommitted           Yes             ...
Mechanizm współbieżności(poziom logiki)Blokady
Blokowanie• Co to jest?  – Kluczowy mechanizm każdego wielodostępowego systemu baz danych  – Stosowane są w każdym modelu ...
Blokowanie• Tryby blokowanie  – Blokady ze współużytkowaniem (shared lock)  – Blokady wyłączne (eXclusive lock)  – Blokady...
Blokowanie• Specjalne tryby blokowań  – Blokady stabilności schematu (schema stability lock)  – Blokada modyfikacji schema...
Blokowanie – ziarnistość blokad             TABELA STRONA      STRONA      STRONA    Wiersz      Wiersz     Wiersz
Blokowanie• Zasoby podlegające blokowaniu  – DATABASE  – OBJECT        np.: 69873412  – EXTENT        np.: 1:96  – PAGE   ...
Blokowanie
Problemy ze współbieżnościąBlokady
Problemy z blokadami• Długi czas oczekiwania• Eskalacja blokad• Zakleszczenia
Eksalacja blokad• 1211 – błąd z pamięcią• 1224 – po przekroczeniu limitu włączenie  eskalacji blokad
NarzędziaBlokady
Narzędzia•   Activity monitor•   Raporty•   Dynamiczne widoki i funkcję zarządcze•   Procedury systemowe•   Data Collectio...
DEMO
Pozostałe mechanizmywspółbieżnościLatche / Spinlocks
Mechanizmy• Latch• Spinlock
Latchs• Latch, Pagelatch, Pageiolatch• Rodzaje:  – KP – keep latch  – SH – shared latch  – UP – update latch  – EX – exclu...
Latchs - zgodność     KP   SH   UP   EX   DTKP   Y    Y    Y    Y    NSH   Y    Y    Y    N    NUP   Y    Y    N    N    N...
Przykład
Supelatch (sublatch)
Spinlock
Podsumowanie
Reklama•   Zapraszamy na szkolenie i konsultację      – Data Mining     – Optymalizacja dla ADM/DEV     – Raportowanie   ...
Upcoming SlideShare
Loading in …5
×

Współbieżność - Locks, Blocks, Deadlocks,... plssug

1,084 views

Published on

Sesja przygotowana na 65 spotkanie Polish SQL Server User Group (PLSSUG). W ramach sesji przedstawiono mechanizm blokad, a także omówiono bardzo szczegółowo problemy z tym związane: timeout, blokady, deadlocks, escalation locks(eskalacja blokad). Przedstawiono także zagadnienia dotyczące anomalii występujących przy różnych poziomach izolacji. przedstawiono koncepcję wszystkich poziomów izolacji, a także zaprezentowana mechanizmy do realizacji współbieżności na najniższym poziomi czyli zatrzaski (latch), oraz ptęle (spinlock).

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,084
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • SLAJD DOMYŚLNIE UKRYTYMożna w nim podać namiary kontaktowe na prelegenta (nie jest to obowiązkowe).Mają one pozwolić (po pobraniu prezentacji) skontaktować się z prelegentem.Można również pokazać ten slajd na prezentacji.
  • Tu wpisujemy AGENDĘ
  • Szkolenie Data miningOpisZbiory największej biblioteki na Ziemi, Biblioteki Kongresu Stanów Zjednoczonych, liczą około 30 milionów książek. Gdyby wszystkie te książki wprowadzić do komputera, to przy założeniu, że średni rozmiar pliku wyniósłby 1 megabajt, zajęłyby one 30 terabajtów. Tymczasem baza danych jednej tylko firmy kurierskiej przechowuje ponad 20 terabajtów danych dotyczących dostarczonych przez tę firmę przesyłek, a dostępna pod adresem http://brainmaps.org/ baza danych map mózgów ssaków liczy sobie ponad 50 terabajtów. Oznacza to, że pojedyncze firmy i organizacje dysponują dziś ilością danych porównywalną z księgozbiorem zgromadzonym w Bibliotece Kongresu Stanów Zjednoczonych w ciągu kilkuset lat. Wydobycie z tak dużej ilości danych interesujących informacji biznesowych wymaga zastosowania specjalistycznych systemów informatycznych. Podstawą tego typu systemów eksploracji danych może być używany w Państwa firmie Microsoft SQL Server Standard lub Enterprise w wersji 2005 lub nowszej, uzupełniony o arkusz Excel 2007 lub nowszy co oznacza, że zbudowanie inteligentnego systemu wspomagania decyzji nie musi wiązać się zakupem nowych licencji czy przeszkoleniem użytkowników w zakresie obsługi nowego programu. Celem szkolenia jest przygotowanie analityków, informatyków i użytkowników biznesowych do tworzenia modeli eksploracji danych w oparciu o metodykę CRISP-DM (CRossIndustry Standard Process for Data Mining). To jedyne szkolenie, które nie ogranicza się wyłącznie do przedstawienia poszczególnych algorytmów eksploracji danych, ale pozwala zdobyć wiedzę i umiejętności niezbędne do zastosowania tych algorytmów do skutecznego rozwiązywania rzeczywistych problemów biznesowych. Dla kogoSzkolenie adresowane jest do analityków, zaawansowanych użytkowników biznesowych oraz programistów i administratorów baz danych. Jego uczestnicy poznają kompletą metodykę projektów eksploracji danych (od sformułowania problemu, poprzez przygotowanie danych, stworzenie modeli ich eksploracji po ocenę i wdrożenie tych modeli do użycia), oraz technologie firmy Microsoft pozwalające tworzyć i oceniać modele eksploracji danych, a także używać tych modeli w analizie biznesowej.Szkolenie Optymalizacja DEVOpisStworzenie wydajnej aplikacji bazodanowej wymaga nie tylko znajomości języka T-SQL, ale również zbudowania właściwego modelu logicznego i fizycznego bazy danych, wiedzy na temat specyficznych mechanizmów działania serwera SQL, umiejętności właściwego wykorzystania poszczególnych funkcji tego serwera i przestrzegania zarówno ogólnych, jak i charakterystycznych dla serwera SQL wzorców projektowych. Niezbędnym etapem projektu bazodanowego jest również przeprowadzanie testów, w tym testów wydajnościowych i obciążeniowych. Tego typu testy nie tylko powinny symulować przewidywane obciążenie bazy danych, ale przede wszystkim ich wyniki muszą być podstawą zmian projektu aplikacji. Celem szkolenia jest przygotowanie programistów do tworzenia wydajnych i skalowalnych aplikacji bazodanowych działających w środowisku serwera SQL firmy Microsoft. Opracowując to szkolenie kierowaliśmy się sprawdzonymi wzorcami i najlepszymi praktykami programistycznymi, oraz doświadczeniem zdobytym podczas diagnozowania i rozwiązywania najróżniejszych problemów wydajnościowych zgłaszanych nam przez klientów. W efekcie powstało szkolenie, którego ukończenie pozwala uniknąć typowych błędów, prowadzących do tworzenia aplikacji działających wydajnie wyłącznie na komputerze programisty lub aplikacji, których wydajność gwałtownie spada wraz ze zwiększaniem się liczby użytkowników lub ilości przechowywanych w bazach danych. Dla kogoSzkolenie adresowane jest do programistów baz danych, testerów i osób, które chcą nauczyć się diagnozować i rozwiązywać problemy wydajnościowe. Jego uczestnicy opanują praktyczne umiejętności niezbędne do projektowania skalowanych baz danych, pisania wydajnych zapytań oraz identyfikowania i optymalizacji nieefektywnych modułów kodu. Szkolenie dostępne jest w trzech wersjach, poświęconych serwerom SQL 2005, 2008 i 2008 R2 oraz 2012.Szkolenie optymalizacja DBAOpisZadaniem administratora baz danych jest zapewnienie użytkownikom możliwości bezproblemowego korzystania z systemu bazodanowego. Oznacza to nie tylko zagwarantowanie dostępności tego serwera i bezpieczeństwa przechowywanych w nim danych, ale również dbanie o utrzymanie odpowiedniej wydajności całego systemu — jeżeli ta wydajność spadnie poniżej pewnej granicy, baza danych będzie de facto niedostępna dla użytkowników. Chociaż administrator rzadko ma możliwość zmiany kodu (zarówno po stronie aplikacji klienckiej jak i obiektów bazodanowych), może on nie tylko poprawić wydajność systemu bazodanowego poprzez właściwą konfigurację serwera SQL i bazy danych, utworzenie odpowiednich indeksów czy zmianę fizycznej struktury tabel, ale także wykryć i udokumentować przyczyny jego niskiej wydajności. Przygotowany przez niego raport może być wykorzystany nie tylko jako uzasadnienie konieczności rozbudowy sprzętu, ale przede wszystkim w negocjacjach z producentem oprogramowania prowadzących do usunięcia wykrytych błędów. Administrator powinien również z wyprzedzeniem wykrywać potencjalne problemy i rozwiązywać je, zanim ich skutki staną się widoczne dla użytkowników. Takie proaktywne podejście obejmuje m.in. monitorowanie wielkości plików baz danych, wykorzystanie zasobów systemowych, liczbę aktywnych użytkowników i czas wykonywania kluczowych zapytań. Celem szkolenia jest przygotowanie administratorów serwerów SQL do proaktywnego monitorowania, diagnozowania i rozwiązywania problemów, ze szczególnym uwzględnieniem problemów wydajnościowych. Opracowując to specjalistyczne szkolenie kierowaliśmy się nie tylko naszym wieloletnim doświadczeniem administracyjnym, ale również uwagami i problemami zgłaszanymi nam przez klientów i kursantów. W efekcie powstało szkolenie, którego ukończenie pozwala efektywnie rozwiązywać typowe problemy i wykrywać oraz usuwać „wąskie gardła”, czyli przyczyny nieoptymalnej wydajności serwera SQL. Dla kogoSzkolenie adresowane jest do administratorów baz danych oraz osób, które chcą poznać mechanizmy działania serwera SQL, techniki i narzędzia monitorowania wydajności tego serwera, lub których zadaniem jest diagnozowanie pracy bądź poprawa wydajności systemu bazodanowego. Jego uczestnicy opanują praktyczne umiejętności niezbędne do udokumentowania działania serwera SQL, analizy rzeczywistych przyczyn pojawiających się błędów i nieoptymalnej wydajności serwera oraz sprawdzone techniki rozwiązywania tych problemów. Szkolenie dostępne jest w trzech wersjach, poświęconych serwerom SQL 2005, 2008 i 2008 R2 oraz 2012.Szkolenie RaportowanieOpisKażde wdrożenie systemu DW/BI (Data Warehouse/Business Intellignence) powinno zakończyć się utworzeniem przydatnych użytkownikom biznesowym raportów, w innym wypadku wdrożenie takie trudno uznać za udane. Niestety, niekiedy projekty tego typu tworzone są pod kontem hurtowni danych a nie reportów (a więc z perspektywy specjalistów IT, a nie użytkowników biznesowych), i kończą się utworzeniem właciwie działającej, ale zupełnie bezużytecznej hurtowni danych. Ukończenie szkolenia pozwoli Państwu efektywnie pracować z narzędziami do analizy danych takimi jak Excel, Excel Services, PowerPivot, wizualizować dane przy użyciu programu PowerView, samodzielnie tworzyć raporty za pomocą usługi Reporting Services, a także budować kluczowe wskaźniki wydajności, karty wyników, czy też kokpity menadżerskie przy użyciu PerformancePoint Services.Dla kogoSzkolenie adresowane jest do specjalistów BI i analityków. Jego uczestnicy poznają szeroką gamę narzędzi do analizy i wizualizacji danych, nauczą się tworzyć proste i zaawansowane raporty, karty wyników oraz kokpity menadżerskie.
  • Współbieżność - Locks, Blocks, Deadlocks,... plssug

    1. 1. Locks, blocks, deadlocks,…Łukasz Grala
    2. 2. Łukasz Grala• Architekt - trener | SQLExpert.pl• lukasz@sqlexpert.pl• BLOGI:• SQLResearch.com PowerPivot.info.pl• @PowerPivotBlog• Lider Polish SQL Server User Group (PLSSUG)
    3. 3. Plan prezentacji• Współbieżność / transakcje• Poziomy izolacji• Anomalia poziomów izolacji• Mechanizm blokad• Problemy z blokadami• Inne mechanizmy zapewnienia współbieżności• Podsumowanie
    4. 4. WspółbieżnośdTransakcje, poziomy izolacji
    5. 5. TRANSAKCJE• Atomicity• Consistency• Isolation• Durability
    6. 6. Poziomy izolacji• Typy współbieżności (modele) – Optymistyczna – Pesymistyczna
    7. 7. Poziomy izolacji• Transaction Isolation Level – READ UNCOMMITTED – READ COMMITTED (default) – REPEATABLE READ – SNAPSHOT – SERIALIZABLE• Locking Timeout – Limits time waiting for a locked resource – Use SET LOCK_TIMEOUT
    8. 8. Anomalia• Brudne odczyty• Stracone aktualizacje• Niepowtarzalne odczyty• Urojenia
    9. 9. Anomalia Poziom izolacji Brudne odczyty Niepowtarzalne odczyty FantomyRead uncommitted Yes Yes YesRead committed No Yes YesRepeatable read No No YesSnapshot No No NoSerializable No No No
    10. 10. Mechanizm współbieżności(poziom logiki)Blokady
    11. 11. Blokowanie• Co to jest? – Kluczowy mechanizm każdego wielodostępowego systemu baz danych – Stosowane są w każdym modelu współbieżności (poziom odseparowania –kontrola współbieżności pesymistyczna i optymistyczna) – Zapewniają spójność transakcji• Systemy blokowania w SQL Server – Blokady (locks) – Zatrzaski (latch) – Wzajemne wykluczanie (mutual exclusion) – poprzez blokady pętlowe (spinlock)
    12. 12. Blokowanie• Tryby blokowanie – Blokady ze współużytkowaniem (shared lock) – Blokady wyłączne (eXclusive lock) – Blokady update (update lock) !!!! – Blokady zamierzone (intent lock) !!!!
    13. 13. Blokowanie• Specjalne tryby blokowań – Blokady stabilności schematu (schema stability lock) – Blokada modyfikacji schematu (schema modification lock) – Blokady modyfikacji masowych (bulk updates locks) – Blokady konwersji – Blokady przedziałów klucza (key-range lock) – serializable – Blokady klucza
    14. 14. Blokowanie – ziarnistość blokad TABELA STRONA STRONA STRONA Wiersz Wiersz Wiersz
    15. 15. Blokowanie• Zasoby podlegające blokowaniu – DATABASE – OBJECT np.: 69873412 – EXTENT np.: 1:96 – PAGE np.: 1:104 – KEY np.: ac0001a01a11 – ROW np.: 1:161:3 – APPLICATION np.: 0:[ProceLock]:(8e12310f)
    16. 16. Blokowanie
    17. 17. Problemy ze współbieżnościąBlokady
    18. 18. Problemy z blokadami• Długi czas oczekiwania• Eskalacja blokad• Zakleszczenia
    19. 19. Eksalacja blokad• 1211 – błąd z pamięcią• 1224 – po przekroczeniu limitu włączenie eskalacji blokad
    20. 20. NarzędziaBlokady
    21. 21. Narzędzia• Activity monitor• Raporty• Dynamiczne widoki i funkcję zarządcze• Procedury systemowe• Data Collection• SQL Trace / SQL Profiler• eXtended Events• Notification
    22. 22. DEMO
    23. 23. Pozostałe mechanizmywspółbieżnościLatche / Spinlocks
    24. 24. Mechanizmy• Latch• Spinlock
    25. 25. Latchs• Latch, Pagelatch, Pageiolatch• Rodzaje: – KP – keep latch – SH – shared latch – UP – update latch – EX – exclusive latch – DT – destroy latch
    26. 26. Latchs - zgodność KP SH UP EX DTKP Y Y Y Y NSH Y Y Y N NUP Y Y N N NEX Y N N N NDT N N N N N
    27. 27. Przykład
    28. 28. Supelatch (sublatch)
    29. 29. Spinlock
    30. 30. Podsumowanie
    31. 31. Reklama• Zapraszamy na szkolenie i konsultację  – Data Mining – Optymalizacja dla ADM/DEV – Raportowanie – HA• Strona: http://sqlexpert.pl• Zachęcamy polubić  Facebook.com/sqlexpertpl• Prezentację slideshare.net/SQLExpert

    ×