Optimalizace SQL dotazů. RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

Podobné dokumenty
Novinky v Microsoft SQL Serveru RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

Monitoring a optimalizace databázových dotazů v Microsoft SQL Serveru

Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

Enterprise funkce SQL Serveru 2016, které jsou od SP1 zdarma

M Administrace Microsoft SQL Server Popis: Absolvent kurzu bude umět: Požadavky pro absolvování kurzu: Kurz určen pro: Literatura:

SQL Server Data Tools (SSDT) RNDr. David Gešvindr MVP: Azure MCSE: Data Platform MCSD: Windows Store

Programování a implementace Microsoft SQL Server 2014 databází

Monitoring SQL Server, Resource Governor, Tracing SQL Server

1. Databázové systémy (MP leden 2010)

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

Analýza výkonu HELIOS Green

Operátory ROLLUP a CUBE

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

Diagnostika webových aplikací v Azure

vlastnosti Výsledkem sledování je: a) Využití aplikací b) Používání internetu c) Vytížení počítačů d) Operační systém e) Sledování tisků

Bc. David Gešvindr MSP MCSA MCTS MCITP MCPD

Fyzické uložení dat a indexy

1 Webový server, instalace PHP a MySQL 13

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

Snadný a efektivní přístup k informacím

Stručný obsah. K2118.indd :15:27

IW3 MS SQL SERVER 2014

Přehled systému Microsoft SQL Server. Komu je kniha určena Struktura knihy Nejvhodnější výchozí bod pro čtení knihy Konvence a struktura knihy

Obsah. 2 SQL Server Profiler Sledování na straně klienta Sledování na straně serveru Analýza trace souboru...

Administrace, Monitoring. Pavel Stěhule P2D2, Praha 2016

Bc. David Gešvindr MSP MCSA MCTS MCITP MCPD

IDS optimalizátor. Ing. Jan Musil, IBM ČR Community of Practice for

KAPITOLA 1 Představení platformy Microsoft SQL Server 2008

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

1. Webový server, instalace PHP a MySQL 13

Spark SQL, Spark Streaming. Jan Hučín

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Zátěžové testy aplikací

Databáze I. 5. přednáška. Helena Palovská

Webová prezentační aplikace

Spark SQL, Spark Streaming. Jan Hučín

Indexace pro souborová uložiště a Vyhledávací centrum

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Úvod 9

ZÁLOHA A OBNOVA ABRA GEN

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

DETEKCE ANOMÁLNÍHO CHOVÁNÍ UŽIVATELŮ KATASTRÁLNÍCH MAPOVÝCH SLUŽEB

Wonderware Information Server 4.0 Co je nového

Návrh architektury škálovatelné cloudové služby aneb nespalte se v cloudu. Mgr. David Gešvindr MCSE: Data Platform MCT MSP

Transakce a zamykání Jiří Tomeš

Management sítí OSI management framework SNMP Komerční diagnostické nástroje Opensource diagnostické nástroje

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

Marketingová komunikace. 3. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK3PH (vm3bph)

B Organizace databáze na fyzické úrovni u serveru Oracle

O Apache Derby detailněji. Hynek Mlnařík

Optimalizace plnění a aktualizace velkých tabulek. Milan Rafaj, IBM

Databázové systémy. Ing. Radek Holý

Jak používat statistiky položkové v systému WinShop Std.

Maturitní témata Školní rok: 2015/2016

6. blok část C Množinové operátory

QAD Business Intelligence

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

Role BI v e-business řešeních pohled do budoucnosti

TimescaleDB. Pavel Stěhule 2018

Specializace Návrhář software na základě analýzy vytváří návrh softwarových aplikací ve formě schémat a diagramů.

Porovnání rychlosti mapového serveru GeoServer při přístupu k různým datovým skladům

Sledování výkonu aplikací?

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Přizpůsobení JSTL pro Google App Engine Datastore

Procesní řízení operačních sálů Mgr. Martin Gažar

