Systemy Zarządzania Bazami Danych

Slides:



Advertisements
Podobne prezentacje
Indeksy w bazie danych Oracle
Advertisements

CLIMGEN (generator danych pogodowych w modelu CropSyst.
Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
MS Access 2000 Relacje Piotr Górczyński 2005.
Komponenty bazy danych Baza danych Jest to uporządkowany zbiór powiązanych ze sobą danych charakterystycznych dla pewnej klasy obiektów lub zdarzeń,
MS Access 2003 Kwerendy Paweł Górczyński.
MS Access 2000 Kwerendy Piotr Górczyński 25/08/2001.
25/08/ Bazy danych II Piotr Górczyński MS Access – Action Query.
SIECI KOMPUTEROWE (SieKom) PIOTR MAJCHER WYŻSZA SZKOŁA ZARZĄDZANIA I MARKETINGU W SOCHACZEWIE Zarządzanie.
MS Access 2000 Tworzenie tabel Piotr Górczyński 2005.
25/08/ Bazy danych II Piotr Górczyński Administracja MS SQL.
MS Access 2000 Tworzenie bazy danych Piotr Górczyński 2005.
20/09/ Języki programowania 1 Piotr Górczyński Kreator form.
Tworzenie prezentacji w programie PowerPoint
Zapytania SQL: wydajność i optymalizacja
Programowanie wizualne PW – LAB5 Wojciech Pieprzyca.
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.
Język SQL (Structured Query Language) DDL (Data Definition Language)
ACTIVE DIRECTORY Definicja Active Directory.
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
SIEĆ P2P 1. Definicja sieci równouprawnionej. To taka sieć, która składa się z komputerów o takim samym priorytecie ważności, a każdy z nich może pełnić.
MS ACCESS Kwerendy.
SQL – Structured Query Language (3)
MySQL – ODBC - ACCESS.
ADRESOWANIE WZGLĘDNE I BEZWZGLĘDNE Ćwiczenia
Menu Tabela program Microsoft Word
Poznaj bliżej program Microsoft Office Word 2007
Tworzenie nowych kont lokalnych i domenowych, oraz zarządzanie nimi
Arkusze kalkulacyjne, część 3
Linux - polecenia.
Instrukcja USOSweb Wersja: Opracował: Sebastian Sieńko Moduł sprawdzianów.
dr hab. Ryszard Walkowiak prof. nadzw.
Wprowadzenie do obsługi programu PowerPoint
ANNA BANIEWSKA SYLWIA FILUŚ
Lokalizacja i Globalizacja na witrynie w Visual Web Developer 2008 (ASP.Net) Daniel Literski.
Instrukcja obsługi systemu CMS Przygotowanie
Przystawka Zarządzanie dyskami
SQL - Structured Query Language
MAKRA 1.
Przeglądanie zasobów komputera - uruchamianie programów
Defragmentacja dysku Jednym z kluczowych czynników wydajności operacji wejścia/wyjścia jest poziom fragmentacji plików. Fragmentacja oznacza zapisywanie.
Wybrane zagadnienia relacyjnych baz danych
Systemy Zarządzania Bazami Danych
Systemy Zarządzania Bazami Danych Laboratorium 05 Widoki i eksport tabel/widoków 1.
Systemy Zarządzania Bazami Danych
Tworzenie komiksu MS PowerPoint Beata Sanakiewicz.
Komendy SQL do pracy z tabelami i bazami
MICROSOFT Access TWORZENIE MAKR
Wzorce slajdów programu microsoft powerpoint
Znaki specjalne Co i jak + brak przykładów.  Aby wstawić symbol lub znak specjalny należy na karcie Wstawianie w grupie Symbole kliknąć na przycisk Symbol.
prezentacja multimedialna
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Kolumny, tabulatory, tabele, sortowanie
1. Logowanie z usługą Active Directory. a) logowanie do domeny Windows 2003 Server odbywa się znacznie szybciej niż w poprzednich wersjach. b) nie ma odwołania.
Komendy SQL do pracy z danymi
Formatowanie dokumentów
Projektowanie postaci formularza:
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 –
Tworzenie wykresów część I
Microsoft® Office Word
„Filtry i funkcje bazodanowe w EXCELU”
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Moduł ECDL-AM5 Bazy danych, poziom zaawansowany Tabele, relacje.
Excel 2007 dla średniozaawansowanych Zajęcia z Prowadzący: Artur Kołos.
Temat: Tworzenie bazy danych
Menu Opcje.
Wybór nazwy lub słów kluczowych dla interesującego nas szeregu czasowego. Opcjonalnie – ustawienie innych dostępnych atrybutów szukania.
Strukturalny język zapytań SQL - historia
Zapis prezentacji:

Systemy Zarządzania Bazami Danych Laboratorium 07 Indeksy

Agenda laboratorium Wprowadzenie - indeksy CREATE INDEX CREATE INDEX – Management Studio Wprowadzenie – indeksy FULLTEXT CREATE FULLTEXT INDEX CREATE FULLTEXT INDEX – Management Studio DROP INDEX Zadania

Wprowadzenie - indeksy Specjalne struktury zwane indeksami są dostępne praktycznie we wszystkich systemach bazodanowych na rynku. Indeksy służą do optymalizacji procesu szukania danych w bazie. Zazwyczaj mają one strukturę B-drzewa, co znacznie skraca czas dostępu do interesujących użytkownika danych. Indeksy w bazie danych można porównać do spisu treści w książce. Silnik bazy danych dzięki indeksom nie jest zmuszony do przeszukiwania tabel rekord po rekordzie. Przeszukiwanie dużej bazy danych, w której istnieje przykładowo kilka milionów rekordów w danej tabeli byłoby odczuwalnie czasochłonne. W Systemie SQL Server 2005 wyróżnia się następujące typy indeksów: Clustered – dane tabeli są fizycznie posortowane i zapisane według klucza tabeli wskazanego do indeksowania. Nonclustered – ten typ indeksowania można uznać za dodatkowy, ponieważ stosuje się go w tabelach z zaimplementowanym indeksowaniem. Dane są zapisywane zgodnie z kolejnością kluczy indeksów, jednakże nie jest to gwarantowane jeśli na danej tabeli/widoku nie jest nałożone indeksowanie typu clustered.

Wprowadzenie - indeksy Unique – klucz indeksu zapewnia unikatowość danych. W danej tabeli/widoku dane rekordu muszą być w pewien sposób unikatowe w stosunku do danych innych rekordów. Indeksowanie unique może być stosowane zarówno z indeksowaniem Clustered jak i Nonclustered. Index with included columns - jest to indeksowanie typu Nonclustered z rozszerzeniem o kolumny nie będących kluczami tabeli. Indexed views – indeksowanie widoku , widok i wynik jego przeglądania jest na stałe zapisywane podobnie jak tabela z indeksami clustered. Indeksy nonclustered mogą być nałożone na widok jeżeli wcześniej stworzono dla niego indeksowanie clustered. Full-text – specjalny typ indeksów bazujących na znakach. Jest on wykonany i utrzymywane przez usługę Microsoft Full-Text Egine for SQL Server. Stosuje się go jeżeli występuje potrzeba skomplikowanego przeszukiwania łańcuchów znaków. XML – indeksowanie przeznaczone dla tabel zapisanych w postaci XML

