Optymalizacja zapytań w SQL Server

Slides:



Advertisements
Podobne prezentacje
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Advertisements

Strojenie SQL w bazie Oracle
Indeksy w bazie danych Oracle
Optymalizacja zapytań
Podział i zastosowanie
Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
Standardowa biblioteka języka C++
Rafał Hryniów Tomasz Pieciukiewicz
Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
Bazy danych 8. SQL podstawy P. F. Góra semestr letni 2004/05.
PHP + MySQL część II.
Szymon Słupik dyrektor ds. technologii CDN S.A. grupa Comarch
Horyzontalne scenariusze pracy
OLAP budowa aplikacji analitycznych w MS SQL 2000 i Yukon
Język SQL ma ciekawe możliwości tworzenia zapytań
Bazy danych II Instrukcja INSERT Piotr Górczyński 25/08/2001.
Optymalizacja aplikacji bazodanowych
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 8: Perspektywy i sekwencery.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 2: Język bazy danych - SQL Proste zapytania.
Porównanie wydajności MySQL i Adabas D
Opracowanie studium przypadku w SAS ETL Studio
Co to jest studium przypadku?
Magistrala & mostki PN/PD
WYZWALACZE (TRIGGERY) Wyzwalacz jest specjalnym rodzajem procedury składowanej, która może być wykonana w odpowiedzi na jedną z trzech sytuacji: UPDATE.
SQL-owskie szlaki górskie
Zapytania SQL: wydajność i optymalizacja
BD-LAB6 Wojciech Pieprzyca
Projektowanie fizycznej bazy danych
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Relacyjne Bazy Danych (Oracle) Prezentacja jest współfinansowana.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Relacyjne Bazy Danych (Oracle) Prezentacja jest współfinansowana.
Zarządzanie transakcjami w SQL Server
Język SQL – ciąg dalszy DML (Data Manipulation Language)
Język SQL (Structured Query Language) DDL (Data Definition Language)
Przykład włamania do aplikacji internetowej poprzez modyfikację zapytań SQL Skrypty ASP Serwer bazy danych MS SQL Server Piotr Kuźniacki BDi.
Autor: Maciej Piwowarczyk
OPERACJA DZIELENIA W SQL
TBD - SQL S ERVER 2012 DLA DEVELOPERA CZYLI A DALI TAM COŚ FAJNEGO ? Michał Grodzicki MCTS SQL SERVER lipca 2012.
SQL – zapytania posumowanie
TBD - P ERFORMANCE W BAZACH M ICROSOFT SQL S ERVER, CZYLI O CO W TYM W OGÓLE CHODZI Michał Grodzicki MCTS SQL SERVER lipca 2012.
PowerPivot dla DBA mgr inż. Paweł Potasiński.
SQL – Structured Query Language (3)
MySQL – ODBC - ACCESS.
Tryb tabelaryczny w Analysis Services 2012
Król Excel 2013 Dynastii ciąg dalszy Grzegorz Stolecki
dr hab. Ryszard Walkowiak prof. nadzw.
Konsultant w ABC Data Centrum Edukacyjne Microsoft Certified Trainer od 2004 roku Microsoft Most Valuable Professional od 2008 roku Autor dwóch książek.
SQL - Structured Query Language
Aplikacje bazodanowe ADO.NET PHP i MySQL
Systemy Zarządzania Bazami Danych
Autor: Joanna Barańska Promotor: dr inż. Paweł Figat Konsultant:
Komendy SQL do pracy z tabelami i bazami
Bazy danych Microsoft access 2007.
1 SBD, L.Banachowski Podstawy SQL - języka relacyjnych i obiektowo-relacyjnych baz danych (SQL2, SQL'1999, Oracle) Powtórzenie wyk ł adu 3.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Bazy danych.
Język SQL – polecenie Select
.NET i Bazy Danych Projekt: Wadim Grasza.
Optymalna konfiguracja Microsoft SQL Server 2014
File History w Windows 8 oraz Shadow Copies w Windows Server 2012 Błażej Miśkiewicz MCTMCP MCSA MCTS MCITP.
Wykład 3 Prowadzący: dr Paweł Drozda. Użytkownik bazy danych – osoba lub aplikacja, mająca dostęp do części danych zgromadzonych w bazie Uprawnienia –
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
1. Adres względny 2. Adres bezwzględny 3. Adres mieszany.
Opracowanie studium przypadku w SAS ETL Studio Systemy baz danych i hurtowni danych Ludmiła Binek Katarzyna Rafalska
SQL Server 2012 Autor: Radosław Różyński Strategie i ciekawostki związane z kopiami zapasowymi baz danych SQL Server.
Miejsce architektury Data Vault 2.0 w hurtowniach danych
Optymalizacja SAS OLAP Studio
Session will begin very soon :)
Indeksy.
Zapis prezentacji:

