Wydajność hurtowni danych opartej o Oracle10g Database

Podobne dokumenty
"Kilka słów" o strojeniu poleceń SQL w kontekście Hurtowni Danych wprowadzenie. Krzysztof Jankiewicz

Optymalizacja poleceń SQL

Optymalizacja poleceń SQL

Performance Tuning. w środowisku RAC/WebLogic na maszynach Sun T5220

Cwiczenie 4. Połączenia, struktury dodatkowe

Administracja bazy danych Oracle 10g

Oracle10g Database: struktury fizyczne dla hurtowni danych

Optymalizacja poleceń SQL Metody dostępu do danych

System Oracle podstawowe czynności administracyjne

Zarządzanie strukturą bazy danych Oracle11g

Nowe technologie baz danych

(c) Politechnika Poznańska, Instytut Informatyki

Audyt serwera bazy danych Oracle Database 12c

Wprowadzenie do technologii Business Intelligence i hurtowni danych

Optymalizacja poleceń SQL Indeksy

Zarządzanie wolną przestrzenią w bloku. Rozszerzenia

Block Change Tracking

Organizacja przestrzeni danych (2) Struktura bazy danych Oracle. Przestrzenie tabel. baza danych. tabel. tabel. struktury. (relacje, schematy,

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

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

PODSTAWY BAZ DANYCH. 7. Metody Implementacji Baz Danych. 2009/ Notatki do wykładu "Podstawy baz danych" 1

Kosztowy optymalizator zapytań

INDEKSY. Biologiczne Aplikacje Baz Danych. dr inż. Anna Leśniewska

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

Wpływ ustawień parametru wieloblokowego sekwencyjnego czytania danych na czas wykonywania zapytania SQL w bazie danych Oracle 11g

Indeksy. Indeks typu B drzewo

(a) T (b) N (c) N (d) T

Optymalizacja poleceń SQL Wprowadzenie

Fazy przetwarzania polecenia SQL. Faza parsingu (2) Faza parsingu (1) Optymalizacja poleceń SQL Część 1.

Hurtownie danych - przegląd technologii Robert Wrembel Politechnika Poznańska Instytut Informatyki

Statystyki (1) Optymalizacja poleceń SQL Część 2. Statystyki (2) Statystyki (3) Informacje, opisujące dane i struktury obiektów bazy danych.

Rozproszone bazy danych 3

Rozwiązania wspomagające przetwarzanie wielkich zbiorów danych (VLDB) we współczesnych systemach zarządzania bazami danych

Partycjonowanie tabel (1)

Zadania do wykonania na laboratorium

Modele danych - wykład V. Zagadnienia. 1. Wprowadzenie 2. MOLAP modele danych 3. ROLAP modele danych 4. Podsumowanie 5. Zadanie fajne WPROWADZENIE

Modele danych - wykład V

Optymalizacja. Plan wykonania polecenia SQL (1) Plan wykonania polecenia SQL (2) Rozdział 19 Wprowadzenie do optymalizacji poleceń SQL

Oracle11g: Wprowadzenie do SQL

Cwiczenie 2. Metody dostępu do danych

PODSTAWY BAZ DANYCH. 10. Partycjonowanie tabel i indeksów. 2009/ Notatki do wykładu "Podstawy baz danych"

Spis treści. O autorach... 12

Aspekty wydajności systemów opartych na bazie danych Oracle

Hurtownie danych - przegląd technologii

startup pfile= '$HOME/admin/pfile/initDBx.ora'; create spfile from pfile= '$HOME/admin/pfile/initDBx.ora';

PODSTAWY BAZ DANYCH Wykład Partycjonowanie tabel i indeksów

Indeksy. Rozdział 18. Indeksy. Struktura indeksu. Adres rekordu

Archiwizacja i odtwarzanie bazy danych

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

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

Tabela wewnętrzna - definicja

Oracle 12.2 Database Sharding

SQL SERVER 2012 i nie tylko:

Technologia HD w IBM DB2

Optymalizacja poleceń SQL Statystyki

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach

Zarządzanie obiektami bazy danych Oracle11g

Administracja i programowanie pod Microsoft SQL Server 2000

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

ORACLE partycjonowanie

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

Partycjonowanie. Partycjonowanie tabel (1)

DB2 with BLU acceleration rozwiązanie in-memory szybsze niż pamięć operacyjna&

Skąd pomysł na koło naukowe? Dlaczego akurat ORACLE? Co ja z tego będę miał? Czego będę mógł się nauczyć? Kiedy i gdzie będziemy się spotykać?

Architektura Systemu Zarządzania Bazą Danych Oracle

Oracle 10g Real Application Clusters: konfiguracja i administrowanie

Ładowanie i reorganizacja

Hurtownie danych - przegląd technologii

Uprawnienia, role, synonimy

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

1 Projekt fizyczny 1. 3 Perspektywy słownika danych Źródła 12

Architektura komputerów

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

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

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

Hurtownie danych - przegląd technologii

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Hurtownie danych. 31 stycznia 2017

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

Baza danych in-memory. DB2 BLU od środka Artur Wrooski

Nowoczesne bazy danych, czyli przetwarzanie in-memory

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania

Jarosław Kuchta. Administrowanie Systemami Komputerowymi. System plików

Język SQL, zajęcia nr 1

Modelowanie wymiarów

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

Tuning SQL Server dla serwerów WWW

Microsoft SQL Server 2012 Krok po kroku

Oracle PL/SQL. Paweł Rajba.

Autor: Joanna Karwowska

Konsolidacja. OPITZ CONSULTING Kraków

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Oracle Database 12c: podstawy administracji. Maciej Zakrzewicz ExplainIT.pl

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

1 Instalowanie i uaktualnianie serwera SQL Server

Ć wiczenie 3. Statystyki, wskazó wki

Wykład 8. SQL praca z tabelami 5

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. UŜytkownicy i schematy (2) UŜytkownicy i schematy (1) baza danych: ZESP99

Rozszerzenia grupowania

Transkrypt:

Wydajność hurtowni danych opartej o Oracle10g Database 123

Plan rozdziału 124 Transformacja gwiaździsta Rozpraszanie przestrzeni tabel Buforowanie tabel Różnicowanie wielkości bloków bazy danych Zarządzanie blokami bazy danych Sterowanie przydziałem zasobów Oracle Real Application Clusters

Transformacja gwiaździsta (Star Transformation) 125 SELECT SUM(suma_sprzedazy) FROM sprzedaz s, sklepy k, produkty p WHERE s.id_sklepu=k.id_sklepu AND s.id_produktu=p.id_produktu AND p.nazwa_produktu='jumanji' AND k.miejscowosc='new Orleans'; SELECT SUM(s.suma_sprzedazy) FROM sprzedaz s WHERE s.id_sklepu IN (SELECT k.id_sklepu FROM sklepy k WHERE k.miejscowosc='new Orleans') AND s.id_produktu IN (SELECT p.id_produktu FROM produkty p WHERE p.nazwa_produktu='jumanji') Transformacja gwiaździsta polega na automatycznym przepisaniu zapytania gwiaździstego przez optymalizator zapytań Wymaganie: indeksy bitmapowe na kolumnach klucza obcego w tabeli faktów lub bitmapowy indeks połaczeniowy, włączony STAR_TRANSFORMATION_ENABLED Uwaga na: Bug 3454814 - Wrong results possible from STAR TRANSFORMATION

Transformacja gwiaździsta (Star Transformation) 126 SELECT SUM(suma_sprzedazy) FROM sprzedaz s, sklepy k, produkty p WHERE s.id_sklepu=k.id_sklepu AND s.id_produktu=p.id_produktu AND p.nazwa_produktu='jumanji' AND k.miejscowosc='new Orleans'; Plan wykonania ujawnia transformację gwiaździstą SELECT STATEMENT Optimizer=ALL_ROWS (Cost=17 Card=1 Bytes=9) SORT (AGGREGATE) TABLE ACCESS (BY INDEX ROWID) OF 'SPRZEDAZ' (TABLE) (Cost=17 Card=62 Bytes=558) BITMAP CONVERSION (TO ROWIDS) BITMAP AND BITMAP MERGE BITMAP KEY ITERATION TABLE ACCESS (FULL) OF 'PRODUKTY' (TABLE) (Cost=2 Card=2 Bytes=60) BITMAP INDEX (RANGE SC AN) OF 'B2' (INDEX (BITMAP)) BITMAP MERGE BITMAP KEY ITERATION TABLE ACCESS (FULL) OF 'SKLEPY' (TABLE) (Cost=2 Card=1 Bytes=30) BITMAP INDEX (RANGE SC AN) OF 'B1' (INDEX (BITMAP))

Rozpraszanie przestrzeni tabel 127 Przestrzenie tabel przechowujące obiekty hurtowni danych powinny być rozłożone pomiędzy wiele fizycznych urządzeń dyskowych poprawa wydajności przetwarzania równoległego zalecenie Oracle: liczba fizycznych urządzeń dyskowych co najmniej równa liczbie procesorów macierze RAID (0, 1, 0+1, 5) lub manualna dystrybucja przestrzeni tabel dla macierzy RAID Oracle zaleca rozmiar paska (stripe) co najmniej 64kB manualna dystrybucja przestrzeni tabel: CREATE TABLESPACE dw_1 DATAFILE c:\oradata\dw_1_1.dbf SIZE 100M, d:\oradata\dw_1_2.dbf SIZE 100M, e:\oradata\dw_1_3.dbf SIZE 100M

Wielokrotny bufor danych 128 SGA Buffer Cache recycle pool keep pool default pool Definiowanie rozmiarów obszarów bufora danych: Default Pool: DB_CACHE_SIZE Keep Pool: DB_KEEP_CACHE_SIZE Recycle Pool: DB_RECYCLE_CACHE_SIZE Przydział obiektu bazy danych do obszaru bufora danych ALTER TABLE sklepy STORAGE (BUFER_POOL KEEP)

Buforowanie tabel podczas operacji pełnego odczytu 129 Gdy serwer bazy danych wykonuje operację pełnego odczytu tabeli, nie umieszcza jej bloków w buforze danych Wymuszenie buforowania tabel poddawanych operacjom pełnego odczytu (np. tabele wymiarów) ALTER TABLE sklepy CACHE Tabela faktów nie powinna być buforowana, ponieważ jej rozmiar zwykle dalece przekracza rozmiar dostępnej pamięci operacyjnej

Zapytania równoległe 130 ALTER TABLE sprzedaz PARALLEL 2 lub Spowoduje, że zapytania wykorzystujące operację pełnego odczytu tabeli będą wykonywane równolegle z użyciem maks. 2 procesów. SELECT /*+ PARALLEL(sprzedaz,2) */ FROM sprzedaz szeregowo 0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=76 Card=1 Bytes=4) 1 0 SORT (AGGREGATE) 2 1 TABLE ACCESS (FULL) OF 'SPRZEDAZ ' (TABLE) (Cost=76 Card=87489 Bytes=349956) równolegle 0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=42 Card=1 Bytes=4) 1 0 SORT (AGGREGATE) 2 1 PX COORDINATOR 3 2 PX SEND* (QC (RAND OM)) OF ':TQ10000' 4 3 SORT * (AGGREGATE) 5 4 PX BLOCK* (ITERATOR) (Cost=42 Card=87489 Bytes=349 956) 6 5 TABLE ACCESS* (FULL) OF 'SPRZEDAZ' ( TABLE) (Cost=42 Card=87489 Bytes=349956)

