Zapytania z ograniczeniem czasowym w Oracle

Podobne dokumenty
Wykład XII. optymalizacja w relacyjnych bazach danych

Politechnika Poznańska TWO

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

3. Podzapytania, łączenie tabel i zapytań

Map Reduce Proste zliczanie słów i zapytania SQL

PODZAPYTANIE (SUBSELECT)

Oracle11g: Wprowadzenie do SQL

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

Relacyjne bazy danych. Podstawy SQL

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na

Systemy GIS Tworzenie zapytań w bazach danych

Optymalizacja poleceń SQL Wprowadzenie

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

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Optymalizacja poleceń SQL Metody dostępu do danych

Paweł Rajba

Wykład 6. SQL praca z tabelami 3

Technologie baz danych

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Gdzie jest moja tabela?

AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie. Wydział Geologii, Geofizyki i Ochrony Środowiska. Bazy danych 2

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

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

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

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

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

Relacyjne bazy danych. Podstawy SQL

Podzapytania do tabel W miejscu w którym możemy użyć nazwy tabeli, możemy użyć podzapytania

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

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

Język SQL. Rozdział 2. Proste zapytania

Podstawowe zapytania SELECT (na jednej tabeli)

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

Dr Michał Tanaś(

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

Pony ORM. Dominik Kozaczko, PyWaw #73

Kostki OLAP i język MDX

Ćwiczenie zapytań języka bazy danych PostgreSQL

Microsoft SQL Server Podstawy T-SQL

Specyfika języka SQL powoduje, że łatwiej jest najpierw wytłumaczyć, jak korzystać z funkcji grupujących, a dopiero później jak grupować dane.

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe

a) ile wynosiła populacja najbardziej i najmniej ludnego z województw (oraz jakie były ich nazwy)

Tuning SQL Server dla serwerów WWW

Optymalizacja wydajności SZBD

E.14 Bazy Danych cz. 13 SQL Grupowanie danych i funkcje grupujące

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

SQL (ang. Structured Query Language)

Przestrzenne bazy danych Podstawy języka SQL

DB2 with BLU acceleration rozwiązanie in-memory szybsze niż pamięć operacyjna&

Plan. ! Podzapytania (subqueries) ! Podzapytania do tabel. ! Podzapytanie jako wyrażenie. ! Podzapytania skorelowane. ! operatory IN, NOT IN

Wprowadzenie do języka SQL

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Optymalizacja poleceń SQL

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

ACESS- zadania z wykorzystaniem poleceń SQL

Język SQL, zajęcia nr 1

Laboratorium 10. Odkrywanie cech i algorytm Non-Negative Matrix Factorization.

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

Optymalizacja poleceń SQL Statystyki

NORTHWIND. Anonco.pl. ćwiczenia praktyczne. KiK s Tutorials. NORTHWIND dwiczenia praktyczne. ANONCO.PL/SQL SQLSERVERDLAOPORNYCH.WORDPRESS.

SQL praca z tabelami 4. Wykład 7

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

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Ref. 7 - Język SQL - polecenia DDL i DML

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Rozproszone bazy danych 3

Przydatne sztuczki - sql. Na przykładzie postgres a.

Język SQL, zajęcia nr 2

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

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

Hurtownie danych. Przetwarzanie zapytań. ZAPYTANIA NA ZAPLECZU

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Bazy danych wykład trzeci. Konrad Zdanowski

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Baza danych Uczniowie.mdb

Autor: Joanna Karwowska

Język SQL podstawy zapytań

Wykład 8. SQL praca z tabelami 5

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

Struktura drzewa w MySQL. Michał Tyszczenko

Administracja i programowanie pod Microsoft SQL Server 2000

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Wykład 05 Bazy danych

Block Change Tracking

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

STROJENIE BAZ DANYCH: INDEKSY. Cezary Ołtuszyk coltuszyk.wordpress.com

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

Autor: Joanna Karwowska

Wykład 5. SQL praca z tabelami 2

Grupowanie i funkcje agregujące

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

Operacja PIVOT w języku SQL w środowisku Oracle

Zarządzanie obiektami bazy danych Oracle11g

DMX DMX DMX DMX: CREATE MINING STRUCTURE. Tadeusz Pankowski

Tworzenie aplikacji bazodanowych w delphi dla dużych baz danych FRAMEWORK IMPET

Teoretyczne podstawy informatyki

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Systemy internetowe. Wykład 4 mysql. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Transkrypt:

22 stycznia 2009

Tytuł oryginalny Supporting Time-Constrained Queries in Oracle Ying Hu, Seema Sundara, Jagannathan Srinivasan Oracle New England Development Center VLDB 2007 Materiały żródłowe: referat, slajdy

Postawienie problemu

Postawienie problemu Coraz większe bazy danych Gigabajty, terabajty, petabajty Skomplikowane zapytania SQL GROUP BY ORDER BY JOIN Efekt: Zapytania trwające sekundy, minuty... Trudny do przewidzenia czas trwania zapytań

