Indeksy w bazie danych Oracle

Slides:



Advertisements
Podobne prezentacje
Strojenie SQL w bazie Oracle
Advertisements

Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
INDEKSY I SORTOWANIE ZEWNĘTRZNE
SQL INJECTION Wykorzystanie błędów w językach skryptowych
Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
Podejście relacyjne Podejście relacyjne opiera się na wykorzystaniu do przedstawiania danych modelu relacyjnego i zarządzania nimi matematycznego modelu.
Komponenty bazy danych Baza danych Jest to uporządkowany zbiór powiązanych ze sobą danych charakterystycznych dla pewnej klasy obiektów lub zdarzeń,
WPROWADZENIE DO BAZ DANYCH
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ł 7: Relacje i ograniczenia integralnościowe Język definiowania danych - DDL (Data Definition.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 8: Perspektywy i sekwencery.
Co to jest studium przypadku?
Bezpieczeństwo Procedury składowane Funkcje i Wyzwalacze
Zapytania SQL: wydajność i optymalizacja
Wykład 5 Wojciech Pieprzyca
Rozproszone bazy danych
SQL - język relacyjnych i obiektowo-relacyjnych baz danych
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.
Język SQL (Structured Query Language) DDL (Data Definition Language)
Mechanizm kompresji danych w SQL Server 2008
Teoria relacyjnych baz danych
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
OPERACJA DZIELENIA W SQL
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
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)
Administracja serwerem bazy danych Oracle 11g Zarządzanie strukturą bazy danych Wykład nr 2 Michał Szkopiński.
Administracja serwerem bazy danych Oracle 11g Zarządzanie obiekami bazy danych Wykład nr 4 Michał Szkopiński.
Instrukcje: CREATE, INSERT, UPDATE, DELETE, DROP
Temat 19: Organizacja informacji w bazie danych – część 2.
Andrzej Macioł Bazy danych – SQL – cz. 1. Andrzej Macioł Składowe SZBD Jądro SZBD realizuje podstawowe funkcje związane z przechowywaniem danych, kontrolą
SQL - Structured Query Language
Zarządzanie informacją
Rozwiązanie zadań do zaliczenia I0G1S4 // indeks
Jak zacząć w MS SQL? USE master; GO IF DB_ID (Nbaza') IS NOT NULL DROP DATABASE baza; GO CREATE DATABASE baza; GO USE baza; GO.
Wybrane zagadnienia relacyjnych baz danych
Systemy Zarządzania Bazami Danych
WPROWADZENIE DO BAZ DANYCH
Model relacyjny.
Komendy SQL do pracy z tabelami i bazami
MICROSOFT Access TWORZENIE MAKR
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Bazy danych Microsoft access 2007.
Projektowanie bazy danych
1 SBD, L.Banachowski Podstawy SQL - języka relacyjnych i obiektowo-relacyjnych baz danych (SQL2, SQL'1999, Oracle) Powtórzenie wyk ł adu 3.
Systemy Baz Danych Wykład III
Michał Krawczykowski kl. IIIB
Definiowanie kluczy w tabelach RBD
System plików.
System Zarządzania Bazą Danych
1 SBD, L.Banachowski Zaawansowane cechy SQL Powtórzenie wyk ł adu 5.
Autor: Damian Urbańczyk
Komendy SQL do pracy z danymi
Optymalna konfiguracja Microsoft SQL Server 2014
Projektowanie postaci formularza:
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 –
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Oracle Data Modeler (4.1). Aplikacja Wymagania biznesowe Tworzenie systemu informacyjnego Procesy Informacje Analiza Projektowanie Browser: Hollywood.
Bazy danych. Baza danych (database) – magazyn danych – informacji powiązanych tematycznie, umożliwiający ich wyszukiwanie według zadanych kryteriów Baza.
Temat: Tworzenie bazy danych
Indeksy.
Strukturalny język zapytań SQL - historia
Technologie Informacyjne Bazy danych
Czym są i jak służą społeczeństwu?
Zapis prezentacji:

Indeksy w bazie danych Oracle Autor: Michał Krzyżanowski

Co to jest indeks? Jest to struktura powiązana z tabelą lub klastrem umożliwiająca szybsze wykonywanie zapytań SQL Posiada strukturę logiczną i fizyczną niezależną od tabeli do jakiej się odwołuje Posiada własną przestrzeń dyskową Jest automatycznie utrzymywany przez system zarządzania bazą danych

Po co nam indeksy? Przyspieszają dostęp do danych Tworzone dla relacji Zalety: przyspieszają odczyt danych wpływają na stopień współbieżności wykonywanych operacji Wady: mogą znacznie spowolnić modyfikację danych zajmują przestrzeń dyskową

Podział indeksów: • ze względu na strukturę: - B-drzewa, bitmapowe, • ze względu na liczbę atrybutów indeksowych w kluczu: - indeksy zwykłe i indeksy złożone, • ze względu na unikalność wartości klucza: - indeksy unikalne i indeksy nieunikalne, • ze względu na kolejność wartości klucza: - indeksy zwykłe i indeksy odwrócone, • ze względu na sposób składowania: - indeksy nieskompresowane i indeksy skompresowane, • ze względu na zastosowania: - indeksy funkcyjne i bitmapowe indeksy połączeniowe.

Indeksy typu b-drzewo: Wykorzystywany dla atrybutów o dużej selektywności Wielkość indeksu słabo zależna od rozmiaru dziedziny indeksowanego atrybutu Nie przechowuje informacji o wartościach nullowych CREATE INDEX nazwa_indeksu ON tabela(kolumna);

Indeksy bitmapowe: Wykorzystywane dla atrybutów o małej selektywności, np. płeć Przechowuje wartości nullowe Rozmiar indeksu ściśle zależny od rozmiaru dziedziny atrybutu indeksu Nie można zakładać globalnych indeksów bitmapowych na partycjonowanych tabelach CREATE BITMAP INDEX nazwa_indeksu ON tabela (kolumna);

Indeksy złożone: Składają się z większej niż jedna ilości kolumn Stosuje się je gdy w zapytaniach występuje kilka kolumn w w warunku WHERE Powinno się stosować kolejność kolumn według częstotliwości ich występowania w zapytaniach CREATE INDEX nazwa_indeksu ON tabela (kolumna1, kolumna2, kolumna3);

Indeks unikalny: Tworzony, żeby zapewnić unikalność wartości indeksowanej kolumnie lub kolumnach. Nie można jednocześnie stworzyć indeksu unikalnego i bitmapowego. CREATE UNIXUE INDEX nazwa_indeksu ON tabela (kolumna);

Indeksy odwrócone Wartość w indeksie jest przechowywana w odwrotny sposób niż wartość przechowywana w atrybutach, np. wartość ‘ORACLE’ będzie przechowywana jako ‘ELCARO’ Stosowane do indeksowania sekwencji Powodują rozproszenie wartości w indeksie CREATE INDEX nazwa_indeksu ON tabela (kolumna) REVERSE;

Indeksy skompresowane: Redukuje zajmowaną przestrzeń dyskową poprzez powtarzające się wartości klucza indeksu Zwiększa zyżycie procesora przy przeglądaniu wartości indeksu Dostępne tylko dla indeksów typu B-drzewo CREATE INDEX nazwa_indeksu ON tabela(kolumna) COMPRESS 1;

Indeksy funkcyjne: Indeks przechowuje wartość funkcji lub wyrażenia zamiast wartości kolumny Wykorzystywany dla atrybutów, które w zapytaniach są często argumentami funkcji Indeksowane wyrażenie nie może zawierać funkcji agregujących CREATE INDEX nazwa_indeksu ON tabela (UPPER(kolumna));

Bitmapowe indeksy połączeniowe Jest tworzony przy złączaniu tabel Możliwe jest zastosowanie klauzuli WHERE przy tworzeniu indeksu CREATE BITMAP INDEX nazwa ON relacja (lista_atrybutów) FROM relacja_1, relacja_2, ..., relacja_n WHERE warunek_połączeniowy_1 AND warunek_połączeniowy_2 ... AND warunek_połączeniowy_n-1;

Kryteria wyboru indeksów Dane nie powinny być często modyfikowane Atrybuty często występujące w zapytaniach WHERE Atrybuty używane w warunkach złączeniowych Indeksu powinien znajdować się na innym dysku niż tabela źródłowa

Zarządzanie indeksami: Tworzenie indeksów Przebudowywanie indeksów Monitorowanie indeksów Usuwanie indeksów Zmiana nazwy indeksu

Przebudowa indeksów: ALTER INDEX nazwa_indeksu REBUILD; ALTER INDEX emp_name REBUILD ONLINE; - opcja ONLINE pozwala na modyfikację danych w tabeli źródłowej indeksu podczas jego przebudowy

Monitorowanie indeksu: CREATE INDEX nazwa_indeksu COMPUTE STATISTICS; ALTER INDEX nazwa_indeksu COMPUTE STATISTICS; ALTER INDEX index MONITORING USAGE; - włączanie monitoringu użycia indeksu ALTER INDEX index NOMONITORING USAGE; - wyłączanie monitoringu użycia indeksu

Usuwanie indeksów: DROP INDEX nazwa_indeksu; Nie można usunąć indeksu będącego jednocześnie kluczem unikalnym lub kluczem głównym tabeli. Należy wcześniej wyłączyć lub usunąć te constrainty.

Zmiana nazwy indeksu: ALTER INDEX nazwa_indeksu RENAME TO nowa_nazwa;

Widoki zawierające informacje o indeksach: DBA_INDEXES, ALL_INDEXES, USER_INDEXES - opisują indeksy w bazie danych; DBA_IND_COLUMNS, ALL_IND_COLUMNS, USER_IND_COLUMNS – przechowują informacje o indeksowanych kolumnach; DBA_IND_EXPRESSIONS, ALL_IND_EXPRESSIONS, USER_IND_EXPRESSIONS – opisują wyrażenia używane przez indeksy funkcyjne; DBA_IND_STATISTICS, ALL_IND_STATISTICS, USER_IND_STATISTICS – zawierają statystyki optymalizatora dotyczące indeksów.

Tabele oparte na indeksach: Dane są przechowywane w strukturze B-drzewa Oracle nie buduje tabeli tylko przechowywuje wszystkie wymagane informacje w postaci indeksu

Tworzenie tabeli: CREATE TABLE emp_iot ( emp_id number, ename varchar2(20),    sal number(9,2),    deptno number,    CONSTRAINT pk_emp_iot_index PRIMARY KEY (emp_id) ) ORGANIZATION index;