STROJENIE BAZ DANYCH: INDEKSY. Cezary Ołtuszyk coltuszyk.wordpress.com



Podobne dokumenty
SQL SERVER 2012 i nie tylko:

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Fizyczna struktura bazy danych w SQL Serwerze

Szkolenie autoryzowane. MS 6232 Wdrażanie bazy danych Microsoft SQL Server 2008 R2

060 SQL FIZYCZNA STRUKTURA BAZY DANYCH. Prof. dr hab. Marek Wisła

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Administracja i programowanie pod Microsoft SQL Server 2000

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

BEST S.A. Co nowego w SQL Server 2012 dla programistów. Cezary Ołtuszyk. coltuszyk.wordpress.com

Bazy danych. Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI

Optymalizacja zapytań SQL

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

5.3. Tabele. Tworzenie tabeli. Tworzenie tabeli z widoku projektu. Rozdział III Tworzenie i modyfikacja tabel

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0

Systemy GIS Tworzenie zapytań w bazach danych

2 Konfiguracja i utrzymanie bazy danych Przed rozpoczęciem Lekcja 1: Konfigurowanie plików i grup plików Pliki i grupy plików...

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server 2012 Krok po kroku

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

Optymalizacja wydajności SZBD

Szkolenie autoryzowane. MS Tworzenie zapytań do Microsoft SQL Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

Microsoft SQL Server 2012 : krok po kroku / Patrick LeBlanc. Warszawa, Spis treści

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Spis treści. Przedmowa

T-SQL w Microsoft SQL Server 2014 i SQL Server 2012

Bazy danych Access KWERENDY

TOPWEB Microsoft Excel 2013 i PowerBI Przygotowanie danych, analiza i efektowna prezentacja wyników raportów

Administracja i programowanie pod Microsoft SQL Server 2000

WPROWADZENIE DO BAZ DANYCH

Bazy danych Wykład zerowy. P. F. Góra

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Spis tre±ci. Przedmowa... Cz ± I

Oracle11g: Wprowadzenie do SQL

Polecenie 3.1: Uruchom SQL Server Management Studio, zaloguj się do serwera.

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Nie przegrzewaj mózgu wrzuć dane do bazy!

Bazy danych Karta pracy 1

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

William R. Stanek. Vademecum administratora. Microsoft. SQL Server Przekład: Krzysztof Szkudlarek

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Ramowy plan kursu. Lp. Moduły Wyk. Lab. Przekazywane treści

Zapytania, złączenia, optymalizacja zapytań, planowanie zapytań, optymalizacja indeksów.

Wykład XII. optymalizacja w relacyjnych bazach danych

Projekt: MS i CISCO dla Śląska

Zapytania do baz danych

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

Optymalizacja poleceń SQL Metody dostępu do danych

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

2. Tabele w bazach danych

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

OPIS PRZEDMIOTU ZAMÓWIENIA

Optymalizacja poleceń SQL

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

Bazy danych Access KWERENDY

Systemy baz danych. mgr inż. Sylwia Glińska

Internetowe Bazy Danych. dr inż. Roman Ptak Katedra Informatyki Technicznej

Tabela wewnętrzna - definicja

ORGANIZACJA I ZARZĄDZANIE INFORMACJĄ W BAZIE DNYCH. podstawowe pojęcia.

Zapytania w języku T-SQL w Microsoft SQL Server 2014 i SQL Server 2012 / Itzik Ben-Gan, Dejan Sarka, Adam Machaniec, Kevin Farlee.

MCSA: SQL Server 2012

Tuning SQL Server dla serwerów WWW

Baza danych. Baza danych to:

PRZEWODNIK PO PRZEDMIOCIE

Tadeusz Pankowski

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Programowanie obiektów

ELEMENTY OPTYMALIZACJI ZAPYTAŃ SQL

Administracja bazami danych

Konwersja bazy Sybase ASA Runtime do Microsoft SQL Server

SZKOLENIE: Administrator baz danych. Cel szkolenia

Microsoft SQL Server 2012 : vademecum administratora / William R. Stanek. Warszawa, Spis treści

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

Optymalizacja zapytań SQL