KOMPONENTY APLIKACE TreeINFO. Petr Štos ECM Business Consultant


Infor APS (Scheduling) Tomáš Hanáček

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

SQL SQL-SELECT. Informační a znalostní systémy. Informační a znalostní systémy SQL- SELECT

SMART GRID SYSTEM TECHNOLOGIE PRO ANALYTIKU A SPRÁVU ENERGETICKÝCH SÍTÍ. Představení společnosti Analyzátor sítě

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

Příprava k certifikaci , TS: Windows 7, Configuring

Backup & recovery, SQL Server Agent, Alerts Jiří Tomeš

Úvod do Entity Frameworku

Implementace dávkových operací

Ukládání a vyhledávání XML dat

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Transakce a zamykání. Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík

Počítačová simulace logistických procesů II 12. přednáška - Rozhraní (Process Designer, MALAGA, TriCAD)

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

Technické informace. PA152,Implementace databázových systémů 4 / 25. Projekty. pary/pa152/ Pavel Rychlý

IW3 MS SQL SERVER 2014

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

xrays optimalizační nástroj

Databázové systémy úvod

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

Monitorovací systém Dozorce

Modul. Univerzální tabulkový export

37. Indexování a optimalizace dotazů v relačních databázích, datové struktury, jejich výhody a nevýhody

Správa projektového portfolia v systému ADVANTA

Optimalizace dotazů a databázové transakce v Oracle

Důvěryhodná výpočetní základna v prostředí rozsáhlých IS státní správy

Obsah. Úvod do systému Microsoft SQL Server 2005

Kurz Databáze. Prezentace dat. Obsah. Tiskové sestavy (Report) Ing. Jolana Škutová

Transkript:

Optimalizace SQL dotazů RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT david@wug.cz @gesvindr

Motivace Rostoucí výkon HW vede k mylné představě, že dotazy lze zpracovat hrubou výpočetní silou bez nutnosti optimalizovat Přínosy optimalizace dotazů Zvýšení výkonu aplikace zvýšení propustnosti, zkrácení doby čekání na dokončení operace Snížení nákladů na provoz efektivnější využití HW (při stejné zátěži HW je obslouženo více operací) I zdánlivě nepatrná změna ve zpracování dotazu může způsobit řádové snížení délky trvání dotazů s minimálními náklady

Osnova 1. Aplikace jede pomalu, co s tím? 2. Jak nám pomohou indexy 3. Jak systematicky přistupovat k optimalizaci 4. Další zabijáci výkonu dotazů

Osnova 1. Aplikace jede pomalu, co s tím? 2. Jak nám pomohou indexy 3. Jak systematicky přistupovat k optimalizaci 4. Další zabijáci výkonu dotazů

Metody monitorování T-SQL dotazů a serveru SQL Server Profiler SQL Trace Extended Events Dynamic Management Views and Functions SQL Server Management Studio Activity Monitor Reports Performance Monitor Data Collector Query Store

SQL Server Profiler Grafický nástroj pro trasování Zachytávání událostí, které se stanou v SQL Serveru Kdy se používá Identifikace náročných dotazů Zachycení zátěže pro SQL Server Tuning Advisor Zachycení zátěže pro replay Sběr informací o dalších událostech SQL Serveru (deadlock) Sledování bezpečnostních událostí V SQL Serveru 2016 je deprecated, používejte Extended Events

Extended Events Technologie, která nahrazuje SQL Trace a dále rozšiřuje jeho možnosti SQL Trace je označen jako deprated Je k dispozici od SQL Serveru 2008 Ale v Management Studiu je podpora až od SQL Serveru 2012 Způsobuje minimální zátěž pro SQL Server Konfigurace s pomocí přehledného T-SQL kódu

Osnova 1. Aplikace jede pomalu, co s tím? 2. Jak nám pomohou indexy 3. Jak systematicky přistupovat k optimalizaci 4. Další zabijáci výkonu dotazů