Różnicowanie wielkości bloków bazy danych 131 Pliki przestrzeni tabel są logicznie podzielone na bloki, stanowiące jednostki wymiany w operacjach I/O Rozmiar bloku jest stały dla całej przestrzeni tabel, lecz może być różny dla różnych przestrzeni tabel Dla obiektów hurtowni danych, które podlegają operacjom pełnego odczytu (full scan) zaleca się stosowanie dużych rozmiarów bloków bazy danych, np. 32kB CREATE TABLESPACE dw_1 DATAFILE /oradata/dw_1_1.dbf SIZE 100M BLOCKSIZE 16K Duże bloki danych umożliwiają także uzyskanie wyższego stopnia kompresji Administrator bazy danych decyduje o ilości pamięci bufora danych przeznaczanej na buforowanie bloków o różnych rozmiarach ALTER SYSTEM SET DB_16K_CACHE_SIZE = 50M ALTER SYSTEM SET DB_4K_CACHE_SIZE = 10M

Parametry składowania na poziomie bloków niedostępny dla insertów PCTUSED=40% PCTFREE=10% 132 dostępny 100-PCTFREE=90% 0% PCTUSED=40% 100% CREATE TABLE... PCTFREE... PCTUSED... Ustawienie PCTFREE>0 pozwala uniknąć tzw. migracji rekordu w przypadku, gdy modyfikacja rekordu powoduje zwiększenie jego rozmiaru Tabela faktów nie jest modyfikowana zaleca się stosowanie PCTFREE=0

