Databáze 2011/2012. Optimalizace, základní konstrukty T-SQL RNDr.David Hoksza, Ph.D.

Podobné dokumenty
Databáze. Optimalizace, základní konstrukty T-SQL David Hoksza

Databáze 2011/2012 T-SQL - kurzory, funkce. RNDr.David Hoksza, Ph.D.

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D.

Databáze 2011/2012 SQL SELECT II. RNDr.David Hoksza, Ph.D.

FRONTA. Podobně jako u zásobníku lze prvek z fronty vyjmout pouze za takové podmínky, že je na řadě. Avšak jeho hodnotu můžeme přečíst kdykoliv.

4 Datový typ, proměnné, literály, konstanty, výrazy, operátory, příkazy

Sledování provedených změn v programu SAS

Transakce Profinit. All rights reserved.

Helios Orange Plugin Zadávání vlastností

Databázové systémy Cvičení 5.2

Databázové systémy I. - II. 2009/2010

TEORIE ZPRACOVÁNÍ DAT Cvičení 8

Databáze 2011/2012 Konceptuální model DB. RNDr. David Hoksza, Ph.D.

Vykreslení obrázku z databázového sloupce na referenční bod geometrie

Databázové systémy I

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Databázové systémy úvod

HTML šablona v MarushkaDesignu

Text úlohy. Systémový katalog (DICTIONARY):

Databáze 2011/2012. Logický model DB. RNDr.David Hoksza, Ph.D.

Portál veřejné správy

Portál veřejné správy

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Vizualizace TIN (trojúhelníková nepravidelná síť) v Marushka Designu

Verzování a publikace dat na webu za pomoci PostgreSQL

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

Informační ikony v MarushkaDesignu

ZŠ ÚnO, Bratří Čapků 1332

Práce s WKT řetězci v MarushkaDesignu

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Témata v MarushkaDesignu

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Spisová služba/elisa - Dodatek k manuálu - subverze 1.28

Eda. Evidence obchodních aktivit. Proces nákupu

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

Kód v databázi. RNDr. Ondřej Zýka

SQL - trigger, Databázové modelování

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

Modul pro vyhodnocení ročních výsledků finančních kontrol

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Instalace a technické informace

Plánování směn verze 2.1, revize 03

Informační systémy 2008/2009. Radim Farana. Obsah. Skripty a dávky. Nastavení aktuální databáze. USE DatabaseName

Databáze SQL SELECT. David Hoksza

Kapitola 6: Omezení integrity. Omezení domény

Autorizace mapového serveru

Databáze I. Přednáška 4

Optimalizace Profinit. All rights reserved.

Metadata Profinit. All rights reserved.

Možnosti připojení WMS služby do Klienta v Marushka Designu

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Projektový manuál: SME Instrument Brno

GLOBÁLNÍ ARCHITEKTURA ROB

Design databáze. MI-DSP 2013/14 RNDr. Ondřej Zýka,

Úvod do databázových systémů

Jazyk SQL databáze SQLite. připravil ing. petr polách

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

Databázové systémy. Cvičení 6: SQL

Upomínky a kontroly E S O 9 i n t e r n a t i o n a l a. s.

Pravidla pro poskytování příspěvku na náklady spojené s reprezentací mládeže na mezinárodních závodech v roce 2013

Generování Homepage ze serveru AReality.sk

Dotaz typu Common Info v MarushkaDesignu

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1

Configuration Management

Odpisy a opravné položky pohledávek

VIS ČAK - Uživatelský manuál - OnLine semináře

Prováděcí předpisy pro soutěžní lezení pro rok 2014

5. Zobrazení stručné informace o právě běžícím programu. 6. Zobrazení podrobné informace o právě běžícím programu

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years

Jazyk PL/SQL Úvod, blok

MS Word pro administrátory projektů Základy

8.2 Používání a tvorba databází

Nastavení funkce pro Elektronickou evidenci tržeb EET v programu Aconto

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

ŽENSKÝ POHÁR 2015 PROPOZICE SOUTĚŽE

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná

- Aplikace je napsána v C#.NET, je instalována na webovém serveru - Data jsou ukládána v databázi MS-SQL 2005 a vyšší

PG 9.5 novinky ve vývoji aplikací

Změna Sazebníku KB pro podniky a municipality v obsluze Korporátních a Obchodních divizí k nové znění měněných bodů

Obsah cvic ení procvic ovane dovednosti

Integrace dat Profinit. All rights reserved.