Jak SQL Server ukládá data SQL Serveru ukládá data do 8 KB datových stránek Typy datových stránek: Global allocation map and shared global allocation map Page free space Differential changed map Bulk changed map Index allocation map Index Data Text or image 8 po sobě jdoucích datových stránek tvoří extent Mixed extents Uniform extents Zdroj: https://technet.microsoft.com/en-us/library/ms190969(v=sql.105).aspx

Jak zjistit složitost dotazu Exekuční plán popisuje, jaké fyzické operace SQL Server musel realizovat pro načtení dat Je vyčíslena cena dotazu Pozor Tato cena je vypočtena na základě odhadovaného exekučního plánu a nemusí odpovídat skutečnosti! SET STATISTICS IO ON SQL Server ukáže počet I/O operací spojených s exekucí dotazu SET STATISTICS TIME ON SQL Server ukáže pro každý příkaz v dávce dobu kompilace a exekuce

Jak jsou uložena data v tabulce Heap Nemá specifické řazení po sobě jdoucích stránek IAM udržuje pouze seznam stránek, které tvoří tabulku Nemá specifické řazení řádků ve stránkách Výhodou je, že nové nebo změněné řádky mohou být umístěny kamkoliv do stránek haldy Nevýhodou je, že bez neclusterovaného indexu musíme pro najití hodnoty projít všechny datové stránky tabulky Clustered Index Datové stránky tabulky jsou logicky seřazeny Řádky ve stránkách jsou seřazeny dle klíče indexu Možnost vytvoření pouze jediného clusterovaného indexu Nechceme 100% duplicitu uložených dat B+ strom který v listech obsahuje celé řádky

Osnova 1. Aplikace jede pomalu, co s tím? 2. Jak nám pomohou indexy 3. Jak systematicky přistupovat k optimalizaci 4. Další zabijáci výkonu dotazů

Cíl optimalizace Ne všechny operace mohou být efektivně optimalizovány Vždy je třeba uvážit poměr mezi náklady na optimalizaci a jejími přínosy Je třeba si stanovit předem reálné cíle optimalizace a tomu podřídit celý proces optimalizace Konkrétně popsat, jaké jsou požadavky na výsledky optimalizace Např.: Načtení detailu objednávky musí trvat méně než 1s

Paretovo pravidlo Všeobecně známé pravidlo 80/20 80% důsledků pramení z 20% příčin Paretovo pravidlo je aplikovatelné i na proces optimalizace dotazů Optimalizací 20% nejnáročnějších dotazů zvýšíme výkon aplikace až o 80%

nenáročné dotazy náročné dotazy Cíl optimalizace 3 1 4 2 méně časté dotazy časté dotazy

Query Store EXPRESS Nový způsob monitorování náročných dotazů dostupný od SQL Serveru 2016 Sbírá data o: Exekuci jednotlivých dotazů Používaných variantách exekučních plánů Použití: Identifikace náročných často spouštěných dotazů Identifikace dotazů, kde se zhoršila exekuce Porovnání dopadů optimalizace

Aktivace Query Store Aktivace a konfigurace Query Store se provádí ve vlastnostech databáze

Sběr dat pro Query Store Query Store po povolení automaticky sbírá data o kompilaci exekučního plánu včetně statistik o jeho exekuci Zdroj: https://msdn.microsoft.com/en-us/library/mt631173.aspx

Výkonnostní dopad Query Store Query Store by mělo mít minimální dopad na výkon SQL Serveru Query Store je navrženo tak, aby data cachovalo v operační paměti a dávkově zapisovalo na disk Zdroj: https://msdn.microsoft.com/en-us/library/mt631173.aspx

Vizualizace dat Query Store přidává do SQL Server Management Studia 2016 novou sekci Hlavní pohledy na data: Regressed Queries Overall Resource Consumption Top Resource Consuming Queries Tracked Queries

