• Like
  • Save
Współbieżność - Locks, Blocks, Deadlocks,...   plssug
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

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

  • 632 views
Published

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, …

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
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
632
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
1
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    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.

Transcript

  • 1. Locks, blocks, deadlocks,…Łukasz Grala
  • 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. 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. WspółbieżnośdTransakcje, poziomy izolacji
  • 5. TRANSAKCJE• Atomicity• Consistency• Isolation• Durability
  • 6. Poziomy izolacji• Typy współbieżności (modele) – Optymistyczna – Pesymistyczna
  • 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. Anomalia• Brudne odczyty• Stracone aktualizacje• Niepowtarzalne odczyty• Urojenia
  • 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. Mechanizm współbieżności(poziom logiki)Blokady
  • 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. Blokowanie• Tryby blokowanie – Blokady ze współużytkowaniem (shared lock) – Blokady wyłączne (eXclusive lock) – Blokady update (update lock) !!!! – Blokady zamierzone (intent lock) !!!!
  • 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. Blokowanie – ziarnistość blokad TABELA STRONA STRONA STRONA Wiersz Wiersz Wiersz
  • 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. Blokowanie
  • 17. Problemy ze współbieżnościąBlokady
  • 18. Problemy z blokadami• Długi czas oczekiwania• Eskalacja blokad• Zakleszczenia
  • 19. Eksalacja blokad• 1211 – błąd z pamięcią• 1224 – po przekroczeniu limitu włączenie eskalacji blokad
  • 20. NarzędziaBlokady
  • 21. Narzędzia• Activity monitor• Raporty• Dynamiczne widoki i funkcję zarządcze• Procedury systemowe• Data Collection• SQL Trace / SQL Profiler• eXtended Events• Notification
  • 22. DEMO
  • 23. Pozostałe mechanizmywspółbieżnościLatche / Spinlocks
  • 24. Mechanizmy• Latch• Spinlock
  • 25. Latchs• Latch, Pagelatch, Pageiolatch• Rodzaje: – KP – keep latch – SH – shared latch – UP – update latch – EX – exclusive latch – DT – destroy latch
  • 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. Przykład
  • 28. Supelatch (sublatch)
  • 29. Spinlock
  • 30. Podsumowanie
  • 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