Optymalizacja zapytań

Transkrypt

Optymalizacja zapytań
Optymalizacja zapytań W instrukcji podane są odnośniki do podręcznika optymalizacji zapytań: „Oracle9i Database Performance Tuning Guide and Reference” Efektem ćwiczenia jest sprawozdanie zawierające analizy / statystyki / komentarze dotyczące poniższych punktów. 1. Tryb optymalizatora zapytań
Zmienić tryb optymalizatora zapytań: ALTER SESSION SET OPTIMIZER_MODE = tryb;
Lista dostępnych trybów optymalizatora omówiona na stronie 1‐7. Interesujące tryby to: Rule oraz Choose. Dla każdego trybu pracy optymalizatora zbadać koszt wykonania zapytań. W tym celu należy wykorzystać kilka zapytań stworzonych pod kątem aplikacji. Należy wykorzystać polecenie explain plan do zebrania informacji o badanych zapytaniach. W badaniu należy porównać podejścia: • bez użycia indeksów, • z indeksami. Wskazanie wykorzystania odpowiednich struktur następuje przez zastosowanie wskazówek (ang. hints) dla optymalizatora (str. 5‐1). Przykłady wykorzystania wskazówek: SELECT /*+ INDEX(patients sex_index) use sex_index because there are few
male patients */ name, height, weight
FROM patients
WHERE sex = ’m’;
SELECT /*+NO_INDEX(employees emp_empid)*/ employee_id
FROM employees
WHERE employee_id > 200;
2. Statystyki Optymalizator kosztowy do swoich oszacowań wykorzystuje statystyki (str. 3‐1). W celu zebrania statystyk dot. tabel i kolumn w przestrzeni tabel OE z automatycznym próbkowaniem należy użyć polecenia: EXECUTE DBMS_STATS.GATHER_SCHEMA_STATS('OE',DBMS_STATS.AUTO_SAMPLE_SIZE);
Statystyki dot. tabeli: EXECUTE DBMS_STATS.GATHER_TABLE_STATS('rbembeni', 'emp');
Uwuwanie statystyk: execute dbms_stats.delete_table_stats('rbembeni', 'emp');
Statistics on tables, indexes, and columns are stored in the data dictionary. To view statistics in the data dictionary, query the appropriate data dictionary view (USER, ALL, or DBA). These DBA_* views include the following: •
•
DBA_TABLES
DBA_OBJECT_TABLES
•
•
•
•
•
•
•
•
•
•
•
•
•
•
DBA_TAB_STATISTICS
DBA_TAB_COL_STATISTICS
DBA_TAB_HISTOGRAMS
DBA_INDEXES
DBA_IND_STATISTICS
DBA_CLUSTERS
DBA_TAB_PARTITIONS
DBA_TAB_SUBPARTITIONS
DBA_IND_PARTITIONS
DBA_IND_SUBPARTITIONS
DBA_PART_COL_STATISTICS
DBA_PART_HISTOGRAMS
DBA_SUBPART_COL_STATISTICS
DBA_SUBPART_HISTOGRAMS
3. Koszt realizacji zapytań Zbadaj koszt realizacji zapytań dla tabel posiadających statystyki / nie posiadających statystyk. Wybierz w tym celu jedną tabelę, która posiada relatywnie dużo danych / stwórz tabelę z 4 kolumnami i 10 tys. rekordów. Załóż indeksy na każdej kolumnie tabeli. Zbadaj koszt wykonania zapytań dla tej tabeli (z indeksem vs. bez użycia indeksu). 

Podobne dokumenty