Databázové systémy přednáška 6 – Indexy

Slides:



Advertisements
Podobné prezentace
Základy jazyka SQL Jan Tichava
Advertisements

Zpracování SQL Lubomír Andrle 5. přednáška
SQL: DDL v ORACLE CREATE TABLE jméno_tabulky (atribut datový_typ [DEFAULT][attribut_constraint] [, atribut datový_typ [DEFAULT] [attribut_constraint]],...
Aplikační a programové vybavení
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
Fakulta elektrotechniky a informatiky
Informační systémy Realizace sběru dat v rámci realizovaných úloh.
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.
Informatika pro ekonomy II přednáška 11
Databázové systémy II Přednáška č. 6 RNDr. David Žák, Ph.D. 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í č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
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.
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.
Radek Špinka Přepínače MSSQL výběr.
ADT Strom.
SQL Přednáška DB1. Literatura CONNOLLY, T.M.-BEGG,C.E.-STRACHAN,A.D.: Database Systems – A Practial Approach to Design, Implementation and Management.
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)
Execution plans Lubomír Andrle 6. přednáška
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Databázové systémy teorie a návrh relačních databázových systémů část II.
Vypracoval: Ondřej Dvorský Třída: VIII.A
Databázové systémy I Cvičení č. 6 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Databázové systémy Přednáška č. 6.
SQL – základní pojmy Ing. Roman Danel, Ph.D.
SQL PVA Jan Hora. SQL „graficky“ Grafický vs. pravý SQL SELECT ORDED BY WHERE.
Rauer Luboš Kopic Petr Blažek Tomáš. Structured Query Language - dotazovací jazyk -> pracuje s dotazy - neprocedurální jazyk - mocný, ale přitom jednoduchý.
Čí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ý.
Novinky v SQL 2008 Piotr Grodzicki. Microsoft SQL Server Management Studio o Barevná indikace, volba databáze o Dedikované připojení pro administrátora.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy II Přednáška č. 9. Transakce je logická jednotka práce sestávající z jednoho nebo více SQL příkazů, které jsou atomické z hlediska.
Optimalizace SQL dotazů Michal Kopecký
Databázové systémy UIN010 N-ticový (řádkový) relační kalkul Hodnoty proměnných n-tice relací (řádky) Konstanty hodnoty atributů Unární funkční.
Informatika II PAA DOTAZOVACÍ JAZYKY
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.
Reindexace, Rekompilace
Databázové Aplikace Slidy ke cvičení DBI026, část 3 KSI MFF UK Verze
Administrace Oracle Paralelní zpracování.
Databázové Aplikace Slidy ke cvičení DBI026, část 2 KSI MFF UK Verze
Příkazy jazyka SQL ve VFP a na SQL Serveru
Databázové systémy I Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
David Gešvindr MCT | MSP | MCITP | MCPD. Jak se zpracovává dotaz? Když norma nestačila Práce s XML Geografická data CTE Zpracování hierarchií a grafů.
Databázové systémy přednáška 8 – Transakce
Dobývání znalostí z databází fulltext
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
Roman Danel Institut ekonomiky a systémů řízení 2016
Databázové systémy a SQL
Dotazovací jazyk SQL - III
Jiří Šafr jiri.safr(AT)seznam.cz Poslední aktualizace 25/6/2014
Databázové systémy I Přednáška 11 Databázové systémy 1 – KIT/IDAS1
Dotazovací jazyk SQL I.
Architektury a technika databázových systémů
Databázové systémy přednáška 3 – CRUD
Databázové systémy a SQL
Šablona 32 VY_32_INOVACE_038.ICT.34
Optimalizace SQL dotazů
Databázové systémy a SQL
Počítačová cvičení z předmětu Datové sklady
Přednáška 9 Triggery.
Databázové systémy a SQL
Jazyk SQL (databáze SQLite)
Účetní schémata MS Dynamics NAV RTC-základy
Databázové systémy a SQL
Transkript prezentace:

Databázové systémy přednáška 6 – Indexy Roman Danel Institut ekonomiky a systémů řízení 2016

Indexy Balanced B-tree Hash – jen některé db a v některých případech Kořen (root) Nula nebo několik intermediate levels Leaf level – entries in sorted order that corresponed to data http://www.bluerwhite.org/btree/ Hash – jen některé db a v některých případech

B-strom https://www.simple-talk.com/sql/learn-sql-server/sql-server-index-basics/

Strom Strom je speciální typ orientovaného grafu, ve kterém neexistují cykly Orientovaný graf je datová struktura obsahující konečnou množinu hran; hrany jsou uspořádané páry uzlů

Clustrovaný Index Column for clustered index – clustering key SQL server setřídí data v tabulce podle clustering key Leaf level CI - data v tabulce CI nemusí být vždy primarní klíč!

Vytvoření indexu CREATE UNIQUE/CLUSTERED/NONCLUSTERED INDEX index_name ON object_name column_name ASC/DESC [with OPTION ] [ON partition_scheme (col_name)]

Poznámky Primární klíč a Unique constraints jsou implementovány jako unique index Objekt – tabulka nebo view Nonclustering – 249 na tabulce; struktura B–stromu - leaf level obsahuje ukazatel na data

Typy indexů Composite – nad více sloupci Unique Covering

Covering Index Index, který poskytne data dotazu, aniž by musela být čtena tabulka

Výběr indexu Server se rozhoduje, zda využije index pouze podle prvního sloupce v indexu! Příklad: index definovaný na FirstName, LastName a dotaz nad LastName -> tento index nebude použit!

Options PAD_INDEX – on/off FILLFACTOR – 0-100% - how full leaf level SORT_IN_TEMPDB – default is off IGNORE_DUP_KEY STATISTICS_NORECOMPUTE DROP EXISTING ONLINE ALLOW_ROW_LOCKS ALLOW_PAGE_LOCKS MAXDOP – maximální stupeň paralelismu, max. 64 p. 157

Disabling Index ALTER INDEX index_name ON object_name DISABLE

Administrace indexů Opravdu potřebujete více než 5 indexů na jedné tabulce? Jestliže na leaf level indexu už není místo pro nový zápis -> page split

Best practices Všechny tabulky by měly mít primární klíč Všechny tabulky by měly mít cluster index Je třeba odhalit dotazy, které jsou pomalé a pro ně vytvořit non-clustered indexy

Fragmentace indexu Insert, update, delete SQL Server 2005 – 8 KB jedna index stránka Fill factor – na kolik je datová stránka na úrovni leaf level při vytvoření zaplněna (v %) 100 % fill factor – není rezerva MSSQL Book Online „  a fill factor value of 50 can cause database read performance to decrease by two times.“

Nalezení hodnoty Fill Factor Sys.indexes External fragmentation – physical order of index pages does not match the logical order U statických systémů (převaha READ) může být fill factor 100% U systémů s převahou zápisu (UPDATE) – 70-90% Tabulky s cluster indexem na indetity field – 100 %

Detekce fragmentace DBCC SHOWCONTIG Funkce sys.dm_db_index_physical_stats

Reorganize a Rebuild Index Rebuild : ALTER INDEX [IndexName] ON [SchemaName].[TableName] REBUILD; Reorganize : ALTER INDEX [IndexName] ON [SchemaName].[TableName] REORGANIZE; Rebuild = drop a znovuvytvoření indexu Reorganize – tabulku lze během operace používat

Statistiky Statistical information about the distribution of values in a column – used by query optimizer to estimate the cost of using index Histogram AUTO_CREATE_STATISTICS = ON/OFF UPDATE STATISTICS or sp_autostats Sys.cats – tables Sys.stat_columns – row for each column from sys.cats

Collation Level Server Database Table (column level) Select DATABASEPROPERTYEX(‘TEMPDB’,‘COLLATION’) select object_name(object_id) as ObjectName, name As ColName,collation_name from sys.columns  where object_id = object_id(‘testcollate’)