Projektowanie i programowanie aplikacji biznesowych. wykład 1

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Wykład 6. SQL praca z tabelami 3

Tadeusz Pankowski

Autor: Joanna Karwowska

Podstawowe zagadnienia z zakresu baz danych

Część I Istota analizy biznesowej a Analysis Services

Bazy danych. dr inż. Arkadiusz Mirakowski

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Porównanie systemów zarządzania relacyjnymi bazami danych

PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych

Aktualizacja baz danych systemu qs-stat

SQL Server Configuration Manager centrum dowodzenia

Relacyjne bazy danych. Podstawy SQL

ZAŁĄCZNIK NR 5 - GRUPA PRODUKTÓW 5: OPROGRAMOWANIE BAZODANOWE

Wprowadzenie do baz danych

AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie. Wydział Geologii, Geofizyki i Ochrony Środowiska. Bazy danych 2

Stosowanie indeksów ma swoje korzyści, ale bywa również kosztowne.

Wykład III. dr Artur Bartoszewski Wydział Nauczycielski, Kierunek Pedagogika Wprowadzenie do baz danych

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Baza danych. Modele danych

Transkrypt:

STROJENIE BAZ DANYCH: INDEKSY Cezary Ołtuszyk coltuszyk.wordpress.com

Plan spotkania I. Wprowadzenie do strojenia baz danych II. III. IV. Mierzenie wydajności Jak SQL Server przechowuje i czyta dane? Budowa i typy indeksów V. Strategie indeksowania VI. Podsumowanie

Wprowadzenie do strojenia baz danych Strojenie baz danych jest procesem polegającym na skróceniu czasu odpowiedzi serwera na przesyłane do niego zapytania. Proces ten możemy podzielić na kilka etapów, z czego jednym z nich jest tworzenie indeksów Tuning serwera Rozw. p.wielodostępu Indeksowanie Optymalizacja zapytań Projektowanie baz danych

Mierzenie wydajności Do podstawowych miar związanych z mierzeniem wydajności można zaliczyć: Czas wykonania zapytań SQL Plan wykonania instrukcji Ilość odczytanych danych Czas zajętości procesora Niestety żadna z tych miar nie jest idealna

Jak SQL Server przechowuje i czyta dane? Data Pages Page 1 Page 2 Page 3 Con Funk Russo Woods Akers Funk Woods Barr Smith Martin Page 4 Page 5 Page 6 Smith Owen Jones Martin Pica Jones Smith Ganio Jones Hall Podstawową jednostką zapisu i odczytu w SQL Server jest strona, która zawiera 8KB danych. Jeżeli strony te są odpowiednio poukładane, to serwer może pracować wydajnie

Budowa i typy indeksów sterta (brak indeksu grupującego) Stertę tworzą nieuporządkowane dane tabeli Dane te zapisane są na stronach, które zawierają odnośniki do stron poprzedniej i następnej Wyszukiwanie danych w tego typu strukturze jest bardzo nieefektywne, gdyż aby wybrać pojedynczy wiersz należy przeczytać wszystkie strony tabeli Z uwagi na to, że stertę tworzą fizyczne dane tabeli, to terminów tabela bez indeksu grupującego i sterta możemy używad zamiennie. Dobrą praktyką jest nie posiadanie sterty w swojej bazie danych

Budowa i typy indeksów indeksy grupujące Indeks grupujący jest to struktura drzewiasta, a dokładniej B-drzewo Jej wierzchołkami są strony zawierające klucz indeksu zaś liście to dane tabeli Dzięki takiej budowie dostęp do danych może być bardzo efektywny Na tabeli można założyd tylko jeden indeks typu CLUSTERED, gdy tak się stanie mówimy, że tabela jest indeksem grupującym.

Budowa i typy indeksów indeksy niegrupujące Indeks niegrupujący jest to także B-drzewo, jednakże strony tego indeksu nie są danymi tabeli, lecz ich kopią identycznie jak przy indeksach grupujących wierzchołkami są strony zawierające klucz indeksu liście indeksu niegrupującego nie zawierają danych, znajdują się na nich jedynie wskaźniki do tabeli źródłowej jeżeli indeksowana przez nas tabela jest indeksem typu CLUSTERED, to wskaźnikiem w indeksie niegrupującym jest klucz tego indeksu