Czas to pieniądz Czasem ważniejsza od odpowiedzi dokładnej jest odpowiedź szybka Oczekiwanie nie wiadomo ile na wynik zapytania jest niedopuszczalne

Przykłady Systemy wspomagania decyzji Chcemy uzyskać częściowe wyniki, żeby na ich podstawie zauważyć trendy (np wzrost sprzedaży w różnych regionach) Aplikacje mobilne Użytkownik jadący samochodem pyta o najbliższe kawiarnie w mieście przez które przejedzie za 2 minuty

Zwracanie pierwszych n wyników SELECT name FROM employees WHERE ROWNUM <= 100; Top-k queries: zwracanie k wyników o najwyższej randze w Oracle klauzula ROWNUM + ORDER BY Przybliżone wyniki: na podstawie losowej próbki rekordów SELECT sold item FROM transactions WHERE year = 2005 SAMPLE BLOCK(10); Zastosowanie narzędzi optymalizacyjnych w Oracle np. polecenie EXPLAIN PLAN

Wady istniejących rozwiązań Za zastosowanie tych mechanizmów odpowiada użytkownik Jak przetłumaczyć zadane ramy czasowe na odpowiednie zapytanie? Nadal nie ma gwarancji, że zapytanie zawsze zakończy się w określonym czasie

Dodatkowa klauzula w zapytaniu SELECT określająca ograniczenie czasowe: Typ ograniczenia: miękki, twardy Limit czasu: w sekundach Rodzaj wyniku: częściowy, przybliżony O zmieszczenie się w ramach czasowych niech już zadba sama baza danych

Działanie zapytań z ograniczeniem czasowym Rodzaj zwracanych odpowiedzi: wynik częściowy: pierwsze n wyników lub wyniki o najwyższej randze (gwarancja dokładności) wynik przybliżony: na podstawie próbki danych Rodzaj ograniczenia czasowego miękkie: oczekiwany czas zakończenia zapytania twarde: zapytanie musi się zakończyć w danym czasie Jeśli zapytanie skończy się szybciej, wynik może być dokładny

