314 Plan prezentacji 315 Strojenie Linie bazowe Diagnozowanie problemów z wydajnością bazy danych y Memory s SQL Tuning SQL Access Partitioning Database Replay SQL Performance Analyzer Zbieranie statystyk optymalizatora Automatic Diagnostic Repository Linia bazowa (1/3) 316 Linia bazowa (2/3) 317 Linia bazowa powstaje w wyniku porównania dwóch raportów AWR Wyraża ona obciążenie (typowe, np. dzień roboczy), które zostało wygenerowane pomiędzy momentami zbierania wskazanych raportów Porównywanie dwóch linii bazowych pozwala stwierdzić, czy charakterystyka obciążenia ulega zmianie Tworzenie linii bazowej OEM -> Server -> AWR Baselines -> Create Wyliczenie statystyk progowych OEM -> Server -> AWR Baselines -> Schedule Statistics Computation Porównywanie linii bazowych OEM -> Server -> AWR -> Baselines -> Akcja: Compare Periods
Linia bazowa (3/3) 318 MOVING_WINDOW Baseline (1/3) 319 Linia bazowa oparta o statystyki zebrane w ostatnim okresie czasu np. ostatni tydzień, dzień, Pozwala zbudować mechanizm Alertów w oparciu i progi wyznaczane jako % wartości metryki wskazywanej przez linie bazową Dzięki podążaniu metryk w takiej linii bazowej za rzeczywistym obciążeniem systemu progi działania Alertów także za nim podążają Alerty oparte o taką linię bazową są zgłaszane wtedy, gdy metryki systemowe faktycznie odbiegają od uśrednionego obciążenia w ostatnim okresie czasu OEM -> Metric and Policy Settings -> Metric Baselines MOVING_WINDOW Baseline (2/3) 320 MOVING_WINDOW Baseline (3/3) 321
EM strona główna ogólny pogląd na wydajność systemu 322 EM wydajność bazy danych 323 EM uszczegółowienie wykresów opisujących wydajność bazy danych 324 Dynamiczne perspektywy wykorzystywane podczas strojenia bazy danych 325 instancja/baza danych V$DATABASE V$INSTANCE V$PARAMETER V$SPPARAMETER V$SYSTEM_PARAMETER V$PROCESS V$BGPROCESS V$PX_PROCESS_SYSSTAT V$SYSTEM_EVENT dyski V$DATAFILE V$FILESTAT V$LOG V$LOG_HISTORY V$DBFILE V$TEMPFILE V$TEMPSEG_USAGE V$SEGMENT_STATISTICS
Dynamiczne perspektywy wykorzystywane podczas strojenia bazy danych 326 Zależności pomiędzy narzędziami diagnostycznymi 327 pamięć V$BUFFER_POOL_STATISTICS V$LIBRARYCACHE V$SGAINFO V$PGASTAT współbieżny dostęp do danych V$LOCK V$UNDOSTAT V$WAITSTAT V$LATCH ADDM SQL Tuning SQL Access Memory PGA SGA Buffer Cache Shared Pool Java Pool Streams Pool Space Segment Undo Backup MTTR EM Central 328 329 Strojenie pamięci Memory advisors (1/5) Wersje bazy danych przed 10g sukcesywnie wprowadzały następujące mechanizmy: Shared Pool Buffer Cache PGA W wersji 10g wprowadzono mechanizm automatycznego strojenia pamięci SGA W wersji 11g wprowadzono mechanizm automatycznego strojenia całej pamięci wykorzystywanej przez serwer bazy danych (SGA + PGA)
330 Strojenie pamięci Memory advisors (2/5) SQL> show parameter memory memory_max_target big integer 396M memory_target big integer 396M 331 Strojenie pamięci Memory advisors (3/5) SQL> show parameters sga sga_max_size big integer 300M sga_target big integer 300M 332 Strojenie pamięci Memory advisors (4/5) 333 Strojenie pamięci Memory advisors (5/5) Parametry inicjalizacyjne, które maja wpływ na pamięć wykorzystywaną przez Oracle Perspektywy pokazujące aktualne wykorzystanie pamięci przez bazę danych V$MEMORY_DYNAMIC_COMPONENTS aktualny podział pamięci na poszczególne komponenty V$MEMORY_RESIZE_OPS historia 800 ostatnich zmian podziału pamięci na komponenty V$MEMORY_TARGET_ADVICE wskazówki dotyczące ustalania wartości parametru MEMORY_TARGET
SQL Tunning (1/4) 334 SQL Tunning (2/4) 335 Należy rozpocząć od: Identyfikacji najbardziej obciążającego zapytania przy pomocy ADDM oraz Top SQL Oglądanie planów wykonania zapytania: OEM -> Performance -> TOP SQL SQL Tunning (3/4) 336 SQL Tunning (4/4) 337
SQL s 338 SQL Tuning (1/6) 339 SQL Tuning analizuje zbiór zapytań zwraca rekomendacje implementacja rekomendacji sprawia, że zapytania z analizowanego zbioru będą wykonywać się efektywniej Aby uruchomić SQL Tuning należy: OEM -> Central -> SQL s -> SQL Tuning 340 341 SQL Tuning (2/6) SQL Tuning (3/6) Źródłem zapytań może być: zbiór zapytań z Top Activity repozytorium AWR ręcznie wskazany zbiór Wskazówki dotyczą: przeliczenia statystyk strojenia zapytań SQL, ew. zapamiętania profilu zapytania tworzenia indeksów tworzenia perspektyw zmaterializowanych przebudowy zapytania SQL podziału tabeli na partycje
SQL Tuning (4/6) 342 SQL Tuning (5/6) 343 344 345 SQL Tuning (6/6) SQL Access (1/4) Podobnie jak poprzednik analizuje zbiór zapytań i optymalizuje go jako całość Wskazówki dotyczą: indeksów (tworzenie, usuwanie, przebudowa) perspektyw zmaterializowanych logów perspektyw zmaterializowanych podziału tabeli na partycje (nowość w 11g)
SQL Access (2/4) 346 SQL Access (3/4) 347 SQL Access (4/4) 348 Partitioning 349 Potrafi wykorzystać nowe opcje partycjonowanie w Oracle 11g Jest częścią SQL Access
Database Replay (1/2) Mechanizm pozwalający na: nagranie obciążenia kierowanego do bazy danych przez użytkowników powtórzenie (nawet wieloktotne) nagranego obciążenia na innym systemie porównanie statystyk wykonania obciążenia na obu systemach Pod pojęciem inny system DR rozumie: ta sama baza danych po dużych zmianach konfiguracyjnych inna baza danych być może nowsza wersja oprogramowania, lub przenosiny bazy danych na inny serwer OEM -> Software and Support -> Database Replay 350 Database Replay (2/2) 351 SQL Performance Analyzer (1/4) 352 SQL Performance Analyzer (2/4) 353 Mierzy wydajność wykonania zbiory zapytań na przykład przed i po zmianie Raport wynikowy zawiera wskazanie, co uległo zmianie pomiędzy wywołaniami programu Wskazuje na zapytania, dla których wydajność najbardziej wzrosła/spadła Zawiera proste wskazówki dotyczące strojenia wskazanych zapytań Uruchamianie OEM -> Central -> SQL Performance Analyzer OEM -> Software and Support -> SQL Performance Analyzer
SQL Performance Analyzer (3/4) 354 SQL Performance Analyzer (4/4) 355 356 Zbieranie statystyk dla optymalizatora (1/4) 357 Zbieranie statystyk dla optymalizatora (2/4) Statystyki: optymalizatora systemowe Zbieranie: automatyczne ręczne pakiet DBMS_STATS ręczne EM -> Server -> Manage Optimizer Statistics Wymuszone parametrami inicjalizacyjnymi: OPTIMIZER_DYNAMIC_SAMPLING STATISTICS_LEVEL Importowanie
358 Zbieranie statystyk dla optymalizatora (3/4) 359 Zbieranie statystyk dla optymalizatora (4/4) 360 Automatic Diagnostic Repository (1/6) Repozytorium plikowe, znajdujące się poza bazą danych, Przechowuje informacje o stanie bazy danych Parametry USER_DUMP_DEST, BACKGROUND_DUMP_DEST i podobne zostały zastąpione przez: DIAGNOSTIC_DEST Automatic Diagnostic Repository (2/6) [oracle@localhost diag]$ pwd /oracle/app/oracle/diag - tnslsnr - -- localhost - -- -- listener - -- -- -- alert - -- -- -- cdump - -- -- -- incident - -- -- -- incpkg - rdbms - -- ploug - -- -- ploug - -- -- -- alert - -- -- -- cdump - -- -- -- -- core_3568 - -- -- -- hm - -- -- -- incident - -- -- -- -- incdir_6233 - -- -- -- incpkg - -- -- -- trace - -- -- -- -- cdmp_20080207163110 361
Automatic Diagnostic Repository (3/6) 362 363 Automatic Diagnostic Repository (4/6) select * from v$diag_info; Diag Enabled TRUE ADR Base /oracle/app/oracle ADR Home /oracle/app/oracle/diag/rdbms/ploug/ploug Diag Trace /oracle/app/oracle/diag/rdbms/ploug/ploug/trace Diag Alert /oracle/app/oracle/diag/rdbms/ploug/ploug/alert Diag Incident /oracle/app/oracle/diag/rdbms/ploug/ploug/incident Diag Cdump /oracle/app/oracle/diag/rdbms/ploug/ploug/cdump Health Monitor /oracle/app/oracle/diag/rdbms/ploug/ploug/hm Default Trace File /oracle/app/oracle/diag/rdbms/ploug/ploug/trace/ploug_ora_6744.trc Active Problem Count 1 Active Incident Count 1 Automatic Health Monitoring narzędzie monitorujące stan bloków danych wykorzystywanych przez system dziennika powtórzeń segmentów wycofania słownika bazy danych 364 Automatic Diagnostic Repository (5/6) Automatic Diagnostic Repository (6/6) 365 Support Workbench element Enterprise Managera, pozwalający na diagnozowanie problemów z bazą danych, wykrytych przez ADR Incident Packaging Service zbiera dane opisujące problemy występujące z bazą danych i wysyła je do działu pomocy technicznej Oracle Hang Manager rozszerzenie narzędzia Hang Analysis. Pozwala na śledzenie zależności pomiędzy kolejnymi awariami systemu i na typowanie prawdopodobnych przyczyn awarii [oracle@localhost diag]$ adrci ADRCI: Release 11.1.0.6.0 - Beta on Fri Feb 8 01:34:00 2008 Copyright (c) 1982, 2007, Oracle. All rights reserved. ADR base = "/oracle/app/oracle" adrci> show incident ADR Home = /oracle/app/oracle/diag/tnslsnr/localhost/listener: 0 rows fetched ADR Home = /oracle/app/oracle/diag/rdbms/ploug/ploug: INCIDENT_ID PROBLEM_KEY CREATE_TIME 6233 ORA 7445 [kmgs_cancel_any_deferred_req()+233] 2008-02-07 16:30:55.928412 +01:00