Použití: Identifikace alternativních plánů V současnosti je problém identifikovat různé varianty exekučních plánů stejného dotazu a porovnat jejich efektivitu (plan choice change regression) Zdroj: https://msdn.microsoft.com/en-us/library/mt614796.aspx

Použití: Spolehlivá migrace na novou verzi Při upgradu na novou verzi SQL Serveru může docházet ke generování odlišných exekučních plánů Query Store tyto situace umí detekovat a opravit Zdroj: https://msdn.microsoft.com/en-us/library/mt614796.aspx

Použití: Identifikace nejnáročnějších dotazů Díky sběru informací o exekuci dotazů umí Query Store identifikovat nejnáročnější dotazy podle různých kritérií Zdroj: https://msdn.microsoft.com/en-us/library/mt614796.aspx

Použití: A/B testování Po provedení optimalizace je možné měřit a analyzovat její dopad Zdroj: https://msdn.microsoft.com/en-us/library/mt614796.aspx

Použití: Optimalizace ad-hoc dotazů Identifikace, že je posíláno veliké množství dotazů lišících se hodnotou parametru, ale SQL Server generuje pro každý dotaz individuální exekuční plán Zdroj: https://msdn.microsoft.com/en-us/library/mt614796.aspx

Použití: Optimalizace ad-hoc dotazů Po rekonfiguraci SQL Serveru jsou dotazy správně parametrizovány Zdroj: https://msdn.microsoft.com/en-us/library/mt614796.aspx

Osnova 1. Aplikace jede pomalu, co s tím? 2. Jak nám pomohou indexy 3. Jak systematicky přistupovat k optimalizaci 4. Další zabijáci výkonu dotazů

Nevhodný návrh dotazu Efektivní dotaz načítá z databáze jen nutné minimum informací, které dostačuje aplikaci pro daný účel Např.: Pro vypsání seznamu objednávek nemusím načítat 50 dalších sloupců v tabulce objednávek když nejsou zobrazeny v UI Je důležité: Vracet jen sloupce, co skutečně využijeme (pozor na SELECT * FROM tabulka) Filtrovat a stránkovat záznamy na serveru Zbytečně neřadit záznamy, pokud to opravdu nepotřebujeme

Nevhodný návrh dotazu V některých případech složitost dotazu překročí optimalizační schopnosti SQL Serveru a ten sestaví neefektivní exekuční plán Pokud nepomohou jiné optimalizační techniky, může být řešením dotaz rozdělit na více menších dotazů Pozor na režii spojenou s uložením dat do dočasných tabulek

Non-set based operace Dotazy v T-SQL popisují jaká data chceme získat, ale nepopisují jak je získat Efektivní způsob načtení dat je pak sestaven v rámci optimalizace dotazu SQL Server je optimalizovaný na množinové operace Pokud budeme pracovat s daty řádek po řádku, bude to mít významný dopad na výkon dotazu Ne vždy se jde vyhnout kurzorům nebo cyklům, ale měli bychom se o to snažit

Nadměrné uzamykání a deadlock SQL Server pro řízení souběžného přístupu používá mechanizmus zámků Kvůli použití zámků dochází k blokování To není problém, pokud netrvá dlouho Pokud zpracováváme rozsáhlé transakce a zvolíme nevhodnou úroveň izolace, vzniká velké množství zámků, které blokují další operace až do konce transakce Pokud k datům přistupujeme v nevhodném pořadí, může dojít k vzájemnému uváznutí - deadlock

Špatný návrh databáze Tabulky v relačních databázích navrhujeme s využitím principů normalizace Výhody normalizované databáze: Odstranění duplicity dat a anomálií při změnách Další projevy špatného návrhu databáze: Potřeba nadměrně spojovat tabulky Nevhodné použití indexů Příliš rozsáhlé zámky

Osnova 1. Aplikace jede pomalu, co s tím? 2. Jak nám pomohou indexy 3. Jak systematicky přistupovat k optimalizaci 4. Další zabijáci výkonu dotazů

Dotazy RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT david@wug.cz @gesvindr