Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Relacyjne Bazy Danych (Oracle) Prezentacja jest współfinansowana.

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
Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
SQL INJECTION Wykorzystanie błędów w językach skryptowych
Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
Sieci komputerowe.
WPROWADZENIE DO BAZ DANYCH
MS Access 2003 Kwerendy Paweł Górczyński.
Microsoft Office Access
ODE Zapytania. Pętla for (1) Do obiektów będących instancjami klas możemy uzyskać dostęp za pomocą pętli for Zakres tej pętli to wszystkie obiekty klasy.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 8: Perspektywy i sekwencery.
Co to jest studium przypadku?
Wykład nr 1: Wprowadzenie. Pojęcia podstawowe
Bezpieczeństwo Procedury składowane Funkcje i Wyzwalacze
Systemy operacyjne Bibliografia:
SQL-owskie szlaki górskie
Zapytania SQL: wydajność i optymalizacja
Wykład 7 Wojciech Pieprzyca
BD-LAB6 Wojciech Pieprzyca
Wykład 5 Wojciech Pieprzyca
Wstęp do interpretacji algorytmów
Projektowanie fizycznej bazy danych
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
„Relacyjne Bazy Danych (Oracle)”
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.
„Relacyjne Bazy Danych (Oracle)”
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Projektowanie warstwy klienckiej aplikacji internetowych JavaScript.
Structured Query Language
Teoria relacyjnych baz danych
dr inż. Piotr Muryjas Wyższa Szkoła Przedsiębiorczości i Administracji
OPERACJA DZIELENIA W SQL
MS ACCESS Kwerendy.
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
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.
SQL – Structured Query Language (3)
Zbiór do posortowania mieści się w pamięci
Autor: Justyna Radomska
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
Systemy plików FAT, FAT32, NTFS
SQL - Structured Query Language
Architektura PC.
Wybrane zagadnienia relacyjnych baz danych
Autor: Joanna Barańska Promotor: dr inż. Paweł Figat Konsultant:
Elementy zestawu komputerowego
Macierze dyskowe Tymoteusz Szukała.
Bazy danych Microsoft access 2007.
Opracowanie ćwiczeń dotyczących zapewniania niezawodności baz danych na przykładzie Oracle Opiekun : dr inż. Agnieszka Landowska Dyplomant : Tomasz Krzyżanowski.
PL/SQL – dalsza wędrówka
System Zarządzania Bazą Danych
Autor: Damian Urbańczyk
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Technologie mało- i bezodpadowe 1 Problem minimalizacji odpadów.
Język SQL – polecenie Select
Optymalna konfiguracja Microsoft SQL Server 2014
Wstęp do interpretacji algorytmów
BAZY DANYCH MS Access.
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.
Systemy operacyjne - Budowa systemu komputerowego i jego zadania
Warszawska Wyższa Szkoła Informatyki Andrzej Kuska Promotor : dr inż. Paweł Figat Konsultant : mgr inż. Andrzej Ptasznik.
Zapytania ( 3.0 ) wyrażenia zapytaniowe - querry expressions przestrzeń nazw LINQ - Language-Integrated Query 3 etapy : 1. określenie źródła danych, 2.
Optymalizacja zapytań w SQL Server
Optymalizacja SAS OLAP Studio
Technologie Informacyjne Bazy danych
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Relacyjne Bazy Danych (Oracle) Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej - zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych Prezentacja dystrybuowana jest bezpłatnie Politechnika Łódzka, ul. Żeromskiego 116, Łódź, tel. (042)

Optymalizacja Zasoby wykorzystywane przez bazę danych można podzielić na cztery grupy: Jednostka obliczeniowa CPU (Procesor/y) Pamięć masowa (Dysk twardy, macierz dyskowa) Zasoby sieciowe (połączenie sieciowe) Zasoby pamięci operacyjnej (pamięć RAM)

