Optymalizacja poleceń SQL Metody dostępu do danych

Podobne dokumenty
Statystyki (1) Optymalizacja poleceń SQL Część 2. Statystyki (2) Statystyki (3) Informacje, opisujące dane i struktury obiektów bazy danych.

Optymalizacja poleceń SQL

"Kilka słów" o strojeniu poleceń SQL w kontekście Hurtowni Danych wprowadzenie. Krzysztof Jankiewicz

Optymalizacja poleceń SQL Indeksy

Cwiczenie 2. Metody dostępu do danych

INDEKSY. Biologiczne Aplikacje Baz Danych. dr inż. Anna Leśniewska

Język SQL. Rozdział 2. Proste zapytania

Optymalizacja poleceń SQL

Cwiczenie 4. Połączenia, struktury dodatkowe

Indeksowanie w bazach danych

Indeksy. Rozdział 18. Indeksy. Struktura indeksu. Adres rekordu

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Podstawowe zapytania SELECT (na jednej tabeli)

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe

Wprowadzenie do języka SQL

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

Optymalizacja poleceń SQL Wprowadzenie

Widok Connections po utworzeniu połączenia. Obszar roboczy

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów.

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

Optymalizacja poleceń SQL Statystyki

Strojenie poleceń SQL. (c) Instytut Informatyki Politechniki Poznańskiej 221

Strojenie poleceń SQL. (c) Instytut Informatyki Politechniki Poznańskiej 221

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Przestrzenne bazy danych Podstawy języka SQL

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING.

SQL (ang. Structured Query Language)

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach

Język SQL. Rozdział 8. Język manipulowania danymi DML

Kosztowy optymalizator zapytań

ACESS- zadania z wykorzystaniem poleceń SQL

Wykład 5. SQL praca z tabelami 2

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Wprowadzenie do baz danych

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Systemy GIS Tworzenie zapytań w bazach danych

Ćwiczenie zapytań języka bazy danych PostgreSQL

Indeksy. Indeks typu B drzewo

Ć wiczenie 3. Statystyki, wskazó wki

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

sprowadza się od razu kilka stron!

Ćwiczenie 3 funkcje agregujące

SQL SERVER 2012 i nie tylko:

Wykład XII. optymalizacja w relacyjnych bazach danych

Optymalizacja w relacyjnych bazach danych - wybór wydajnej strategii obliczania wyrażenia relacyjnego.

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

Rozproszone bazy danych 3

Bazy danych - BD. Indeksy. Wykład przygotował: Robert Wrembel. BD wykład 7 (1)

Optymalizacja. Plan wykonania polecenia SQL (1) Plan wykonania polecenia SQL (2) Rozdział 19 Wprowadzenie do optymalizacji poleceń SQL

Tabela wewnętrzna - definicja

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Fazy przetwarzania polecenia SQL. Faza parsingu (2) Faza parsingu (1) Optymalizacja poleceń SQL Część 1.

Zapytania, złączenia, optymalizacja zapytań, planowanie zapytań, optymalizacja indeksów.

SQL do zaawansowanych analiz danych część 1.

Technologie baz danych

Bazy Danych i Usługi Sieciowe

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. zadania

Autor: Joanna Karwowska

Klasyczna Analiza Danych

Relacyjne bazy danych. Podstawy SQL

Indeksy w hurtowniach danych

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Fizyczna struktura bazy danych w SQL Serwerze

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

Podstawy języka SQL cz. 2

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

3. Podzapytania, łączenie tabel i zapytań

