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

Podobne dokumenty
ZAJĘCIA 2. Przed rozpoczęciem zajęć należy wykonać instrukcje z poprzednich laboratoriów bądź z pliku zaj2_prep.sas. FILTROWANIE WIERSZY

ZESTAW 1 SAS 4GL. Język stworzony na potrzeby przetwarzania dużych zbiorów danych. Składają się nań:

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

Indeksowanie w bazach danych

Język SQL, zajęcia nr 1

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

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

Oracle11g: Wprowadzenie do SQL

Internetowe bazy danych

Zmiany funkcjonalne i lista obsłużonych zgłoszeń Comarch DMS , Comarch DMS i Comarch DMS

SAS Podstawowe informacje przed ćwiczeniem 1

SQL (ang. Structured Query Language)

Systemy GIS Tworzenie zapytań w bazach danych

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

Wprowadzenie do SAS. Jak zacząć? Enhanced Editor (1) Uruchamianie programu. Ćwiczenie 3. Definiowanie bibliotek

Ćwiczenie zapytań języka bazy danych PostgreSQL

Podstawy technologii WWW

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

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

Kurs. Podstawy MySQL

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

Tabela wewnętrzna - definicja

Przypisywanie bibliotek w architekturze SAS

SQL SERVER 2012 i nie tylko:

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

QUERY język zapytań do tworzenia raportów w AS/400

1 Obliczenia na danych

Administracja i programowanie pod Microsoft SQL Server 2000

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

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

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

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

Język SQL. Rozdział 2. Proste zapytania

Fizyczna struktura bazy danych w SQL Serwerze

Tytuł: PRZETWARZANIE DANYCH W SAS Autor: Wioletta Grzenda, Aneta Ptak-Chmielewska, Karol Przanowski, Urszula Zwierz. Wstęp

Konfiguracja wyszukiwania na. Sebastian Trueg Polskie tłumaczenie: Krzysztof Woźniak

I. Program II. Opis głównych funkcji programu... 19

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

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

SAS Podstawowe informacje przed ćwiczeniem 2

PAKIETY STATYSTYCZNE

Ref. 7 - Język SQL - polecenia DDL i DML

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

MS Excell 2007 Kurs podstawowy Filtrowanie raportu tabeli przestawnej

PROGRAM DOBORU WYMIENNIKÓW CIEPŁA FIRMY SECESPOL CAIRO 3.2 PODRĘCZNIK UŻYTKOWNIKA

Zapytania do baz danych

Administracja i programowanie pod Microsoft SQL Server 2000

5. Bazy danych Base Okno bazy danych

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

Bazy danych 11. Algorytmy złaczeń. P. F. Góra

Wykład 05 Bazy danych

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

Musesort. Przeczytaj szczegóły pliku. Wyświetla okno ze szczegółami pobranymi z internetu wybranego pliku audio lub video

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu

Instrukcja obsługi programu Do-Exp

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Systemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012:

SZKOLENIE: Administrator baz danych. Cel szkolenia

Wykład 8. SQL praca z tabelami 5

Bazy danych - wykład wstępny

Wprowadzenie do SAS. Wprowadzenie. Historia SAS. Struktura SAS 8. Interfejs: SAS Explorer. Interfejs. Część I: Łagodny wstęp do SAS Rafał Latkowski

Optymalizacja zapytań. Proces przetwarzania i obliczania wyniku zapytania (wyrażenia algebry relacji) w SZBD

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

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

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Korespondencja seryjna

OnLine Analytical Processing (OLAP) Kostki OLAP i zapytania MDX

Wykład 5. SQL praca z tabelami 2

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów.

Administracja i programowanie pod Microsoft SQL Server 2000

System Oracle podstawowe czynności administracyjne

DECLARE VARIABLE zmienna1 typ danych; BEGIN

OPERACJE NA PLIKACH. Podstawowe pojęcia:

Wykład XII. optymalizacja w relacyjnych bazach danych

Paweł Rajba

