Development z Zapomnianej Strony

..:: Paweł Hofman .NET Portal ::..

Resource Governor Resource Governor to nowa opcja dostępna tylko w Microsoft SQL Server 2008 Enterprise. Dzięki niej możliwe jest w końcu zagwarantowanie priorytetów oraz średniego czasu wykonania zapytań, od których zależy nasz biznes. Pozwala on między innymi na zarządzanie i przypisywanie zasobów “typom” użytkowników łączących się z naszą bazą danych. Każdy “typ” reprezentowany jest jako pewna workload groupa, która z kolei posiada referencję do zasobów (resource pool). Zasobami są tutaj: minimalna i maksymalna ilość pamięci RAM oraz czasu procesora. Oba podawane są w procentach.

Procedura wygląda następująco - podczas łączenia, zanim jeszcze kontrola (czy uchwyt) zostanie zwrócony wywołującemu, wykonywana jest funkcja klasyfikująca (User Defined Function, UDF), którą sami możemy utworzyć, czy modyfikować. A następnie wszystkie zapytania (niezależnie od ich rodzaju), które wykonywane są w ramach danego połączenia będą ograniczane. Ograniczenia te zostają zaaplikowane jednak dopiero wówczas, gdy aktywnych jest kilka, różnych połączeń. Nawet restrykcyjne ograniczenia nie są więc brane pod uwagę, jeśli w danych aktualnie warunkach serwer dysponuje większymi zasobami, które może przydzielić. Gwarantuje to tym samym, że przy mało obłożonym serwerze, nawet połączenia o niskim priorytecie wykonają się możliwie najszybciej.

Dwie wbudowane grupy (“default” i “internal”) nie posiadają żadnych ograniczeń. Ich zadaniem jest wykonywanie zapytań, gdy: coś źle zostało sklasyfikowane (wtedy “default”) lub aby nie zagłodzić procesów własnych engine'u bazy, tzn.: SQL Server Agent, Service Brokera, checkpointów, czy lazy-writera (wtedy “internal”).

Za:

  • w końcu można kontrolować, co jest najważniejsze w naszym biznesie
  • jeden użytkownik nie ubije nam całego serwera dzięki “runaway” query

Braki:

  • jest to tylko własność Database Engine’u (czyli nici z zarządzaniem Analysis Services, Reporting Services, Integration Services…)
  • działa w obrębie jednej instancji (jeśli na jednej maszynie chodzi ich więcej, to o ile z pamięcią można próbować skonfigurować, to czasem procesora możemy zarządzać tylko przez opcje affinity, co nie jest dość optymalnym rozwiązaniem)
  • ograniczenie pamięci działa tylko na Query Execution Memory (nie pamięć cache), czyli podlegać mu będą jedynie zapytania alokujące pamięć (tj.: wymagające sortowania, łączenia tabel…)
  • brak restrykcji na operacje I/O
  • połączenie jest klasyfikowane tylko raz, podczas łączenia i później nie może być przeniesione do innej grupy, bez wcześniejszego rozłączenia (choć zasoby grupy mogą być zmieniane dynamicznie).


9.-te spotkanie przygotowujące do egzaminu 70-432 za nami. Poprowadzona sesja o Database Engine Tuning Advisor oraz Resource Governor udana! Więcej takich sobie i wam życzę.

Materiały do pobrania tutaj. Video opublikowane zostanie niebawem.

Te same sesje również obejrzeć można na portalu www.VirtualStudy.pl.



lis
29

SQL Day 2009

by Paweł | Tags: ,

SQLDay Logo28. listopada odbyła się konferencja SQLDay 2009. A ja na tej imprezie byłem i sam pomagałem w jej organizacji. Ci co nie przyszli niech tylko żałują!



Autor

Paweł Hofman [CodeTitans]

ASP.NET
C/C++, C#, Objective-C
SQL

License and Disclaimer

Moje Gry i Aplikacje

Zobacz mnie na GoldenLine

Zobacz mnie na LinkedIn
Supported by Polish SQL Server User Group (PLSSUG)

Supported by WrocNet.org

Zine.net.pl

Wpisy

Projekty

Moje projekty open-source:

Sign in