CPU Zasów wykorzystywany we wszystkich operacjach związanych z bazą danych Szybkości działania większości z nich nie można poprawić W przypadku zapytań SQL najczęściej wykorzystywany jest czas procesora do wykonania operacji Przetwarzanie zapytania (Statement Parse) Obliczenia matematyczne w zapytaniach

Pamięć masowa W pamięci masowej przetrzymywane są dane bazy, szybkość pamięci masowej ma kluczowy wpływ na działanie baz danych w zależności od ich rozmiaru W większości zastosowań wykorzystywane są dyski twarde, często połączone w macierze

Pamięć masowa Dysk twardy Budowa Cechy kluczowe wydajności dysku twardego Technologie wykorzystywane w pamięci masowej Dyski mechaniczne ATA/SATA/SATA II (TCQ, NCQ) SCSI/SAS FibreChannel (FC) Dyski SSD (Solid State Drive) Dyski hybrydowe

Pamięć masowa Macierze dyskowe Macierze programowe (software) Macierze sprzętowe Zasada działania Wpływ na wydajność bazy danych

Zasoby sieciowe Baza danych zwykle rezyduje na innej maszynie niż korzystające z niej aplikacje Dane powstałe w wyniku wykonania zapytania SQL muszą być przesłane do klienta W zależności od rozmiaru danych wyjściowych sieć może mieć duży wpływ na wydajność bazy danych z punktu widzenia użytkownika Głównymi cechami posiadającymi wpływ na wydajności są: przepustowość, opóźnienie (oraz jego wariancja), jakość łącza

Pamięć operacyjna Często pomijana w przypadku baz danych Szybkość pamięci operacyjnej ma wpływ na działanie każdej aplikacji W bazie danych Oracle ilość pamięci operacyjnej pozwala na zwiększenie rozmiarów segmentów (SGA, PGA,..), a w szczególności Buffer Cache Library Cache

SQL Tuning Czasami wydajność wykonania operacji SQL zależy od jego formy Zadanie zapytania SQL w innej formie może mieć wpływ na czas jego wykonania

Optymalizator CBO Baza danych Oracle posiada wbudowany komponent, którego celem jest wykonanie zapytania w jak najkrótszym czasie CBO (Cost Based Optimizer) Optymalizator ustala koszt wykonania poszczególnych etapów zapytania W starszych wersjach bazy dostępny był optymalizator działający na regułach Optymalizator CBO analizuje zapytanie, ustala plan dostępu do zasobów w taki sposób, aby koszt wykonania zapytania był jak najmniejszy

Cost Based Optimizer Etapy działania Ewaluacja wyrażeń występujących w zapytaniu Transformacja zapytania (zmiana jego treści) Wybranie celu optymalizacji (domyślnie: przepustowość) Wybór ścieżek dostępu do danych Wybór kolejności łączenia tabel (JOIN)

Cost Based Optimizer Cele działania Największa przepustowość – optymalizacja pod kątem wykorzystania jak najmniejszej liczby zasobów w celu wykonania danego zapytania Najszybsza odpowiedź – optymalizacja mająca na celu zwrócić pierwszy wiersz wyniku zapytania w możliwie najkrótszym czasie i przy wykorzystaniu możliwie najmniejszej ilości zasobów Parametr OPTIMIZER_MODE ALL_ROWS,FIRST_ROWS_n (1,10,100,1000),FIRST_ROWS, RULE (nie używany) ALTER SESSION SET OPTIMIZER_MODE = FIRST_ROWS;

Explain Plan Plan wykonania zapytania SQL składa się z sekwencji akcji uruchamianych po stronie bazy danych mających na celu pobranie danych z pamięci masowej Plan ma formę drzewa, każde dziecko w drzewie jest kolejną operacją. Aby rodzic otrzymał dane, muszą się uruchomić akcje w jego dzieciach (nie muszą się jednak zakończyć – dane mogą być oddawane w czasie rzeczywistym)

Podpowiedzi Na przebieg procesu działania optymalizatora można wpływać stosując tzw: podpowiedzi (Hints) SELECT /*+ HINT */ FROM tabela WHERE... SELECT --+ HINT – FROM tabela WHERE... Np: skanowanie całej tabeli: /*+ FULL(tabela) */ Np: zmiana celu CBO /*+ ALL_ROWS */