Optymalizacja zapytań w SQL Server Roman Czarko-Wasiutycz roman.czarko@gmail.com

Roman Czarko-Wasiutycz Od kilkunastu lat zbieram doświadczenia związane z technologiami Microsoftu. Począwszy od developera C++, PHP, C#, administratora SharePoint poprzez administrację bazami Microsoft SQL Server na projektowaniu i rozwijaniu dużych hurtowni danych kończąc. Posiadacz tytułów: MCTS, MCSA: SQL Server 2012, MCSE: BI oraz MCSE: Data Management and Analytics Członek Zarządu Stowarzyszenia Użytkowników SQL Server PLSSUG Wolontariusz oraz współorganizator konferencji SQLDay 2013-2016, SQLDay Lite, SQLSaturday i innych. Lider Wrocławskiego oddziału Stowarzyszenia PLSSUG Prywatnie fan gier komputerowych :)

Proces wykonania i operatory Demo Narzędzia Agenda Indeksy Proces wykonania i operatory Demo Narzędzia

Indeksy Jak działają indeksy Gdzie w indeksie są dane? Z czym wiąże się zbyt duża liczba indeksów Indeksy w OLTP i DWH Jak typować kolumny do indeksowania

CREATE CLUSTERED INDEX [CX_Id] ON [dbo].[Acount] ([Id] ASC) CREATE NONCLUSTERED INDEX [IX_accountNumber_bankName] ON [dbo].[Account] ( [accountNumber] ASC, [bankSymbol] ASC ) INCLUDE ( [bankName]); 8K DANE W CI ! CI / NCI

Indeksy – jak typować kolumny Jak będzie wyglądał dostęp do danych, jak wstawianie nowych wierszy? Używane w klauzulach WHERE, JOIN, ORDER BY, GROUP BY – zwróć uwagę na SELECT Dane unikalne lub z dużą różnorodnością Dane w kolumnie są sekwencyjne (Clustered!) Stałe, niezmienne dane w kolumnie indeksowanej Małe typy danych Ilość indeksów dostosuj do charakteru tabeli

Proces wykonania Operatory budujące drzewo wykonania Żądania nowych danych płyną w „dół i prawo” drzewa od pierwszego elementu Dane w odpowiedzi na żądania płyną w „górę i w lewo” Podstawowe metody komunikacji pomiędzy operatorami: Init, GetNext, Close https://msdn.microsoft.com/en-us/library/ms191158.aspx

Operatory – na co zwrócić uwagę? Operatory alokujące pamięć – alokują pamięć na podstawie statystyk przed wykonaniem zapytania – np. sort, hash aggregate, and hash join Operatory blokujące – muszą odczytać wszystkie wiersze, żeby przekazać rezultat dalej np. sort, count, min, max… Operatory nie blokujące – po odczytaniu i przetworzeniu wiersza przekazują wynik działania dalej np. compute scalar https://blogs.msdn.microsoft.com/craigfr/2006/06/19/properties-of-iterators/

DEMO

PLSSUG Polish SQL Server User Group http://plssug.org.pl http://meetup.com/PLSSUG http://youtube.com/PLSSUG

Jeśli masz pytanie to jest dobry czas, żeby je zadać 

Źródła https://technet.microsoft.com/en-us/library/ms187373(v=sql.105).aspx https://www.youtube.com/watch?v=GSZPvF2u6WY https://www.youtube.com/watch?v=lxdDg2F0hfs https://sqlperformance.com/2012/07/t-sql-queries/running-totals https://technet.microsoft.com/en-us/library/2007.11.sqlquery.aspx https://technet.microsoft.com/en-us/library/bb510478(v=sql.105).aspx

Dziękuję za uwagę  Abstrakt: Wielokrotnie podczas pracy z SQLServer spotykamy się z zapytaniami,  które na pierwszy rzut oka wyglądają całkiem niewinnie. Niestety ich  wydajność często jest mocno niezadowalająca. Na sesji przypomnę kilka  rzeczy o indeksach i dostępie do danych, zapoznamy się z przykładami  zapytań oraz pomyślimy jak możemy je zmodyfikować, aby otrzymać wyniki  szybciej i mniejszym kosztem. Oprócz tego poruszymy temat strategii  indeksowania -  co i w jaki sposób warto indeksować, żeby poprawić  wydajność a jednocześnie jak najmniej z tej wydajności stracić przy  wstawianiu danych.