Kompresja bloków tabeli 133 tablica symboli A: 6710, B: 5410, C: POZ, D: WAW, E: GDA 6710 POZ 5410 GDA 6710 WAW 5410 POZ 5410 WAW A B A B B C E D C D blok niekompresowany blok kompresowany CREATE TABLE... COMPRESS Każdy blok jest kompresowany niezależnie Kompresja następuje podczas operacji: ładowania danych ścieżką bezpośrednią SQL*Loadera, CREATE TABLE AS SELECT, zrównoleglonego INSERT, ALTER TABLE MOVE

Sterowanie przydziałem zasobów: Resource Manager 134 Jeżeli w tej samej bazie danych odbywają się różne rodzaje przetwarzania, zaleca się sterowanie przydziałem zasobów (np. CPU, procesy równoległe) za pomocą Resource Managera

Resource Manager: tworzenie grup konsumentów 135 Zdefiniuj grupy konsumenckie gromadzące użytkowników, który powinni być traktowani jednakowo Przypisz użytkowników do grup

Resource Manager: tworzenie planów przydziału zasobów 136 Zdefiniuj plany przydziału zasobów określ ilość zasobów dostępnych dla grup konsumenckich

Resource Manager: aktywacja planu przydziału zasobów 137 W danej chwili serwer bazy danych wykorzystuje dokładnie jeden plan