Składnia Postawienie problemu Ograniczenia miękkie Ograniczenia twarde SELECT... FROM... WHERE... GROUP BY... HAVING... ORDER BY... [ [SOFT HARD] TIME CONSTRAINT (T) [WITH APPROXIMATE PARTIAL RESULT ];

Schemat działania Postawienie problemu Ograniczenia miękkie Ograniczenia twarde Zapytanie częściowe przekształcane za pomocą klauzuli ROWNUM Zapytanie przybliżone przekształcane za pomocą klauzuli SAMPLE Przykład: Przed: SELECT AVG(salary) FROM employees SOFT TIME CONSTRAINT (50) WITH APPROXIMATE RESULT; Po: SELECT AVG(salary) FROM employees SAMPLE BLOCK (10);

Zapytanie z miękkim ograniczeniem Ograniczenia miękkie Ograniczenia twarde Definicja: Dla zapytania Q z miękkim ograniczeniem czasowym t sek., czas T estimated (Q ) oszacowany przez optymalizator BD ma mieć wartość z zakresu [t d, t] gdzie Q - zapytanie w postaci przekształconej, d - mały przedział

Ograniczenia miękkie Ograniczenia twarde Zapytanie z twardym ograniczeniem Definicja: Dla zapytania Q z twardym ograniczeniem czasowym t sek., czas T elapsed (Q ) trwania zapytania musi być <= t gdzie Q - zapytanie w postaci przekształconej

Ograniczenia miękkie Ograniczenia twarde Właściwa trudność Dla zapytań częściowych - oszacowanie ilości zwracanych wyników Dla zapytań przybliżonych - oszacowanie rozmiaru próbki, oraz zdecydowanie na których tabelach ma być dokonane próbkowanie (w przypadku zapytań na wielu tabelach naraz) Zapewnienie, że oszacowany czas mieści się w zadanym ograniczeniu

Ograniczenia miękkie Ograniczenia twarde Szacowanie rozmiaru próbki Zał. mamy funkcję f Q (s) - czas potrzebny na wykonanie zapytania Q w zależności od rozmiaru próbki danych s (Analogicznie f Q (r) - czas wykonania zapytania Q w zależności od ilości zwracanych wyników r) Wtedy dla danego ograniczenia czasowego t, f Q (s) = t Szukane s jest miejscem zerowym f Q (s) t = 0

Ograniczenia miękkie Ograniczenia twarde Szacowanie rozmiaru próbki 1. Sprawdź szacowany czas trwania T Q dla oryginalnego zapytania Q 2. Jeśli T Q < t - nie trzeba nic robić 3. Jeśli T Q > t - przekształć Q za pomocą ROWNUM lub SAMPLE na zapytanie Q 4. Oszacuj czas trwania T Q dla zapytania Q, startując od minimalnego rozmiaru próbki 5. Jeśli T Q > t - ERROR: NEED MORE TIME 6. Iteruj algorytmem znajdowania MZ, aż T Q [t d, t]

Ograniczenia miękkie Ograniczenia twarde Zatem skąd wziąć funkcję f Q ()? W Oracle są już narzędzia do optymalizacji zapytań Wcześniej używano ich do szacowania czasu działania konkretnych zapytań Można ich użyć do szacowania czasu działania zapytań z ograniczeniem czasowym

Ograniczenia miękkie Ograniczenia twarde Polecenie EXPLAIN PLAN Pozwala użytkownikowi poznać plan wykonania zadanego zapytania SQL Opisuje kolejność złączania tabel, sposób dostępu do tabel (pełne skanowanie / użycie indeksu) Wybiera najlepszy plan wykonania Szacuje czas wykonania

Polecenie EXPLAIN PLAN Ograniczenia miękkie Ograniczenia twarde SELECT x from lineitem, part WHERE l partkey = p partkey AND l shipdate >= date 1995-09-01 AND l shipdate < date 1995-10-01 ORDER BY x; Szacowany czas wykonania możemy użyć w funkcji f Q ()

Ograniczenia miękkie Ograniczenia twarde Schemat działania - ograniczenie twarde 1. Przekształć zapytanie tak jak dla miękkiego ograniczenia czasowego 2. Wygeneruj plan wykonania zapytania (EXPLAIN PLAN) i użyj oszacowań czasowych do: utworzenia licznika zatrzymującego zapytanie po pewnym czasie utworzenia liczników dla każdej operacji blokującej w zapytaniu

Operacje blokujące Postawienie problemu Ograniczenia miękkie Ograniczenia twarde Operacje blokujące zaczynają zwracać wyniki dopiero po skonsumowaniu jednego ze źródeł danych wejściowych SELECT x from lineitem, part WHERE l partkey = p partkey AND l shipdate >= date 1995-09-01 AND l shipdate < date 1995-10-01 ORDER BY x; Sortowanie ORDER BY jest blokujące Źródło danych wejściowych - złączenie tabel lineitem, part

Ograniczenia miękkie Ograniczenia twarde Utworzenie liczników na podstawie EXPLAIN PLAN id = 0 timer dla zapytania 300 s id = 1 timer dla operacji blokującej 300 s id = 3 timer dla operacji blokującej 270 s

Środowisko do eksperymentów Zapytanie na pojedynczej tabeli z agregacją Złączenie 4 tabel z GROUP BY i ORDER BY Platforma: Intel P4, 3GHz, Hyper Threading, 2 GB RAM RedHat Enterprise Linux 3, Oracle 10g Release 2 Enterprise Edition Parametry bazy danych: Rozmiar bloku = 8192, rozmiar cache = 160MB Zestaw danych: Baza TPC-H - standard do benchmarków rozmiar bazy 10GB, 6 tabel 2 największe tabele mają 60 mln i 15 mln wierszy

Zapytanie na pojedynczej tabeli z agregacją Złączenie 4 tabel z GROUP BY i ORDER BY Zapytanie na pojedynczej tabeli z agregacją Zapytanie na tabeli o 60 milionach wierszy: SELECT SUM(l extendedprice * l discount) AS revenue FROM lineitem WHERE l shipdate >= date 1994-01-01 AND l shipdate < date 1994-01-01 + interval 1 year AND l discount between 0.06-0.01 and 0.06 + 0.01 AND l quantity < 24 SOFT TIME CONSTRAINT (x) WITH APPROXIMATE RESULT;

Zapytanie na pojedynczej tabeli z agregacją Złączenie 4 tabel z GROUP BY i ORDER BY Zapytanie na pojedynczej tabeli z agregacją Miękkie ograniczenie czasowe = 10%, 20%,... oryginalnego czasu zapytania Optymalizator źle oszacował czas wykonania zapytań Mimo wszystko czas trwania się skrócił

Zapytanie na pojedynczej tabeli z agregacją Złączenie 4 tabel z GROUP BY i ORDER BY Złączenie 4 tabel z GROUP BY i ORDER BY SELECT c custkey, c name, sum(l extendedprice * (1 - l discount)) AS revenue, c acctbal, n name, c address, c phone, c comment FROM customer, orders, lineitem, nation WHERE c custkey = o custkey AND l orderkey = o orderkey AND o orderdate >= date 1993-10-1 AND o orderdate < date 1993-10-1 + interval 3 month AND l returnflag = R AND c nationkey = n nationkey GROUP BY c custkey, c name, c acctbal, c phone, n name, c address, c comment ORDER BY revenue DESC SOFT TIME CONSTRAINT (x) WITH APPROXIMATE RESULT;

Zapytanie na pojedynczej tabeli z agregacją Złączenie 4 tabel z GROUP BY i ORDER BY Złączenie 4 tabel z GROUP BY i ORDER BY Miękkie ograniczenie czasowe = 10%, 20%,... oryginalnego czasu zapytania Próbkowanie SAMPLE włączone tylko dla największej tabeli (60 mln wierszy) Ograniczenie czasowe działa skutecznie