Budowa i typy indeksów indeksy niegrupujące z kolumnami zawieranymi Indeks niegrupujący z kolumnami zawieranymi budową przypomina zwykły indeks niegrupujący Jedyną różnicą między nimi są liście, a dokładniej w indeksie z kolumnami zawieranymi posiadają one nie tylko wskaźnik do tabeli źródłowej lecz także kopię źródłowych danych Dzięki tej różnicy używając indeksu z kolumnami zawieranymi jesteśmy w stanie pozbyć się kosztownych operacji typu KEY LOOKUP

Budowa i typy indeksów indeksy filtrowane Indeksy filtrowane są zostały wprowadzone wraz z SQL Server 2008 Jak wskazuje nazwa możemy w nich użyć filtru w celu wybrania dokładnie tych rekordów, które chcemy zindeksować Dzięki temu, że indeks zawiera tylko wybrane rekordy to zajmuje mniej miejsca na dysku i działa szybciej Filtr jest bardzo intuicyjny w obsłudze przez programistów, gdyż jest to zwykła klauzula WHERE

Budowa i typy indeksów widoki indeksowane W SQL Server możemy kłaść indeksy nie tylko na tabelach, także bezpośrednio na widokach. Ponieważ dane dla takiego widoku są bezpośrednio przechowywane na stronach, to widok taki nazywamy widokiem zmaterializowanym Aby zindeksować widok musi on spełnić szereg wymagań, do najważniejszych z nich można zaliczyć używanie w widoku tylko i wyłącznie tabel jako źródeł danych oraz użycie opcji SCHEMABINDING

Budowa i typy indeksów indeksy typu COLUMNSTORE Indeksy typu columnstore mają być nowością wprowadzoną wraz SQL Server Denali (2012) Ich budowa wewnętrzna różni się od budowy indeksów przedstawianych wcześniej Każda strona indeksu columnstore może przechowywać wartości tylko jednej z kolumn Strony indeksu są skompresowane, ale algorytm kompresji jest inny niż algorytm kompresji danych wprowadzony w SQL 2008 Indeks ten ma szereg ograniczeń, a największym z nich jest brak możliwości aktualizacji zindeksowanej tabeli!!!

Budowa i typy indeksów czego nie omówiliśmy i dlaczego tak się stało Indeksy z ograniczeniem UNIQUE Indeksy typu XML Indeksy pełnotekstowe Indeksy typów geograficznych i geometrycznych

Strategie indeksowania Dobrą praktyką jest zakładanie indeksów grupujących na wszystkich tabelach w naszej bazie Rozważmy takie wybieranie kolumn dla klucza indeksu grupującego by pomógł on nam w wybieraniu dużej ilości wierszy Starajmy się aby klucz indeksu grupującego był jak najkrótszy Jeżeli używamy indeksu klastrowego, to jako jego klucza użyjmy kolumny, która nie zmienia wartości Zawsze gdy mamy taką możliwość używajmy indeksów typu UNIQUE Używajmy indeksów niegrupujących do wybierania pojedynczych wierszy

Strategie indeksowania Rozważmy możliwość użycia indeksów niegrupujących do wstępnych agregacji lub pokrycia zapytań Nie przesadzajmy z ilością kolumn w indeksach Jeżeli łączymy dwie tabele, to połóżmy indeksy na kolumnach występujących w klauzuli JOIN Jeżeli chcemy użyć widoku indeksowanego to dobrze przemyślmy sprawę Jeżeli chcemy użyć indeksu typu COLUMNSTORE - tym bardziej przemyślmy sprawę Pamiętajmy, że indeksy mają też złe strony

Podsumowanie Nieposortowane dane tabeli nazywamy stertą Możemy położyć tylko jeden indeks grupujący na naszej tabeli, dobrze jest robić świadomie Dobrym nawykiem jest to, że zawsze kładziemy indeks grupujący Istnieje wiele rodzajów indeksów niegrupujących, każdy z nich jest przeznaczony do innych celów Indeksy możemy kłaść nie tylko na tabelach Dla specyficznych typów danych SQL Server ma zaprojektowane specjalne rodzaje indeksów