Podzapytania. SELECT atrybut_1, atrybut_2,... FROM relacja WHERE atrybut_n operator (SELECT atrybut_1, FROM relacja WHERE warunek

Optymalizacja zapytań

Wydajność hurtowni danych opartej o Oracle10g Database

P o d s t a w y j ę z y k a S Q L

Laboratorium Bazy danych SQL 2

Język SQL, zajęcia nr 1

Autor: Joanna Karwowska

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Wymagania: Konstrukcja prostych zapytań w języku SQL, umiejętność wykorzystania funkcji wierszowych i agregujących.

Bazy danych 11. Algorytmy złaczeń. P. F. Góra

Laboratorium Bazy danych SQL 3 1

Relacyjne bazy danych. Podstawy SQL

Wykład 6. SQL praca z tabelami 3

Optymalizacja zapytań. Proces przetwarzania i obliczania wyniku zapytania (wyrażenia algebry relacji) w SZBD

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

SQL - Structured Query Language. strukturalny język zapytań

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Systemy OLAP II. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska

Bazy danych. Plan wykładu. Przetwarzanie zapytań. Etapy przetwarzania zapytania. Translacja zapytań języka SQL do postaci wyrażeń algebry relacji

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

PODZAPYTANIE (SUBSELECT)

060 SQL FIZYCZNA STRUKTURA BAZY DANYCH. Prof. dr hab. Marek Wisła

STROJENIE PRZETWARZAŃ SAS

Optymalizacja wydajności SZBD

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Transkrypt:

Optymalizacja poleceń SQL Metody dostępu do danych 1

Metody dostępu do danych Określają, w jaki sposób dane polecenia SQL są odczytywane z miejsca ich fizycznej lokalizacji. Dostęp do tabeli: pełne przeglądnięcie, dostęp przy pomocy adresu rekordu. Dostęp do indeksu: unikalne przeglądnięcie indeksu, (odwrócone) zakresowe przeglądnięcie indeksu, przeglądnięcie indeksu z pominięciem kolumn, pełne przeglądnięcie indeksu, szybkie pełne przeglądnięcie indeksu, dostęp do indeksu bitmapowego, połączenie indeksów. Przy dostępie do indeksu dane zwykle zwracane w kolejności rosnącej. Ogólne zasady dostępu do danych: odczyt dużej części rekordów relacji pełne przeglądnięcie relacji, odczyt pojedynczych rekordów relacji dostęp za pomocą indeksu. 2

Dostęp do tabeli Pełne przeglądniecie tabeli Ang. full table scan Sekwencyjny odczyt wszystkich bloków danych, w których tabela przechowuje swoje rekordy, odfiltrowanie rekordów nie spełniających zdefiniowanych w poleceniu SQL kryteriów selekcji (np. w klauzuli WHERE). Stosowane gdy: brak indeksu dla relacji lub nie można użyć istniejących indeksów, zostanie odczytana duża część wszystkich bloków, w których tabela składuje swoje dane, rozmiar tabeli jest niewielki. DB_FILE_MULTIBLOCK_READ_COUNT Możliwy odczyt wieloblokowy pobranie w jednej operacji I/O wielu przyległych bloków danych, bardziej efektywne niż wiele odczytów pojedynczych bloków. 3

Dostęp do tabeli Dostęp przy pomocy adresu rekordu Ang. rowid scan Odszukanie rekordu relacji na podstawie dostarczonego adresu rekordu (rowid). Najszybszy sposób dostępu do rekordów tabeli. Źródło adresu rekordu: warunek selekcji polecenia SQL, SELECT * FROM pracownicy WHERE rowid = AAAMMUAAEAAAAAtAAG ; pobranie z indeksu tabeli. 4

Unikalne przeglądnięcie indeksu Ang. index unique scan Dostęp do indeksu unikalnego, operacja zwraca co najwyżejjeden adres rekordu. Stosowane, gdy w poleceniu SQL zastosowano warunek równościowy z atrybutem, na którym zdefiniowano indeks unikalny (również ograniczenia klucz podstawowy i klucz unikalny). 5

Zakresowe przeglądnięcie indeksu Ang. index range scan Dostęp do indeksu unikalnego (warunek inny niż równościowy) lub nieunikalnego, operacja zwraca zakres adresów rekordów. Stosowane, gdy w poleceniu SQL: warunek selekcji z kolumnami z części wiodącej indeksu, taki jak: kolumna = wartość, kolumna > wartość, kolumna < wartość, kolumna like ABC% (% nie może być na początku wzorca), warunek złożony z ww. warunków ze spójnikiem AND, klauzula ORDER BY lub GROUP BY z atrybutami z części wiodącej indeksu. 6

Odwrócone zakresowe przeglądnięcie indeksu Ang. index range scan descending Odmiana zakresowego przeglądnięcia indeksu. Dane zwracane w kolejności malejącej. Stosowane, gdy: w poleceniu konieczne posortowanie danych w porządku malejącym, przy poszukiwaniu wartości mniejszych niż wartość wyspecyfikowana. 7

Przeglądnięcie indeksu z pominięciem kolumn Ang. index skip scan Operacja korzystająca z indeksu złożonego dla polecenia, w którym nie występuje kolumna z początku części wiodącej klucza indeksowego: indeks dzielony jest na mniejsze podindeksy, liczba podindeksów jest równa liczbie wartości pierwszej kolumny w kluczu indeksowym, podindeksy skanowane są kolejno operacja zastępuje pełne przeglądnięcie relacji. Przykład: relacja Pracownicy(id_prac, adres, płeć), indeks o strukturze klucza: (płeć, id_prac), zapytanie: select * from Pracownicy where id_prac = 100 indeks zostaje podzielony na dwa podindeksy: dla wartości płeć = M i dla wartości płeć = K, podindeksy zostają przeskanowane kolejno. 8

Pełne przeglądnięcie indeksu Ang. full index scan Stosowane, gdy: w warunku polecenia SQL odwołania do kolumn z klucza indeksowego, kolumny nie muszą być częścią wiodącą klucza, brak odwołań do poindeksowanych kolumn w warunku polecenia, ale: wszystkie kolumny, do których występuje odwołanie w poleceniu (np. w klauzuli SELECT), znajdują się w kluczu indeksowym, przynajmniej jedna z tych kolumn ma zdefiniowane ograniczenie NOT NULL. Odczytywane są wszystkie liście indeksu w porządku, bloki indeksu odczytywane pojedynczo. Używane głównie do eliminacji operacji sortowania relacji dane są posortowane wg klucza indeksowego. 9

Szybkie pełne przeglądnięcie indeksu Ang. fast full index scan Stosowane, gdy: wszystkie kolumny, które są używane w poleceniu SQL, występują w kluczu indeksowym, co najmniej jedna z tych kolumn ma zdefiniowane ograniczenie NOT NULL. Zastępuje pełne przeglądnięcie relacji wynik polecenia SQL uzyskuje się bezpośrednio z indeksu, bez konieczności dostępu do relacji. Odczytywane są wszystkie liście indeksu przy zastosowaniu odczytu wieloblokowego większa wydajność niż pełne przeglądnięcie indeksu, ale nie zostaje zachowane uporządkowanie. Nie może być używany do eliminacji operacji sortowania relacji dane nie są posortowane wg klucza indeksowego. 10

Dostęp do indeksu bitmapowego Składa się z dwóch kroków: 1. dostęp do bitmapy, 2. konwersja bitmapy do adresów rekordów (krok opuszczany w przypadku możliwości realizacji polecenia bez dostępu do relacji). W przypadku poleceń z warunkiem złożonym (spójniki AND i OR, negacja), operacje koniunkcji, alternatywy i negacji wykonywane bezpośrednio na bitmapach (widoczne w planie wykonania polecenia). 11

Połączenie indeksów Ang. index join Stosowane w przypadku, gdy wszystkie kolumny, używane w poleceniu SQL, znajdują się w kluczach kilku różnych indeksów. Wynik polecenia uzyskuje się tylko z indeksów, bez konieczności dostępu do relacji. Nie może być stosowane do eliminacji operacji sortowania relacji. Przykład: SELECT id_prac FROM pracownicy WHERE placa_pod >1000; Range scan(indeks na placa_pod) placa_pod ROWID 1600 00000001.001.001...... 2000 00000001.0A1.01E join (hash) 120... 140 Fast Full Scan(indeks na id_prac) id_prac 120... 140 ROWID 00000001.0A1.01E... 00000001.001.001 12

Operacje sortowania (1) SORT ORDER BY gdy w poleceniu wyrażenie ORDER BY. SELECT * FROM zespoly ORDER BY adres DESC; SORT AGGREGATE gdy w poleceniu wyliczana funkcji grupowa na całym zbiorze rekordów. SELECT MAX(zatrudniony) FROM pracownicy; SORT (HASH) GROUP BY gdy w poleceniu wyliczana funkcji grupowa dla kilku grup rekordów. SELECT etat, AVG(placa_pod) FROM pracownicy GROUP BY etat; 13

Operacje sortowania (2) SORT (HASH) UNIQUE gdy w poleceniu użyto klauzuli DISTINCT. Uwaga! SELECT DISTINCT etat FROM pracownicy; Nie można zakładać uzyskania posortowanego zbioru rekordów przy operacjach GROUP BY i DISTINCT. SORT JOIN przy wykonywaniu operacji połączenia wg algorytmu sort merge. SELECT * FROM pracownicy JOIN etatyon placa_pod between placa_min and placa_max; 14