Wykład. Wprowadzenie do systemu SAS (import i transformacje danych)

Zasady transformacji modelu DOZ do projektu tabel bazy danych

STROJENIE PRZETWARZAŃ SAS

Bazy danych. dr inż. Arkadiusz Mirakowski

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

Microsoft PowerPoint Poziom Zaawansowany PROGRAM SZKOLENIOWY. Plan szkolenia zawiera: Microsoft Excel Poziom Zaawansowany

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Bazy danych. dr Radosław Matusik. radmat

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Administracja i programowanie pod Microsoft SQL Server 2000

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

- - Ocena wykonaniu zad3. Brak zad3

Ćwiczenie 2. Opcja przestrzenna bazy danych

Autor: Joanna Karwowska

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Bazy danych. Polecenia SQL

Transkrypt:

INDEKSY Indeks to plik (o rozszerzeniu sas7bndx) powiązany ze zbiorem, który pozwala na bezpośredni dostęp do obserwacji. Przechowuje wartości obserwacji w porządku rosnącym oraz położenie obserwacji w zbiorze. Indeks dla powyższej tabeli: Wartość zmiennej Day Lokalizacja obserwacji (nr wiersza) Monday 1,2,3,4,5,6,7 Tuesday 8,9,10,11,12,13 Stosowanie indeksów ma swoje korzyści, ale bywa również kosztowne. korzyści szybsze przetwarzanie warunku WHERE możliwość przetwarzania w grupach bez konieczności sortowania bezpośredni dostęp do obserwacji z poziomu Data Stepu przyspieszenie niektóych zapytań w języku SQL (np. łączenia zbiorów) koszty możliwość spowolnienia niektórych operacji przestrzeń dyskowa potrzebna na przechowywanie indeksu czas potrzebny na stworzenie indeksu

Wyróżniamy Indeksy proste a. indeksujemy 1 wartość zmiennej b. nazwa indeksu taka sama jak nazwa zmiennej Przykład tworzenia indeksu prostego: options msglevel=i; *Opcja MSGLEVEL określa poziom szczegółowości wiadomości zapisanej do logu. N - uwagi (notes, stąd N), ostrzeżenia, błędy I - oprócz powyższych również indeksy, informacje na temat mergowania czy sortowania.; data libsas.indeksybl(index=(league)); set libsas.baseball_players; Indeksy złożone a. indeksujemy wartość 2 lub więcej zmiennych b. nazwa indeksu unikalna w obszarze zbioru, nie może by7ć taka jak nazwa którejkolwiek zmiennej Przykład tworzenia indeksu złożonego: options msglevel=i; data libsas.indeksyblp(index=(ind_l_p=(league position)/nomiss)); * opcja UNIQUE zapewnia unikatowosc wartosci zmiennych dla kazdej obserwacji ze zbioru, zas NOMISS sprawia, ze braki danych dla zmiennych kluczowych nie beda uwzgledniane w indeksie; set libsas.baseball_players;

Indeksy można również utworzyć za pomocą procedury PROC DATASETS albo za pomocą PROC SQL. Za pomocą tej procedury możemy również usuwać indeksy Do wyświetlania informacji o indeksach można użyć procedur PROC CONTENTS PROC DATASETS PROC DATASETS LIB=liceum; MODIFY uczniowie; INDEX CREATE nr_buta; QUIT; PROC CONTENTS data=liceum.uczniowie; PROC DATASETS LIB=liceum; MODIFY uczniowie; INDEX DELETE nr_buta; QUIT; PROC CONTENTS data=liceum.uczniowie; Ćwiczenie 25 Na zbiorze CARS_H z biblioteki LIBSAS stworzyć indeks prosty na zmiennej Type oraz indeks złożony o nazwie Type_Origin na zmiennych Type i Origin. Wyświetlić informacje o indeksach w tabeli CARS_H. Skasować stworzone indeksy. Upewnić się, że indeksy zostały skasowane. PYTANIA: 1. Jakie instrukcje pozwalają nam nawigować po DATA STEPIE. Czym się od siebie różnią? 2. Jakie jest domyślne ustawienie opcji MSGLEVEL? 3. Co zrobić żeby w logu pojawiły się informacje o indeksach? 4. Czym jest indeks? 5. Jakie znamy typy indeksów? 6. Jakie koszty i korzyści trzeba wziąć pod uwagę gdy stosuje się indeksy?