Portál veřejné správy

Tile systém v Marushka Designu

Naxos MULTIMEDIÁLNÍ ARCHIV

16. Kategorizace SW chyb, kritéria korektnosti a použitelnosti, spolehlivost SW

DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY

Metodický návod na pořádání soutěží OBEDIENCE CZ.

Popis souboru pro generování reportů *.report

Databázové systémy a SQL

Školení obsluhy PC stručný manuál obsluhy pro používání PC. MS Power Point

REZERVACE24 S.R.O. PROVOZOVATEL SYSTÉMU RISORSA PRO VĚRNOSTNÍ PROGRAMY. Případová studie. Implementace věrnostního programu s.

SMART Notebook Math Tools 11

10. Architektura klient/server a třívrstvá architektura

Distanční opora předmětu: Databázové systémy Tématický blok č. 8: Transact SQL Autor: RNDr. Jan Lánský, Ph.D.

10. Architektura klient/server a třívrstvá architektura

Transkript:

Databáze 2011/2012 Optimalizace, základní knstrukty T-SQL RNDr.David Hksza, Ph.D. http://siret.cz/hksza

Osnva Principy indexvání Optimalizace dtazů v MSSQL Základní knstrukty T-SQL prměnné pdmíněný tk prgramu cykly prcedury Cvičení

Index Struktura umžňující rychlejší vyhledávání na daném slupci/slupcích tabulky Urychlení dsažen takvu rganizací dat, umžňující neprhlížet všechny záznamy v tabulce (sekvenční průchd) Na index lze nahlížet jak na rejstřík v knize, neb na telefnní seznam nevýhdy větší časvé nárky na vkládání dat větší paměťvá nárčnst

B-strm Strm je speciální typ rientvanéh grafu, ve kterém neexistují cykly Orientvaný graf je datvá struktura bsahující knečnu mnžinu tzv. hran, kde hrany jsu uspřádané páry tzv. uzlů (vlná definice) Princip vyhledávacích strmvých struktur je takvý, že levý a pravý pdstrm dělí data d dvu disjunktních částí, čehž lze využít při vyhledávání pdle danéh klíče Varianty B-strmu jsu nejčastěji využívané indexvé struktury v sučasných relačních DB redundantní neredundantní

Neredundantní B-strm 1. Křen má alespň 2 ptmky, pkud není listem 2. Každý uzel krmě křene má nejméně m/2 a nejvíce m ptmků 3. Všechny větve jsu stejně dluhé 4. Každý uzel má nejméně m/2 1 a nejvíce m datvých plžek 5. Data v uzlu jsu rganizvána následvně: p, k 1, p 1, d 1,, k n, p n, d n p ukazatele na ptmky k vzestupně (sestupně) uspřádané klíče d ascivaná data k i, p i, d i datvé plžky 6. Je-li U(p i ) pdstrm uzlu p i, pak platí: k U(p i 1 ): k < k i k U(p i ): k > k i

Redundantní B-strm 5. Data jsu umístěna puze v listech, neb jsu z listů dkazvána 6. Je-li U(p i ) pdstrm uzlu p i, pak platí: k U(p i 1 ): k k i k U(p i ): k > k i

Prhledávání B-strmu 1. Cílem dtazu je k dtazvacímu klíči nalézt příslušná data, případně zjistit, že se takvý klíč ve strmě nevyskytuje. 2. Vstupíme d křene strmu. 3. Pkud se jedná neredundantní B-strm a dtaz je rven některému z klíčů, pak vrátíme příslušná data a prces uknčíme. V pačném případě vybereme interval d kteréh dtaz spadá a přesuneme se d křene pdstrmu pdle bdu 6 definice B-strmu. 4. Iterujeme pdle bdu 3. Pkud se žádný z klíčů v listvé úrvni neshduje s dtazem uknčíme prhledávání s infrmací, že příslušná data nejsu k dispzici. V pačném případě vrátíme pžadvaná data a uknčíme prces vyhledávání.

Příklad knstrukce B- strmu (m=3) credit:wikipedia

