Optimalizace SQL dotazů

Slides:



Advertisements
Podobné prezentace
Aplikační a programové vybavení
Advertisements

KIV/ZIS Cvičení 6 SQL - SELECT.
SQL Další dotazy a pohledy
Stavový prostor. • Existují úlohy, pro které není k dispozici univerzální algoritmus řešení • různé hry • problém batohu, problém obchodního cestujícího.
Základy jazyka SQL Jan Tichava
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
DB1 – 9. cvičení Optimalizace dotazu Konkurenční přístup a deadlock Indexace Transakce.
Databázové systémy SQL Výběr dat.
YDASYS1 Ing. Monika Šimková.
Fakulta elektrotechniky a informatiky
Informační systémy Nástroje pro sběr dat, návrh a realizace databáze.
Další dotazy SQL Structured Query Language. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
SQL Structured Query Language
Informatika pro ekonomy II přednáška 11
Fakulta elektrotechniky a informatiky
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 1 Cvičení č. 6 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy I Přednáška č. 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
Temporální Databáze Jaroslav Dražan. Čím se budeme zabývat Proč je čas v DB důležitý Práce s časem pomocí klasického SQL Reprezentace časové domény Spojování.
Co takhle DOTAZY? OBSAH: Y 1) Co jsou to dotazy ve WinBase Y 2) Vytvoření jednoduchého dotazu Y 3) Použití dotazu.
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
Databázové systémy II Přednáška č. 8 – Pohledy (Views)
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Cvičení 04 SQL Exists, Any, All Ing. Pavel Bednář
Fakulta elektrotechniky a informatiky
Architektura databází Ing. Dagmar Vítková. Centrální architektura V této architektuře jsou data i SŘBD v centrálním počítači. Tato architektura je typická.
Databázové systémy I Cvičení č. 9 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Optimalizace SQL dotazů
KIV/ZIS cvičení 6 Tomáš Potužák. Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Stáhnout soubor studenti_dotazy_sql.mdb.
Databázové systémy I Cvičení č. 6 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Databázové systémy Přednáška č. 6.
Název sloupce Datový typ Počet znaků Znaková sada Možnost prázdného pole Typ klíče Automatický přírůstek.
SQL – základní pojmy Ing. Roman Danel, Ph.D.
SQL PVA Jan Hora. SQL „graficky“ Grafický vs. pravý SQL SELECT ORDED BY WHERE.
Databázové systémy II Přednáška č. X Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
Relační propojování tabulek. Úvod Tato prezentace má sloužit běžným uživatelům, jak začátníkům, tak i zkušeným uživatelům. Když budete postupovat podle.
Číslo šablony: III/2 VY_32_INOVACE_P4_3.8 Tematická oblast: Aplikační software pro práci s informacemi II. Databáze – základy SQL Typ: DUM - kombinovaný.
Databáze Dotazy VY_32_INOVACE_7B16. Dotazy umožňuje vybrat určité záznamy z tabulky na rozdíl od filtru vybrané záznamy umístí do samostatné dočasné nebo.
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
EBSCO - základní vyhledávání Lze nastavit jiné zobrazování výsledků.
Optimalizace SQL dotazů Michal Kopecký
Databáze Tabulky. Vytvoření a návrh nové tabulky Tabulku lze vytvořit: na kartě Vytvořit klikněte ve skupině Tabulky na položku Tabulka. importem dat.
Databázové systémy I Cvičení č. 7 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
2OP483 Manažerská informatika 3Access - BankaSnímek 1 2OP483 Manažerská informatika 3 Microsoft Office Access 2007 Dotazy v databázi Banka
Aplikační a programové vybavení
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
KIV/ZIS cvičení 4 Tomáš Potužák. Dotazy - úvod Umožňují pracovat s databází –Získávat specifické informace z tabulky, případně z více tabulek najednou.
Databázové systémy SQL Výběr dat.
Použití dotazu jako zdroj dat pro pohled Vypracovala: Procházková Petra.
Progress SQL92 Optimalizátor Jan Lánský
DBXplorer Systém pro vyhledávání nad relačními databází podle klíčových slov. zpracovala Margarita Vishnyakova.
Administrace Oracle Paralelní zpracování.
Použití dotazu jako zdroje dat pro sestavu Win Base 602 Lenka Šmardová, 4. Y2.
ACCESS DOTAZY Ing. Jana Horáková IKT MS Office
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2015.
Databázové systémy I Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databáze ● úložiště dat s definovaným přístupem ● typy struktury – strom, sekvence, tabulka ● sestává z uspořádaných záznamů ● databáze – struktura – záznam.
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
Databázové systémy I Přednáška 8 Databázové systémy 1 – KIT/IDAS1
Databázové systémy a SQL
Databázové systémy a SQL
Šablona 32 VY_32_INOVACE_038.ICT.34
[ START WITH podmínka ] CONNECT BY podmínka
EBSCO - základní vyhledávání
Přednáška 7 SQL – JOIN.
Přednáška 9 Triggery.
Databázové systémy a SQL
Transkript prezentace:

Optimalizace SQL dotazů

Motivace SQL je velmi flexibilní jazyk. Dvěma či více různými dotazy je možno obdržet stejná data. Rychlost různých dotazů ovšem nemusí být stejná i přesto, že vracejí stejná data.

Rozvrh přednášky Proč optimalizujeme Obecná pravidla pro psaní SQL dotazů Oracle: zpracování SQL dotazů

Proč optimalizujeme? 1/2 Jedním z hlavních důvodů provádění optimalizace v databázových (DB) prostředcích je minimalizace nákladů.

Proč optimalizujeme? 2/2 Jedná se především o minimalizaci nákladů na: zdrojový čas, kapacitu paměti (prostor), programátorskou práci. (= snažíme dosáhnout maximálního výkonu se stávajícími prostředky)

Kdo se na ladění výkonu podílí Návrhář databáze (designer) Vývojář (developer) Správce databáze (DBA) Uživatel

Obecná pravidla pro psaní SQL dotazů Vyjmenovat sloupce Používat co nejméně klauzuli LIKE Používat co nejméně klauzule IN, NOT IN Používat klauzule typu LIMIT Na začátek dávat obecnější podmínky Výběr vhodného pořadí spojení Používat hinty Nastavit indexy

Vyjmenovat sloupce 1/2 V SELECT dotazech nepoužívat v seznamu sloupců hvězdičku (*) Ve většině případů nepracujeme se všemi sloupci výsledku SELECT * FROM Lide SELECT Jmeno, Prijmeni FROM Lide

Vyjmenovat sloupce 2/2 Používáte-li v SELECT dotazu všechny sloupce, používejte také výpis jednotlivých sloupců Databáze nemusí zjišťovat seznam sloupců tabulky

Používat co nejméně klauzuli LIKE Nedoporučuje se používat pro vyhledávání ve velkých textových polích (můžou obsahovat až několik GB textu) Zamyslet se, zda nejde vyhledávání provést jinou metodou

Používat co nejméně klauzuli IN, NOT IN Vhodnější je použití příkazů WHERE a WHERE NOT EXISTS ... WHERE Doprava IN ('Ford', 'Octavia', 'Seat', 'Peugeot'); ... WHERE Typ_Dopravy = 'Automobil';

Používat klauzule typu LIMIT 1/2 V případech, kdy vybíráme např. nejstaršího člověka, můžeme použít dotaz: SELECT Jmeno, Prijmeni FROM Lide ORDER BY Vek DESC Dotaz vybere všechny záznamy, které následně sestupně setřídí

Používat klauzule typu LIMIT 2/2 Lepší řešení: SELECT Jmeno, Prijmeni FROM Lide ORDER BY Vek DESC LIMIT 0,1

Na začátek dávat obecnější podmínky 1/3 V klauzuli WHERE dávat na začátek podmínky, po kterých vypadne ze seznamu nejvíce záznamů :-/

Na začátek dávat obecnější podmínky 2/3 Příklad: V tabulce Lide hledáme ženy starší 18 let SELECT Jmeno, Prijmeni FROM Lide WHERE Pohlavi = 'Z' AND Vek > 18

Na začátek dávat obecnější podmínky 3/3 DS nejprve vyhledá záznamy, vyhovující první podmínce, z nich pak vybírá záznamy vyhovující druhé podmínce Snažíme se, aby systém vyřadil na začátku co nejvíce řádků; ty se pak již při další podmínce nezkoumají…

Výběr vhodného pořadí spojení vyhnout se plnému prohledávání tabulky (pokud možno využít index) efektivně vybírat takové indexy, které načtou z tabulky co nejméně záznamů vybrat takové pořadí spojení ze všech možných pořadí, aby bylo spojeno co nejméně položek

Další rady Použití UNION ALL místo UNION Spojování tabulek s využitím indexů Vytváření indexů pro atributy podle nichž se třídí v klauzili ORDER BY Provádění analýzy na indexovaných sloupcích

Nastavit indexy Procházení tabulky pomocí indexu trvá mnohem kratší dobu než procházení tabulky bez jeho použití. Změna indexů se zdá být nejlepším řešením pro optimalizaci, jelikož má větší sílu než změna SQL dotazu či změna dat. Samotné vytvoření indexů však nelze brát v úvahu jako univerzální řešení problému.