WYKORZYSTANIE INDEKSÓW Aby indeksowanie zbiorów miało sens trzeba zastanowić się nad wyborem zmiennej, na podstawie której utworzymy klucz indeksu. Jeżeli szczególnie często wyszukujemy ze zbioru informacji po jednej zmiennej, np. wiek, to to ułatwieniem będzie utworzenie indeksu prostego po tej zmiennej. Nie należy wykorzystywać zmiennych rzadko używanych, gdyż skutkuje to niepotrzebnym przechowywaniem mało używanego pliku. Najlepsze do indeksowania są zmienne, które zwracają najmniejszy podzbiór obserwacji. Które z poniższych indeksowań jest bardziej opłacalne? proc datasets library=libsas; modify serce; index delete _all_; index create AgeAtStart; proc datasets library=libsas; modify serce; index delete _all_; index create sex; Posortowanie zbioru względem zmiennej kluczowej przed utworzeniem indeksu sprawia, że otrzymany indeks szybciej wyodrębnia wskazany podzbiór. Indksy możemy wykorzystywać z instrukcjami WHERE i BY. Indeksy w instrukcji WHERE Jeżeli wyrażenie logiczne w instrukcji WHERE zawiera zmienne indeksowane, to SAS analizuje możliwość wykorzystania indeksów lub ich nieuwzględnienia, tak aby uzyskać najbardziej optymalne przetwarzanie danych. SAS rozpatruje pytania: 1. Czy zmienne w WHERE pokrywają się ze zmiennymi indeksowanymi indeksem prostym? 2. Czy któraś zmienna w WHERE pokrywa się z pierwszą zmienną indeksowaną indeksem złożonym? 3. Czy użycie indeksu zwróci podzbiór obserwacji pokrywający się z kryteriami wyboru z WHERE? 4. Czy użycie indeksu będzie bardziej efektywne niż sekwencyjne czytanie danych? 5. Czy indeks ma opcję NOMISS?

6. Czy w warunku WHERE użyty jest operator arytmetyczny (np. zm=zm1+1) lub porównywane sa zmienne (np. zm1=zm2)? Jeśli 1,3,4, to SAS wykorzystuje indeks prosty. Jeśli 2,3,4, to SAS wykorzystuje indeks złożony. Jeśli warunki są spełnione dla więcej niż jednego indeksu, to SAS wybiera ten, który zwraca najmniejszy podzbiór. Jeśli nie są spełnione 1,3,4 lub 2,3,4, to SAS wybiera przetwarzanie sekwencyjne. Jeśli 5 lub 6, to SAS wybiera przetwarzanie sekwencyjne. Ćwiczenie 26 Spójrz na poniższe przykłady. W którym z nich do optymalizacji WHERE użyto indeksu? Dlaczego? Przykład 1 proc datasets library=libsas; *podajemy biblioteke; modify serce; *podajemy tabele; index delete _all_; *usuwamy wszystkie indeksy; index create sex; *tworzymy indeks prosty na zmiennej sex; data serce; *w bibliotece tymczasowej work tworzymy tabele serce; set libsas.serce; where sex="male";

Przykład 2 data libsas.class; set sashelp.class; proc datasets library=libsas; modify class; index delete _all_; index create sex; data class; *w bibliotece tymczasowej work tworzymy tabele serce; set libsas.class; where sex="f";

Ćwiczenie 27 Stwórz w tabeli libsas.serce indeks prosty na takiej zmiennej, by został on użyty przy optymalizacji WHERE.