B-strmvé indexy v DBS Hdnty slupce na kterém je pstaven index, tvří klíče uzlů indexu Data jsu ulžena puze v listech, případně jsu z listvých uzlů dkazvána (redundantní B-strm) Typicky B+-strmy, ve kterých jsu data na listvé úrvni prvázána busměrným spjvým seznamem (v případě MSSQL i na vnitřní úrvni) efektivní implementace rzsahvéh dtazu nalezení hraničníh bdu intervalu a sekvenční průchd listvu úrvní Víceslupcvé indexy přadí je určen hdntu prvníh slupce, v případě shdy rzhduje druhý slupec (atd.) Klastrvaný index data jsu ulžena v přadí daném listvu úrvní indexu, Neklastrvaný index přadí plžek indexu nemá vztah k fyzickému přadí

Vytvření a smazání indexu CREATE [UNIQUE] [CLUSTERED NONCLUSTERED] INDEX ixname ON tab(slupec1[, slupec2[, ]]) DROP INDEX ixname

Pužití indexu Index se pužije/nepužije autmaticky Vytvářet indexy na čast dtazvaných slupcích Vytvářet index na cizích klíčích při DELETE nadřazenéh klíče netřeba prjít sekvenčně tabulky s FK Index nepmůže u dtazu s vysku selektivitu (velikst výsledku ve srvnání s velikstí tabulky) Index klást na slupce, kde je předpklad diverzifikvané dmény Autmaticky vytvářené klíče PRIMARY KEY UNIQUE

Plán dtazu Způsb prvádění danéh dtazu, tj. přadí prvádění perací veducí k výsledné mnžině vrácené DB serverem uživateli Dtaz je převeden d relační algebry a následně je vytvřen strm vyhdncení dtazu

Spustí plán dtazu (samtný dtaz se nespustí) Zahrne d výsledku plán dtazu Plán dtazu

T-SQL Prcedurální rzšíření SQL Micrsft SQL Server - Transact-SQL Oracle PL/SQL Pstgres PL/pgSQL Mžnsti prměnné IF WHILE prcedury Funkce kurzry vyjímky transakce

Prměnné v T-SQL Každý výskyt prměnné uvzen @ Deklarace prměnné pmcí DECLARE datvé typy jsu splečné pr prměnné a slupce tabulek DECLARE @i INT; Přiřazení hdnty pmcí SET, SELECT SET @i = 1; SELECT @i = @i + 1; Výpis d knzli lze řešit prceduru PRINT PRINT @i Živtnst prměnné je mezena aktuální dávku (příkaz GO) DECLARE @i INT; SET @i = 1; GO PRINT @i;

Pdmínky v T-SQL IF pdmínka blk ELSE blk V rámci blku může být 1 příkaz, neb více uzavřených mezi BEGIN END V pdmínce lze využívat knstruktů známých z WHERE klauzule příkazu SELECT, tj. EXISTST, NOT NULL,. IF EXISTS(SELECT * FROM t WHERE cl1 > 10) BEGIN PRINT greater than PRINT greater than END ELSE PRINT less than

Datvý slvník v MSSQL datvý slvník bsahuje metadata ke všem bjektům v DB serveru V MSSQL přístup přes 2 schémata sys bsahuje phledy s detailními infrmacemi prakticky všech bjektech v DB INFORMATION_SCHEMA infrmace vyžadvané standardem SQL-92 méně pdrbné IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME= t ) DROP TABLE t; IF EXISTS (SELECT * FROM sys.tables WHERE name = t ) DROP TABLE t; IF OBJECT_ID( t ) IS NOT NULL DROP TABLE t;

Cykly v T-SQL WHILE pdminka {blk BREAK CONTINUE} V rámci blku může být 1 příkaz, neb více uzavřených mezi BEGIN END DECLARE @i INT; SET @i = 1; WHILE @i <= 10 BEGIN PRINT @i; SET @i = @i + 1; END

Vytvření prcedury Prcedura může zapuzdřvat prakticky libvlný T-SQL kód včetně DML příkazů CREATE PROCEDURE uspprc1 (@param1 INT, @param2 VARCHAR(30)) AS BEGIN tel_prcedury END Návratvé hdnty OUT parametry RETURN funguje puze pr datvý typ INTEGER CREATE PROCEDURE uspprc2 (@param1 INT, @param2 VARCHAR(30) OUTPUT) AS BEGIN PRINT @param2; SET @param2 = @param1; RETURN @param1 + 1; END

Vlání prcedury Prcedura je vlána pmcí příkazu EXECUTE Parametry jsu dděleny d jména prcedury mezeru a vzájemně čárku EXEC uspprc1 10, 'test' DECLARE @rv INT; DECLARE @param VARCHAR(30) = 'test'; EXEC @rv = uspprc2 5, @param OUT PRINT @rv PRINT @param