Praktyki Ograniczanie liczby wierszy w fazie początkowej zapytania Zmiana konstrukcji warunku może poprawić wydajność W celu dokładnej analizy planu wykonania zapytania można skorzystać z funkcji autotrace set autotrace on select PLAN_TABLE_OUTPUT from TABLE (DBMS_XPLAN.DISPLAY());

Perspektywa V$SQL_PLAN Perspektywa pozwala na podgląd planu wykonania zapytania w postaci tabeli Zagregowanie informacje na temat planu wykonania zapytania można uzyskać z perspektywy V$SQL_PLAN_STATISTICS_ALL select * from V$SQL_PLAN_STATISTICS_ALL order by sql_id

Najważniejsze operacje TABLE ACCESS FULL – pełne skanowanie tabeli TABLE ACCESS ROWID RANGE – przeglądanie tabeli po zestawie wartości ROWID TABLE ACCESS BY INDEX ROWID – przeglądanie tabeli po ROWID uzyskanych ze skanowania indeksu SORT AGGREGATE – pobranie wiersza będącego wynikiem funkcji agregującej SORT GROUP BY – sortowanie wierszy dla operacji grupowania (wyników grupowania) SORT ORDER BY – sortowanie przy zapytaniach z wykorzystaniem ORDER BY SORT UNIQUE – przy wykorzystaniu DISTINCT

Najważniejsze operacje BITMAP (AND,OR,MERGE,MINUS) – wykonanie operacji na indeksach bitmapowych COUNT – operacja zliczania wierszy FILTER – operacja otrzymująca zestaw wierszy a następnie eliminująca te, które nie spełniają odpowiedniego warunku HASH GROUP BY – operacja przeprowadzająca hashowanie tabeli w celu wykonania grupowania HASH UNIQUE – wykorzystane przy DISTINCT

Najważniejsze operacje INDEX RANGE SCAN – pozyskanie zestawu ROWID spełniającego kryteria na podstawie skanowania indeksu INDEX FULL SCAN (DESCENDING) – skanowanie całego indeksu w celu uzyskania pełnego zestawu ROWID spełniającego kryteria VIEW – operacja wykonywana na perspektywie – wyniki są zwracane do pozostałych operacji REMOTE – operacja na zdalnej bazie danych NESTED LOOPS, MERGE JOIN, HASH JOIN – metody wykorzystywane przy łączeniu tabel

JOIN Nested Loops – pętle zagnieżdżone. Efektywne przy łączeniu mniejszych tabel. Dla każdego wiersza z pierwszej tabeli sprawdzany jest warunek z każdym wierszem drugiej tabeli. Dla dużych tabel metoda jest nieefektywna Metoda może wykorzystywać indeksy w celu uproszczenia pętli wewnętrznej, jednak może to nie być optymalne

JOIN Hash JOIN – łączenie dużych tabel. Tworzona jest tablica haszująca dla mniejszej tabeli, po czym wiersze większej tabeli porównywane są z wartością w tablicy haszującej. Operacja blokuje się na czas utworzenia tablicy haszującej, dopiero po jej zbudowaniu wyniki mogą być zwracane użytkownikowi

JOIN Merge JOIN (sort-merge JOIN) – Łączenie danych z użyciem sortowania. Dane muszą zostać posortowane aby ten typ łączenia był efektywny Dane mogą być posortowane od początku, lub kolumny wykorzystane w klauzuli JOIN mogą posiadać indeks typu B-Tree Zaletą tej metody jest fakt, że każda tabela skanowana jest jeden raz Wada – konieczność posortowania obu tabel po kluczu użytym w klauzuli JOIN

Przykłady

Przykłady

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Relacyjne Bazy Danych (Oracle) Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej - zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych Prezentacja dystrybuowana jest bezpłatnie Politechnika Łódzka, ul. Żeromskiego 116, Łódź, tel. (042)