Oracle Real Application Clusters 138 sesja proces usługowy Oracle Instance Oracle Instance Oracle Instance... Oracle Instance Clusterware Clusterware Clusterware Clusterware Serwer bazy danych Oracle w konfiguracji RAC umożliwia równoległe wykonywanie złożonych zapytań analitycznych na wielu węzłach klastra Współdzielone urządzenia dyskowe (pliki bazy danych) procesy zapytań równoległych

Zalecenia - podsumowanie 139 Stosuj serwery wieloprocesorowe, wielodyskowe Stosuj indeksy bitmapowe i bitmapowe indeksy połąceniowe Tabele faktów umieszczaj w przestrzeni tabel o dużych blokach, tabele wymiarów umieszczaj w przestrzeni tabel o małych blokach Dla tabel faktów stosuj pct_free=0, kompresuj tabele faktów Rozkładaj przestrzenie tabel pomiędzy wiele dysków fizycznych Stosuj partycjonowanie tabel, partycje rozmieszczaj na różnych dyskach fizycznych Zadbaj o to, aby tabele wymiarów przebywały w buforze danych (bufer_pool keep, cache) Stosuj Resource Managera aby operacje analityczne nie wpływały destruktywnie na wydajność operacji OLTP prowadzonych w tej samej bazie danych Korzystaj z zapytań równoległych W przypadku bardzo wysokich wymagań wydajnościowych rozważ wykorzystanie architektury RAC