CREATE INDEX Tworzenie indeksów wykonuje się za pomocą klauzuli CREATE INDEX. Dodatkowo przed słowem kluczowym INDEX można określić czy indeks ma być unikatowy (UNIQUE) oraz typ indeksowania, czyli CLUSTERED lub NONCLUSTERED. Następnie po elemencie INDEX podaje się unikalną w bazie danych nazwę indeksu. Element ON określa dla jakiego obiektu (tabela/widok) ma być tworzony indeks oraz w nawiasie wyróżnia się kolumnę (lub kolumny) oznaczoną kluczem (obcym lub głównym) będącą podstawą do indeksowania danych w tabeli/widoku. Dodatkowo można określić czy indeks ma posortować dane rosnąco (ASC) czy malejąco (DES). WITH poszerza możliwości ustawień indeksowania (zostały one opisane w dalszej części laboratorium). Również istnieje możliwość określenia do jakiego schematu partycji oraz dla jakiej kolumny ma być zastosowane partycjonowanie indeksu (ON { partition_scheme_name…). Należy wtedy również określić grupę plików w jakiej znajdzie się indeks. W przeciwnym przypadku indeks domyślnie znajdzie się w tym samym schemacie partycjonowania i grupie plików co indeksowana tabela. W laboratorium nie ujęto polecenia ALTER INDEXT i ALTER FULLTEXT INDEX ponieważ są one niemalże identyczne Jak polecenia typu CREATE dla indeksów. Proszę się odwołać do dokumentacji w razie potrzeby.

CREATE INDEX CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name ON <object> ( column [ ASC | DESC ] [ ,...n ] ) [ INCLUDE ( column_name [ ,...n ] ) ] [ WITH ( <relational_index_option> [ ,...n ] ) ] [ ON { partition_scheme_name ( column_name ) | filegroup_name | default } ] [ ; ]

CREATE INDEX - object <object> ::= { Poniższa gałąź pokazuje jak należy definiować nazwę tabeli lub widoku. Jeżeli obiekt jest przypisany do schematu w bazie danych to należy go podać przed nazwą tabeli/widoku i oddzielić nazwy znakiem kropki. <object> ::= { [ database_name. [ schema_name ] . | schema_name. ] table_or_view_name }

CREATE INDEX Opcje indeksowania dostępne pod < relational_index_option > dają możliwość wyspecyfikowania sposobu indeksowania. Opcja FILLFACTOR określa ilość wolnego miejsca w stronach danych. Jest ono przeznaczone dla danych które mogą być dodane do tabeli. Domyślnie system pozostawia minimalną ilość miejsca, co może spowolnić masowe ładowanie danych. Ponieważ wtedy dane ze stron są dzielone pomiędzy dwie nowe strony aby udostępnić miejsca nowym rekordom. Wiąże się to ze spadkiem wydajności dodawania nowych rekordów do tabeli a zarazem nie zajmuje przestrzeni dyskowej na wyrost. FILLFACTOR służy do procentowego określenia wolnego miejsca dla najniższych stron danych (liści) w strukturze B-drzewa oraz określa wartość dla opcji PAD_INDEX. Jeżeli zostanie poda liczba 80 to oznacza, że 20% miejsca na stronie będzie pusta. PAD_INDEX czerpie wartość z FILFACTIOR i określa ilość wolego miejsca na stronach „pośrednich”, pomiędzy korzeniem B-drzewa a liśćmi. Opcja SORT_IN_TEMPDB (ON) wspiera tworzenie indeksów. Wykorzystywana jest wtedy tymczasowa baza danych (tempdb) systemu SQL Server. Wynik pośredniego sortowania jest przechowywany w tempdb dzięki czemu można zmniejszyć czas tworzenia indeksów, ma to racjonalne zastosowanie jeżeli tymczasowa baza danych fizycznie znajduje się na innym dysku niż sortowane dane. Jeżeli tworzy się unikatowe indeksy (UNIQUE) to w przypadku napotkania zduplikowanych danych wyznaczonych dla indeksowania zostanie wyświetlone ostrzeżenie. Proces indeksowania nie zostanie przerwany jeżeli opcja IGNORE_DUP_KEY będzie miała wartość ON.

CREATE INDEX STATISTICS_NORECOMPUTE określa czy dana tabela ma mieć ponownie przeliczone statystyki. W przypadku wybrania wartości ON statystyki nie będą automatycznie przeliczone. Funkcja DROP_EXISTING pozwala na usunięcie przebudowanie istniejącego indeksu jeżeli jego nazwa jest taka sama jak indeksu tworzonego. Zaś DROP_EXISTING ustawione na OFF nie pozwoli zbudować indeksu o identycznej nazwie. Tworzenie indeksów wymaga wstrzymania dostępu do tabeli. Do określenia czy tabela ma być dostępna podczas procesu indeksowania określa opcja ONLINE. Opcja ta ustawiona na ON powoduje, że tabela jest niedostępna tylko na krótki czas. ONLINE z ustawieniem OFF nie pozwala na modyfikacje tabeli, aczkolwiek przeglądanie tabeli nie jest zabronione (można wykonywać zapytania typu SELECT). Warto dodać, że opcja ta jest dostępna dopiero w wersji SQL Server 2005 Enterprice. ALLOW_ROW_LOCKS oraz ALLOW_PAGE_LOCKS Blokuje dostęp do danych, które są indeksowane (parametr OFF zwalnia blokady). W przypadku ALLOW_PAGE_LOCKS jest to zablokowanie strony z danymi zaś w ALLOW_ROW_LOCKS jest to dany rekord. Domyślnie oba te parametry są ustawione na ON (silnik bazy danych sam określa, które dane mają być niedostępne). MAXDOP czyli maksymalna liczba procesorów, które będą brały udział w procesie indeksowania. Maksymalnie można podać 64 procesory do wykonywania zadań równoległych. Domyślna wartość jest równa 0 co oznacza, że proces będzie wykonywany przez wszystkie dostępne procesory.

CREATE INDEX - relational_index_option { PAD_INDEX = { ON | OFF } | FILLFACTOR = fillfactor | SORT_IN_TEMPDB = { ON | OFF } | IGNORE_DUP_KEY = { ON | OFF } | STATISTICS_NORECOMPUTE = { ON | OFF } | DROP_EXISTING = { ON | OFF } | ONLINE = { ON | OFF } | ALLOW_ROW_LOCKS = { ON | OFF } | ALLOW_PAGE_LOCKS = { ON | OFF } | MAXDOP = max_degree_of_parallelism }

CREATE INDEX – Management Studio Management Studiu umożliwia na tworzenie indeksów za pomocą interfejsu graficznego. Aby utworzyć lub zmienić indeksowanie w tabeli należy w Object Explorer kliknąć prawym przyciskiem myszy na danej tabeli i wybrać polecenie Design.

CREATE INDEX – Management Studio Po otwarciu edycji danej tabeli, należy kliknąć prawym przyciskiem myszy na tabeli kolumn i wywołać polecenie Indexes/Keys tak jak na rysunku poniżej.

CREATE INDEX – Management Studio W nowym oknie, Indexes/Keys (Rys 4.15) dostępne są opcje indeksowania. W nim wybiera się na podstawie jakiej kolumny ma zostać stworzone indeksowanie. Ramka w dolnej prawej stronie okna posiada spis opcji kolumny oraz między innymi właściwości indeksowania, które zostały opisane we wcześniejszej części rozdziału przy poleceniu CREATE INDEX. Po skonfigurowaniu opcji indeksowania wystarczy kliknąć przycisk Add aby dodać indeksowanie.

Wprowadzenie – indeksy FULLTEXT Indeksy typu Full-Text są specyficzną odmianą indeksowania. Tego typu indeksowanie tworzy się dla kolumn, które przechowują ciągi znaków. Przeszukiwanie ciągów znaków w tabelach jest bardzo obciążające dla systemu bazy danych a zwykłe indeksowanie nie obejmuje kolumn typu łańcuchowego. Dlatego wprowadzono indeksowanie Full- Text.

CREATE FULLTEXT INDEX Zanim administrator zacznie tworzyć indeksowanie Full-Text musi stworzyć katalog Full Text poleceniem CREATE FULLTEXT CATALOG. Następnie można przejść do tworzenia indeksowania. Komenda CREATE FULLTEXT INDEX ON tworzy omawiane indeksowanie. Jako table_name należy podać nazwę tabeli, która będzie indeksowana. Kolejnym krokiem jest określenie kolumny i jej typu oraz opcjonalnie nazwę języka danych (Angielski, Chiński etc.). Element KEY INDEX służy do podania kolumny, która jest kluczem głównym w tabeli, i jest on niezbędny do indeksowania. Następnie po elemencie ON można podać nazwę wcześniej stworzonego katalogu indeksowania Full-Text. Opcja WITH umożliwia ustawienie aktualizacji indeksowania (CHANGE_TRACKING). Dostępne są trzy sposoby aktualizacji indeksów po zmodyfikowaniu danych w tabeli. MANUAL oznacz, że proces ten będzie uruchamiany przez administratora ręcznie lub zgodnie z planem utrzymania bazy danych, jeżeli obejmuje on omawianą aktualizację indeksów. Ustawienie AUTO pozwala na automatyczne aktualizowanie i będzie to zarządzane przez system bazy danych. OFF wyłącza aktualizowanie, zaś dodatkowy parametr NO POPULATION oznacza, że proces indeksowania danych nie nastąpi pomimo stworzenia indeksu Full-Text.

CREATE FULLTEXT INDEX CREATE FULLTEXT INDEX ON table_name [(column_name [TYPE COLUMN type_column_name] [LANGUAGE language_term] [,...n])] KEY INDEX index_name [ON fulltext_catalog_name] [WITH {CHANGE_TRACKING {MANUAL | AUTO | OFF [, NO POPULATION]}} ]

CREATE FULLTEXT INDEX – Management Studio Kreowanie indeksowania Full-Text jest opatrzone prostym kreatorem w Management Studio. Aby go uruchomić Należy kliknąć prawym przyciskiem myszy na tabelę w oknie Object Explorer i następnie rozwinąć polecenie Full-text index i wybrać Define Full-text.

CREATE FULLTEXT INDEX – Management Studio W pierwszym oknie kreatora należy wybrać kolumnę klucza głównego tabeli. W następnym kroku (po naciśnięciu przycisku Next) można zaznaczyć kolumny, które zostaną poddane indeksowaniu; można wybrać więcej niż jedną (rysunek na następnym slajdzie). Po kliknięciu Next w oknie kreatora wybiera się sposób aktualizacji indeksów (Automatically, Manually lub Do not track change). W kolejnym kroku producent SQL Server zastosował ciekawe rozwiązanie. Jest to możliwość stworzenia katalogu indeksów. Oczywiście można wybrać już istniejący, ale jeśli administrator jeszcze nie stworzył go to właśnie może to wykonać w tym kroku. Na ostatniej (edytowalnej) stronie kreatora można opcjonalnie określić plan aktualizacji indeksów. Aktualizacja może nastąpić między innymi po tym jak procesor serwera przejdzie w stan bezczynności lub w czasie dokładnie określonym przez administratora bazy.

CREATE FULLTEXT INDEX – Management Studio

Zadania Zadania proszę wykonać za pomocą języka SQL, następnie spróbować odwzorować je w Management Studio. Zadania dotyczą bazy Restauracja. 1. Stwórz indeks typu clustered na tabeli GODZINY_PRACY. -ilość wolnego miejsca na stronach danych ma wynosić 90% -statystki nie mają być przeliczane -tabela TempDB ma nie wspierać indeksowania -jeżeli będzie na tabeli indeksowanie, to ma zostać ono nadpisane -podczas indeksowania tabela ma nie być w trybie ONLINE -rekordy i strony danych mają być zablokowane -wolne miejsce na stronach danych – „pośrednich”, ma być domyślna 2. Stwórz indeks typu nonclustered, tak na wzór tego z 1 zadania. ale nie określaj wolnej przestrzeni na stronach danych. Indeks ma ma być nałożony na kolumnę ILOSC_GODZIN 3. Stwórz katalog FULL-TEXT index (dokumentacja - CREATE FULLTEXT CATALOG). 4. Dodaj indeksowanie typu FullText dla tabeli ZYWNOSC na kolumnę Nazwa. -indeks ma nie być aktualizowany -proces indeksowania ma nie rozpocząć się po jego stworzeniu (tylko Management Studio) -uruchom ręcznie indeksowanie (tylko Management Studio)

Koniec laboratorium 07