Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00483 006722 14291960 na godz. na dobę w sumie
Oracle Database 12c. Problemy i rozwiązania - ebook/pdf
Oracle Database 12c. Problemy i rozwiązania - ebook/pdf
Autor: , , Liczba stron: 552
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-9804-2 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> bazy danych >> oracle - programowanie
Porównaj ceny (książka, ebook, audiobook).

Twoja ostatnia deska ratunku przy problemach z bazą Oracle12c

Oracle to jedna z najpopularniejszych baz danych na świecie i znajduje zastosowanie w wielu firmach. W jej tabelach przechowywane są gigantyczne ilości danych. Zasoby te są każdego dnia przetwarzane na wiele sposobów, a szybkość dostępu do rezultatów w sposób kluczowy wpływa na efektywność pracy całej masy ludzi. Jeżeli dostęp do danych jest utrudniony, to administrator bazy musi błyskawicznie zlokalizować i rozwiązać problem.

Dzięki tej książce będziesz przygotowany na najbardziej stresujące sytuacje spotykane w codziennej pracy administratora. W trakcie lektury opanujesz techniki optymalizacji wykorzystania pamięci i dysków, czasu trwania zapytań SQL oraz wydajności. Znajdziesz tu również liczne opisy problemów z życia wziętych oraz najlepsze sposoby ich rozwiązywania. Ponadto nauczysz się monitorować pracę systemu i zidentyfikujesz problemy, zanim dotkną one jego użytkowników. Przekonasz się, jak kluczową rolę pełnią właściwie dobrane indeksy. Książka ta jest obowiązkową pozycją dla każdego administratora bazy danych!

Dzięki tej książce: Błyskawicznie rozwiąż problemy z bazą danych!
Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Tytuł oryginału: Oracle Database 12c Performance Tuning Recipes: A Problem-Solution Approach Tłumaczenie: Andrzej Watrak ISBN: 978-83-246-9801-1 Original edition copyright © 2013 by Sam R. Alapati, Darl Kuhn, and Bill Padfield. All rights reserved. Polish edition copyright © 2015 by HELION SA. All rights reserved. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie bierze jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Wydawnictwo HELION nie ponosi również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/or12pr.zip Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/or12pr Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis tre(cid:258)ci O autorach ....................................................................................................... 13 O korektorach merytorycznych ........................................................................ 15 Podzi(cid:218)kowania ................................................................................................ 17 Wprowadzenie ................................................................................................ 19 Rozdzia(cid:239) 1. Optymalizacja wydajno(cid:258)ci tabel ...................................................................... 21 1.1. Tworzenie maksymalnie wydajnej bazy danych ............................................................... 22 1.2. Tworzenie przestrzeni tabel i maksymalizacja wydajności ............................................. 26 1.3. Dobór typów tabel do wymagań biznesowych .................................................................. 28 1.4. Dobór cech tabel zwiększających wydajność ..................................................................... 29 1.5. Właściwy dobór typów danych ........................................................................................... 31 1.6. Zapobieganie opóźnieniom przydzielania rozszerzeń podczas tworzenia tabel .......... 35 1.7. Maksymalizacja prędkości ładowania danych .................................................................. 37 1.8. Wydajne usuwanie danych z tabel ...................................................................................... 39 1.9. Wyświetlanie automatycznych zaleceń narzędzia Segment Advisor ............................. 42 1.10. Ręczne generowanie zaleceń narzędzia Segment Advisor ............................................ 44 1.11. Automatyczne wysyłanie pocztą e-mail zaleceń narzędzia Segment Advisor ........... 48 1.12. Przebudowa wierszy obejmujących kilka bloków .......................................................... 49 1.13. Wykrywanie łańcuchowania i migracji wierszy .............................................................. 53 1.14. Odróżnienie migracji od łańcuchowania wierszy .......................................................... 54 1.15. Proaktywne zapobieganie migracji/łańcuchowaniu wierszy ........................................ 55 1.16. Wykrywanie niewykorzystanego miejsca w tabeli ......................................................... 56 1.17. Śledzenie i wykrywanie miejsca poniżej wskaźnika zajętości ....................................... 57 1.18. Zastosowanie pakietu DBMS_SPACE do wykrywania wolnego miejsca poniżej wskaźnika zajętości .................................... 59 1.19. Zwalnianie niewykorzystanego miejsca w tabelach ....................................................... 60 1.20. Kompresja danych podczas ładowania za pomocą bezpośredniej ścieżki .................. 61 1.21. Kompresja danych dla wszystkich instrukcji DML ........................................................ 64 1.22. Kompresja danych na poziomie kolumny ....................................................................... 65 Rozdzia(cid:239) 2. Dobór i optymalizacja indeksów ..................................................................... 67 2.1. Czym są B-drzewa? ................................................................................................................ 69 2.2. Wybór kolumn do indeksowania ........................................................................................ 75 2.3. Tworzenie ograniczenia klucza podstawowego i indeksu ............................................... 78 Kup książkęPoleć książkę SPIS TRE(cid:165)CI 2.4. Zapewnienie unikatowości wartości w kolumnie ............................................................. 80 2.5. Indeksowanie kolumn z kluczami obcymi ........................................................................ 82 2.6. Kiedy stosować indeks łączony ............................................................................................ 85 2.7. Zmniejszenie wielkości indeksu za pomocą kompresji ................................................... 87 2.8. Implementacja indeksu funkcyjnego .................................................................................. 89 2.9. Indeksowanie kolumny wirtualnej ..................................................................................... 91 2.10. Ograniczenie rywalizacji o miejsce w indeksie podczas kilku równoległych procesów umieszczania danych .................................... 92 2.11. Przełączanie widoczności indeksu dla optymalizatora .................................................. 93 2.12. Tworzenie indeksu bitmapowego dla schematu gwiaździstego ................................... 95 2.13. Tworzenie łączonego indeksu bitmapowego .................................................................. 97 2.14. Tworzenie tabeli indeksowej ............................................................................................. 98 2.15. Monitorowanie wykorzystania indeksów ...................................................................... 100 2.16. Maksymalizacja szybkości tworzenia indeksu .............................................................. 101 2.17. Odzyskiwanie niewykorzystanego miejsca indeksu ..................................................... 103 Rozdzia(cid:239) 3. Optymalizacja pami(cid:218)ci instancji bazy danych ................................................ 107 3.1. Automatyczne zarządzanie pamięcią ............................................................................... 107 3.2. Zarządzanie wieloma buforami ......................................................................................... 110 3.3. Określenie minimalnych wielkości pamięci .................................................................... 112 3.4. Kontrola operacji zmiany wielkości pamięci ................................................................... 113 3.5. Optymalizacja wykorzystania pamięci ............................................................................. 114 3.6. Regulacja przydziału pamięci obszarowi PGA ................................................................ 115 3.7. Konfiguracja pamięci podręcznej serwera ....................................................................... 118 3.8. Zarządzanie pamięcią podręczną serwera ....................................................................... 120 3.9. Zapamiętywanie wyników zapytań SQL .......................................................................... 122 3.10. Zapisywanie wyników w pamięci podręcznej klienta .................................................. 125 3.11. Zapamiętywanie wyników funkcji PL/SQL ................................................................... 127 3.12. Konfiguracja pamięci podręcznej Smart Flash ............................................................. 130 3.13. Regulacja bufora dziennika powtórzeń .......................................................................... 131 3.14. Ograniczenie przydziału pamięci obszaru PGA ........................................................... 133 Rozdzia(cid:239) 4. Monitoring wydajno(cid:258)ci systemu .................................................................... 135 4.1. Implementacja repozytorium AWR ................................................................................. 136 4.2. Zmiana interwału zbierania i okresu przechowywania statystyk ................................. 137 4.3. Ręczne tworzenie raportów AWR .................................................................................... 139 4.4. Tworzenie raportów AWR za pomocą aplikacji Enterprise Manager ......................... 142 4.5. Tworzenie raportu AWR dla wybranego zapytania SQL .............................................. 143 4.6. Tworzenie statystyk odniesienia bazy danych ................................................................ 145 4.7. Zarządzanie statystykami odniesienia za pomocą aplikacji Enterprise Manager ...... 148 4.8. Zarządzanie repozytorium statystyk AWR ...................................................................... 149 4.9. Automatyczne tworzenie statystyk odniesienia .............................................................. 151 4.10. Szybka analiza raportów AWR ........................................................................................ 153 4.11. Ręczne pozyskiwanie informacji o aktywnych sesjach ................................................ 154 4.12. Pozyskiwanie informacji ASH z aplikacji Enterprise Manager .................................. 159 4.13. Pozyskiwanie informacji ASH ze słownika danych ..................................................... 160 Rozdzia(cid:239) 5. Minimalizacja rywalizacji o zasoby ................................................................ 165 5.1. Czas odpowiedzi bazy ......................................................................................................... 165 5.2. Identyfikacja najdłużej oczekujących zapytań SQL ........................................................ 168 5.3. Analiza zdarzeń oczekiwania ............................................................................................. 169 6 Kup książkęPoleć książkę SPIS TRE(cid:165)CI 5.4. Klasy zdarzeń oczekiwania ................................................................................................. 170 5.5. Badanie zdarzeń oczekiwania sesji .................................................................................... 171 5.6. Badanie zdarzeń oczekiwania według klas ...................................................................... 173 5.7. Rozwiązywanie problemu oczekiwania na zajęty bufor ................................................ 175 5.8. Rozwiązywanie problemu oczekiwania na synchronizację pliku dziennika .............. 177 5.9. Minimalizacja czasu oczekiwania na odczyt danych w innej sesji ............................... 178 5.10. Zmniejszenie liczby zdarzeń oczekiwania na bezpośredni odczyt pliku ................... 179 5.11. Minimalizacja czasu oczekiwania na proces Recovery Writer ................................... 181 5.12. Wyszukiwanie przyczyny blokady .................................................................................. 182 5.13. Identyfikacja sesji blokowanych i blokujących ............................................................. 183 5.14. Obsługa blokad .................................................................................................................. 185 5.15. Identyfikacja zablokowanego obiektu ............................................................................ 186 5.16. Obsługa zdarzeń enq: TM – contention ........................................................................ 187 5.17. Identyfikacja ostatnio zablokowanych sesji ................................................................... 189 5.18. Analiza ostatnich zdarzeń oczekiwania w bazie danych ............................................. 192 5.19. Określenie czasu oczekiwania spowodowanego blokadą ............................................ 193 5.20. Minimalizacja czasu oczekiwania na zatrzaski ............................................................. 195 Analiza wydajno(cid:258)ci systemu operacyjnego ................................................... 199 6.1. Wykrywanie problemów z miejscem na dysku ............................................................... 201 6.2. Identyfikacja słabych punktów systemu .......................................................................... 203 6.3. Określenie procesów wykorzystujących najwięcej zasobów systemu .......................... 205 6.4. Wykrywanie problemów z procesorem ........................................................................... 207 6.5. Identyfikacja procesów zajmujących procesor i pamięć ................................................ 209 6.6. Identyfikacja problemów z dyskami ................................................................................. 210 6.7. Wykrywanie procesów obciążających sieć ....................................................................... 213 6.8. Kojarzenie procesu zajmującego zasoby z bazą danych ................................................ 214 6.9. Przerywanie procesu zajmującego dużo zasobów systemu ........................................... 217 Rozdzia(cid:239) 6. Rozdzia(cid:239) 7. Rozwi(cid:200)zywanie problemów z baz(cid:200) danych ................................................... 219 7.1. Określenie optymalnego okresu przechowywania danych o wycofaniach transakcji ................................................................................................ 219 7.2. Wyszukiwanie obiektów zajmujących najwięcej miejsca w przestrzeni wycofań ..................................................................................................... 224 7.3. Eliminacja błędu ORA-01555 ............................................................................................ 225 7.4. Kontrola wykorzystania tymczasowej przestrzeni ......................................................... 227 7.5. Identyfikacja obiektów zajmujących przestrzeń tymczasową ....................................... 228 7.6. Eliminacja błędu „Unable to Extend Temp Segment” ................................................... 229 7.7. Eliminacja błędów otwartego kursora .............................................................................. 231 7.8. Odblokowanie zawieszonej bazy danych ......................................................................... 233 7.9. Korzystanie z interpretera ADRCI ................................................................................... 237 7.10. Przeglądanie logu alarmów za pomocą poleceń ADRCI ............................................. 240 7.11. Przeglądanie incydentów za pomocą interpretera ADRCI ......................................... 242 7.12. Pakowanie incydentów dla zespołu pomocy technicznej Oracle ............................... 243 7.13. Wykonanie testu stanu bazy danych .............................................................................. 245 7.14. Tworzenie testu SQL ......................................................................................................... 247 7.15. Tworzenie raportu AWR ................................................................................................. 249 7.16. Porównywanie wydajności bazy z dwóch okresów ...................................................... 252 7.17. Analiza raportu AWR ....................................................................................................... 253 7 Kup książkęPoleć książkę SPIS TRE(cid:165)CI Rozdzia(cid:239) 8. Rozdzia(cid:239) 9. Tworzenie wydajnych zapyta(cid:241) SQL ............................................................... 259 8.1. Odczytywanie wszystkich wierszy tabeli .......................................................................... 260 8.2. Odczytywanie zestawu wierszy tabeli ............................................................................... 261 8.3. Łączenie tabel odpowiednimi wierszami ......................................................................... 263 8.4. Łączenie tabel z brakującymi wierszami .......................................................................... 266 8.5. Tworzenie prostych podzapytań ....................................................................................... 269 8.6. Tworzenie podzapytań skorelowanych ............................................................................ 272 8.7. Porównywanie dwóch tabel z brakującymi wierszami .................................................. 274 8.8. Porównywanie dwóch tabel i wyszukiwanie wspólnych wierszy ................................. 276 8.9. Łączenie wyników podobnych zapytań SELECT ........................................................... 277 8.10. Przeszukiwanie zakresu wartości .................................................................................... 279 8.11. Przetwarzanie wartości NULL ......................................................................................... 282 8.12. Wyszukiwanie fragmentów wartości w kolumnach ..................................................... 285 8.13. Wielokrotne użycie zapytań zapisanych we współdzielonym buforze ...................... 288 8.14. Zapobieganie przypadkowemu pełnemu skanowaniu tabeli ...................................... 292 8.15. Tworzenie wydajnych widoków tymczasowych ........................................................... 294 8.16. Unikanie operatora NOT ................................................................................................. 296 8.17. Sterowanie wielkością transakcji ..................................................................................... 298 R(cid:218)czna regulacja zapyta(cid:241) SQL ....................................................................... 301 9.1. Wyświetlenie planu wykonania zapytania ....................................................................... 302 9.2. Dostosowanie zawartości planu wykonania .................................................................... 304 9.3. Graficzne przedstawienie planu wykonania .................................................................... 307 9.4. Jak czytać plan wykonania ................................................................................................. 308 9.5. Obserwacja długotrwałych zapytań SQL ......................................................................... 310 9.6. Wyszukiwanie bieżących zapytań SQL zajmujących najwięcej zasobów .................... 311 9.7. Wyświetlanie statystyk dotyczących bieżących zapytań SQL ....................................... 313 9.8. Obserwacja postępu realizacji planu wykonania zapytania SQL ................................. 315 9.9. Wyszukiwanie wykonanych w przeszłości zapytań SQL zajmujących najwięcej zasobów ..................................................................................... 318 9.10. Porównywanie wydajności zapytań SQL po wprowadzeniu zmian w systemie ...... 320 Rozdzia(cid:239) 10. (cid:165)ledzenie realizacji zapyta(cid:241) SQL .................................................................... 327 10.1. Przygotowanie środowiska ............................................................................................... 327 10.2. Śledzenie wybranego zapytania SQL .............................................................................. 329 10.3. Włączenie śledzenia zapytań we własnej sesji ............................................................... 331 10.4. Wyszukiwanie plików śledzenia ...................................................................................... 331 10.5. Badanie surowego pliku śledzenia zapytania SQL ....................................................... 332 10.6. Analiza plików śledzenia .................................................................................................. 333 10.7. Formatowanie plików śledzenia za pomocą narzędzia TKPROF .............................. 334 10.8. Analiza pliku wynikowego narzędzia TKPROF ........................................................... 335 10.9. Analiza plików śledzenia za pomocą narzędzia Oracle Trace Analyzer ................... 338 10.10. Śledzenie zapytań równoległych ................................................................................... 341 10.11. Śledzenie wybranego wątku zapytania równoległego ................................................ 342 10.12. Śledzenie zapytań równoległych w środowisku RAC ................................................ 343 10.13. Scalanie kilku plików śledzenia ..................................................................................... 344 10.14. Określenie sesji do śledzenia .......................................................................................... 345 10.15. Śledzenie całych sesji ....................................................................................................... 345 10.16. Śledzenie sesji na podstawie identyfikatora procesu .................................................. 347 10.17. Śledzenie kilku sesji ......................................................................................................... 348 8 Kup książkęPoleć książkę SPIS TRE(cid:165)CI 10.18. Śledzenie instancji bazy danych .................................................................................... 349 10.19. Wywoływanie zdarzenia 10046 śledzącego sesję ........................................................ 350 10.20. Wywoływanie zdarzenia 10046 w instancji bazy ........................................................ 351 10.21. Włączenie śledzenia trwającej sesji ............................................................................... 352 10.22. Włączenie śledzenia sesji po zalogowaniu ................................................................... 353 10.23. Śledzenie ścieżki optymalizatora ................................................................................... 354 10.24. Tworzenie automatycznych plików śledzenia błędów ............................................... 356 10.25. Śledzenie procesów działających w tle ......................................................................... 357 10.26. Śledzenie procesu nasłuchu ........................................................................................... 358 10.27. Śledzenie aktywności archiwum w środowisku Data Guard .................................... 359 Rozdzia(cid:239) 11. Automatyczna regulacja zapyta(cid:241) SQL ............................................................ 361 11.1. Wyświetlenie szczegółów zadania automatycznej regulacji zapytania SQL ............. 363 11.2. Wyświetlenie zaleceń narzędzia Automatic SQL Tuning Advisor ............................ 365 11.3. Tworzenie skryptu SQL implementującego automatyczne zalecenie ....................... 368 11.4. Modyfikacja funkcjonalności automatycznej regulacji zapytań SQL ........................ 369 11.5. Włączanie i wyłączanie automatycznej regulacji zapytań SQL .................................. 371 11.6. Zmiana atrybutów okna serwisowego ............................................................................ 373 11.7. Tworzenie zestawu regulacyjnego SQL .......................................................................... 374 11.8. Przeglądanie najbardziej obciążających bazę zapytań SQL w repozytorium AWR ..................................................................................................... 375 11.9. Wypełnianie zestawów regulacyjnych SQL danymi z repozytorium AWR ............. 378 11.10. Przeglądanie najbardziej obciążających system zapytań SQL zapisanych w pamięci ...................................................................................................... 379 11.11. Wypełnianie zestawu regulacyjnego informacjami o zapytaniach zapisanych w pamięci ............................................................................ 381 11.12. Wypełnianie zestawu regulacyjnego SQL informacjami o wszystkich zapytaniach zapisanych w pamięci ........................................................ 382 11.13. Wyświetlenie zawartości zestawu regulacyjnego SQL ............................................... 384 11.14. Wybiórcze usuwanie zapytań z zestawu regulacyjnego ............................................. 385 11.15. Przenoszenie zestawu regulacyjnego SQL ................................................................... 386 11.16. Tworzenie zadania regulacyjnego ................................................................................. 388 11.17. Uruchomienie narzędzia SQL Tuning Advisor .......................................................... 391 11.18. Przygotowywanie zaleceń regulacji zapytań SQL za pomocą narzędzia ADDM ......................................................................................... 394 Rozdzia(cid:239) 12. Optymalizacja i ujednolicenie planu wykonania zapytania ........................... 397 Podstawowe informacje ............................................................................................................. 397 Całościowy obraz ........................................................................................................................ 399 12.1. Tworzenie i zatwierdzanie profili SQL ........................................................................... 402 12.2. Sprawdzenie, czy profil SQL zapytania jest wykorzystywany ..................................... 405 12.3. Automatyczne zatwierdzanie profili SQL ...................................................................... 406 12.4. Wyświetlanie informacji o profilu SQL ......................................................................... 408 12.5. Wybiórcze testowanie profili SQL .................................................................................. 410 12.6. Przenoszenie profilu SQL do innej bazy danych .......................................................... 411 12.7. Blokowanie profilu SQL ................................................................................................... 413 12.8. Usuwanie profilu SQL ...................................................................................................... 414 12.9. Tworzenie wzorca planu dla zapytania zapisanego w pamięci ................................... 415 12.10. Tworzenie wzorca planu dla zapytań zapisanych w zestawie regulacyjnym .......... 417 12.11. Automatyczne tworzenie wzorców planów ................................................................ 419 9 Kup książkęPoleć książkę SPIS TRE(cid:165)CI 12.12. Zmiana wzorca planu ..................................................................................................... 420 12.13. Sprawdzenie dostępności wzorca planu ...................................................................... 422 12.14. Sprawdzenie, czy wzorzec planu jest wykorzystywany .............................................. 423 12.15. Wyświetlenie planów wykonania we wzorcu planu ................................................... 424 12.16. Ręczne dodawanie planu wykonania do wzorca planu ............................................. 425 12.17. Przełączanie automatycznego zatwierdzania nowych planów wykonania ............. 428 12.18. Blokowanie wzorca planu .............................................................................................. 429 12.19. Usuwanie wzorca planu ................................................................................................. 430 12.20. Przenoszenie wzorców planów ...................................................................................... 431 Rozdzia(cid:239) 13. Konfiguracja optymalizatora zapyta(cid:241) ............................................................ 433 13.1. Określenie celu optymalizatora ....................................................................................... 434 13.2. Włączenie automatycznego zbierania statystyk ............................................................ 435 13.3. Ustawianie preferencji zadania zbierania statystyk ...................................................... 437 13.4. Ręczne zbieranie statystyk ................................................................................................ 441 13.5. Blokowanie statystyk ......................................................................................................... 443 13.6. Kompensacja brakujących statystyk ............................................................................... 444 13.7. Eksport statystyk ................................................................................................................ 446 13.8. Odtwarzanie wcześniejszych wersji statystyk ................................................................ 447 13.9. Zbieranie statystyk systemowych .................................................................................... 448 13.10. Weryfikacja nowych statystyk ....................................................................................... 450 13.11. Narzucenie optymalizatorowi użycia indeksu ............................................................ 452 13.12. Włączanie funkcjonalności optymalizatora zapytań ................................................. 453 13.13. Zapobieganie tworzeniu histogramów przez bazę danych ....................................... 455 13.14. Zwiększenie wydajności zapytań bez zmiennych powiązanych ............................... 456 13.15. Adaptacyjne współdzielenie kursora ............................................................................ 458 13.16. Tworzenie statystyk dla wyrażeń .................................................................................. 463 13.17. Zbieranie statystyk dla skorelowanych kolumn ......................................................... 464 13.18. Automatyczne tworzenie grup kolumn ....................................................................... 465 13.19. Zbieranie statystyk dla partycjonowanych tabel ......................................................... 467 13.20. Równoległe zbieranie statystyk dla dużych tabel ........................................................ 468 13.21. Ustalanie aktualności statystyk ..................................................................................... 470 13.22. Przeglądanie obiektów do objęcia statystykami ......................................................... 471 Rozdzia(cid:239) 14. Implementacja wskazówek w zapytaniach .................................................... 473 14.1. Tworzenie wskazówki ....................................................................................................... 474 14.2. Zmiana ścieżki dostępu do danych ................................................................................. 475 14.3. Zmiana kolejności łączenia tabel .................................................................................... 478 14.4. Zmiana metody łączenia tabel ......................................................................................... 480 14.5. Zmiana wersji optymalizatora ......................................................................................... 482 14.6. Wybór między szybką odpowiedzią a ogólną optymalizacją zapytania .................... 483 14.7. Umieszczanie danych za pomocą bezpośredniej ścieżki do pliku ............................. 486 14.8. Umieszczanie wskazówek w widokach .......................................................................... 489 14.9. Zapisywanie wyników zapytania w pamięci podręcznej ............................................. 491 14.10. Kierowanie rozproszonego zapytania do określonej bazy danych .......................... 495 14.11. Zbieranie rozszerzonych statystyk realizacji zapytania ............................................. 498 14.12. Aktywacja przekształcenia zapytania ........................................................................... 500 14.13. Zwiększenie wydajności zapytań wykorzystujących gwiaździsty schemat danych .......................................................................................... 502 10 Kup książkęPoleć książkę SPIS TRE(cid:165)CI Rozdzia(cid:239) 15. Równoleg(cid:239)e wykonywanie zapyta(cid:241) ............................................................... 505 15.1. Zastosowanie równoległości w wybranym zapytaniu .................................................. 506 15.2. Konfiguracja równoległości podczas tworzenia obiektów .......................................... 509 15.3. Konfiguracja równoległości dla istniejących obiektów ................................................ 510 15.4. Implementacja równoległych operacji DML ................................................................. 511 15.5. Równoległe tworzenie tabel ............................................................................................. 514 15.6. Równoległe tworzenie indeksów ..................................................................................... 516 15.7. Równoległe przebudowywanie indeksu ......................................................................... 517 15.8. Równoległe przenoszenie partycji .................................................................................. 519 15.9. Równoległe dzielenie partycji .......................................................................................... 521 15.10. Konfiguracja automatycznego stopnia równoległości ............................................... 522 15.11. Badanie planu wykonania zapytania ............................................................................ 525 15.12. Kontrola równoległych operacji .................................................................................... 528 15.13. Wyszukiwanie słabych punktów procesów równoległych ........................................ 530 15.14. Uzyskiwanie szczegółowych informacji o równoległych sesjach ............................. 531 Skorowidz ..................................................................................................... 535 11 Kup książkęPoleć książkę SPIS TRE(cid:165)CI 12 Kup książkęPoleć książkę R O Z D Z I A (cid:146) 1 (cid:132) (cid:132) (cid:132) Optymalizacja wydajno(cid:258)ci tabel W tym rozdziale zostały szczegółowo opisane funkcjonalności bazy danych, które wpływają na wydajność zapisywania i odczytywania danych z tabel. Wydajność tabel jest częściowo zdeterminowana przez charakterystykę bazy danych jeszcze przed ich utworzeniem. Na przykład cechy fizycznej pamięci masowej, zaimplementowane podczas tworzenia bazy danych, i związanych z nią przestrzeni tabel wpływają później na wydajność tabel. Podobnie wpływ na ich wydajność ma Twój wybór początkowych cech fizycznych bazy, takich jak typy tabel i typy danych. Dlatego implementacja praktycznych standardów dotyczących tworzenia baz danych, przestrzeni tabel i samych tabel (pod kątem wydajności) tworzy podstawy optymalizacji dostępu do danych i skalowalności bazy. Baza danych Oracle składa się z różnych struktur fizycznych, służących do przechowywania, zabezpieczania i odczytywania danych oraz zarządzania nimi. Istnieje kilka funkcjonalności związanych z wydajnością, które możesz zaimplementować podczas tworzenia bazy danych, na przykład początkowy układ plików i rodzaj zarządzania przestrzeniami tabel. Decyzje architektoniczne podejmowane na tym etapie mają długotrwałe konsekwencje. (cid:132) Wskazówka. Instancja bazy Oracle jest zdefiniowana jako struktura danych w pami(cid:218)ci i procesy wykonywane w tle systemu operacyjnego. Natomiast baza danych Oracle sk(cid:239)ada si(cid:218) z fizycznych plików, czyli plików danych, plików steruj(cid:200)cych i plików dziennika powtórze(cid:241). Jak pokazuje rysunek 1.1, przestrzeń tabel jest strukturą logiczną umożliwiającą zarządzanie grupą plików danych. Pliki danych są to fizyczne pliki zapisane na dysku. Podczas konfiguracji przestrzeni tabel należy pamiętać o jej kilku cechach, które mogą skutkować długotrwałymi konsekwencjami. Przestrzenie tabel dzielą się na zarządzane lokalnie i przestrzenie z automatycznie zarządzanymi segmentami (ang. automatic segment storage managed, ASSM). Jeżeli zaimplementujesz te cechy w przemyślany sposób, będziesz w stanie osiągnąć w przyszłości wysoką wydajność tabel. Tabela jest to obiekt przechowujący dane. Miernikiem wydajności bazy danych jest szybkość, z jaką aplikacja może zapisywać, aktualizować, usuwać i odczytywać dane. Dlatego dobrze będzie zacząć tę książkę od przedstawienia porad zawierających rozwiązania problemów z wydajnością tabel. Zaczniemy od opisania aspektów tworzenia baz danych i przestrzeni tabel, mających wpływ na wydajność tabel. Następnie omówimy takie zagadnienia jak wybór typów tabel i danych spełniających wymogi wydajnościowe stawiane przez biznes. Kolejne tematy obejmują zarządzanie fizyczną implementacją przestrzeni tabel. Szczegółowo omówione są takie zagadnienia jak wykrywanie fragmentacji tabel, zarządzanie wolnym miejscem poniżej wskaźnika zajętości, migracja i łańcuchowanie wierszy oraz kompresja danych. Opisana jest również aplikacja Segment Advisor. To przydatne narzędzie pomoże Ci zautomatyzować wykrywanie i rozwiązywanie problemów z fragmentacją tabel i niewykorzystanym miejscem. Kup książkęPoleć książkę ROZDZIA(cid:146) 1. (cid:132) OPTYMALIZACJA WYDAJNO(cid:165)CI TABEL Rysunek 1.1. Zależności pomiędzy logiczną i fizyczną strukturą bazy danych 1.1. Tworzenie maksymalnie wydajnej bazy danych Problem Podczas tworzenia bazy danych zauważyłeś, że niektóre funkcjonalności (jeżeli zostały włączone) powodują długotrwałe konsekwencje mające wpływ na wydajność i dostępność tabel. Podczas tworzenia bazy danych powinieneś w szczególności: (cid:120) Wymusić, aby wszystkie przestrzenie tabel tworzone w bazie były zarządzane lokalnie. Tego typu przestrzenie charakteryzują się większą wydajnością niż przestrzenie wykorzystujące przestarzałą technologię zarządzania słownikowego. (cid:120) Zagwarantować, że użytkownicy będą automatycznie przypisywani do domyślnej trwałej przestrzeni tabel. Dzięki temu tworzeni użytkownicy będą przypisywani do domyślnej przestrzeni tabel innej niż SYSTEM. Gdy użyta jest funkcjonalność odroczonego tworzenia segmentów (omówiona później), a użytkownik posiada uprawnienia CREATE TABLE, wówczas będzie mógł on tworzyć obiekty w przestrzeni SYSTEM nawet bez określonego limitu zajmowanego miejsca. To jest niepożądany efekt. Wprawdzie użytkownik nie będzie mógł zapisywać danych w tabelach, nie mając odpowiedniego limitu, ale będzie mógł tworzyć obiekty i w ten sposób nieodwracalnie zapełniać przestrzeń SYSTEM. (cid:120) Zagwarantować, że użytkownicy będą automatycznie przypisywani do domyślnej tymczasowej przestrzeni tabel. Dzięki temu tworzeni użytkownicy będą przypisywani do właściwej tymczasowej przestrzeni tabel, jeżeli domyślna przestrzeń nie będzie jawnie określona. Rozwi(cid:200)zanie Dostępne są dwa narzędzia, których możesz użyć do utworzenia bazy danych: (cid:120) SQL*Plus i instrukcja CREATE DATABASE. (cid:120) Database Configuration Assistant (dbca). Oba narzędzia opisane są w poniższych podrozdziałach. 22 Kup książkęPoleć książkę 1.1. TWORZENIE MAKSYMALNIE WYDAJNEJ BAZY DANYCH Narz(cid:218)dzie SQL*Plus Aby utworzyć bazę danych zgodnie ze sprawdzonymi standardami stanowiącymi podstawę wydajnych baz, użyj poniższego skryptu: CREATE DATABASE O12C MAXLOGFILES 16 MAXLOGMEMBERS 4 MAXDATAFILES 1024 MAXINSTANCES 1 MAXLOGHISTORY 680 CHARACTER SET AL32UTF8 DATAFILE /u01/dbfile/O12C/system01.dbf SIZE 500M REUSE EXTENT MANAGEMENT LOCAL UNDO TABLESPACE undotbs1 DATAFILE /u02/dbfile/O12C/undotbs01.dbf SIZE 800M SYSAUX DATAFILE /u01/dbfile/O12C/sysaux01.dbf SIZE 500M DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE /u02/dbfile/O12C/temp01.dbf SIZE 500M DEFAULT TABLESPACE USERS DATAFILE /u01/dbfile/O12C/users01.dbf SIZE 50M LOGFILE GROUP 1 ( /u01/oraredo/O12C/redo01a.rdo , /u02/oraredo/O12C/redo01b.rdo ) SIZE 200M, GROUP 2 ( /u01/oraredo/O12C/redo02a.rdo , /u02/oraredo/O12C/redo02b.rdo ) SIZE 200M, GROUP 3 ( /u01/oraredo/O12C/redo03a.rdo , /u02/oraredo/O12C/redo03b.rdo ) SIZE 200M USER sys IDENTIFIED BY f0obar USER system IDENTIFIED BY f0obar; Powyższy skrypt CREATE DATABASE umożliwia utworzenie solidnej podstawy dla wydajnej bazy danych, ponieważ uaktywnia następujące funkcjonalności: (cid:120) Za pomocą klauzuli EXTENT MANAGEMENT LOCAL definiuje lokalnie zarządzaną przestrzeń tabel SYSTEM. Ten sposób gwarantuje, że wszystkie tworzone przestrzenie tabel będą zarządzane lokalnie. Począwszy od wersji Oracle Database 12c, przestrzeń SYSTEM jest zawsze tworzona jako zarządzana lokalnie. (cid:120) Definiuje domyślną przestrzeń tabel USERS dla wszystkich użytkowników tworzonych bez jawnie wskazanej domyślnej przestrzeni tabel. W ten sposób zapobiega się domyślnemu przypisywaniu użytkowników do przestrzeni SYSTEM. (cid:120) Dla wszystkich użytkowników definiuje domyślną tymczasową przestrzeń tabel o nazwie TEMP. Dzięki temu zapobiega się przypisywaniu użytkowników do przestrzeni SYSTEM jako domyślnej tymczasowej przestrzeni. Użytkownicy utworzeni w domyślnej tymczasowej przestrzeni SYSTEM mogą mieć niekorzystny wpływ na wydajność bazy, ponieważ mogą rywalizować o zasoby w tej przestrzeni. Droga do wysokiej wydajności zaczyna się od poprawnie skonfigurowanej bazy danych. Powyższe zalecenia pomogą Ci stworzyć niezawodną infrastrukturę dla Twoich tabel. 23 Kup książkęPoleć książkę ROZDZIA(cid:146) 1. (cid:132) OPTYMALIZACJA WYDAJNO(cid:165)CI TABEL Narz(cid:218)dzie dbca Narzędzie dbca posiada interfejs graficzny i z wierszem poleceń, za pomocą których możesz konfigurować i tworzyć bazy danych. W trybie graficznym narzędzie jest proste w użyciu i ma bardzo intuicyjny interfejs użytkownika. Aby użyć go w trybie graficznym w środowisku Linux/Unix, musisz zainstalować odpowiednie oprogramowanie X, a następnie wprowadzić polecenie xhost + i odpowiednio ustawić zmienną DISPLAY, na przykład: $ xhost + $ echo $DISPLAY :0.0 $ xhost + $ echo $DISPLAY :0.0 Narzędzie dbca jest otwierane w systemie operacyjnym w następujący sposób: $ dbca Pojawi się seria okien, które umożliwią Ci wybranie sposobu konfiguracji. Możesz wybrać opcję Advanced Mode (tryb zaawansowany), która da Ci większą kontrolę nad takimi parametrami jak umiejscowienie plików i multipleksacja logów powtórzeń. Domyślnie dbca tworzy bazy danych o następujących cechach: (cid:120) Definiuje przestrzeń tabel SYSTEM zarządzaną lokalnie. (cid:120) Definiuje domyślną przestrzeń tabel o nazwie USERS dla wszystkich użytkowników tworzonych bez jawnie określonej domyślnej przestrzeni tabel. (cid:120) Definiuje domyślną tymczasową przestrzeń tabel TEMP dla wszystkich użytkowników. W narzędziu dbca, podobnie jak SQL*Plus, dostępne są wszystkie niezbędne opcje stanowiące solidną podstawę do tworzenia aplikacji. Narzędzie dbca umożliwia również tworzenie baz danych w trybie cichym, tj. bez interfejsu graficznego. Użycie tego trybu wraz z plikiem odpowiedzi jest skutecznym, spójnym i powtarzalnym sposobem tworzenia baz danych. Ta metoda sprawdza się również podczas instalacji baz na zdalnych serwerach, podłączonych wolnymi łączami lub bez zainstalowanego odpowiedniego oprogramowania X. Narzędzie dbca możesz uruchomić w trybie cichym razem z plikiem odpowiedzi. W niektórych sytuacjach użycie trybu graficznego nie jest możliwe, na przykład z powodu wolnego łącza lub braku oprogramowania X. Aby utworzyć bazę danych za pomocą dbca w trybie cichym, wykonaj poniższe kroki: 1. Zlokalizuj plik dbca.rsp. 2. Wykonaj kopię pliku dbca.rsp. 3. Zmodyfikuj kopię pliku dbca.rsp odpowiednio do Twojego środowiska. 4. Otwórz narzędzie dbca w trybie cichym. Najpierw przejdź do katalogu, w którym umieściłeś oprogramowanie instalacyjne bazy Oracle, a następnie użyj polecenia find, aby zlokalizować plik dbca.rsp: $ find . -name dbca.rsp ./12.1.0.1/database/response/dbca.rsp Skopiuj ten plik, aby nie modyfikować oryginału (dzięki temu zawsze będziesz miał poprawny, oryginalny plik). $ cp dbca.rsp mydb.rsp Teraz zmień plik mydb.rsp. Musisz w nim zmodyfikować przynajmniej następujące parametry: GDBNAME, SID, SYSPASSWORD, SYSTEMPASSWORD, SYSMANPASSWORD, DBSNMPPASSWORD, DATAFILEDESTINATION, STORAGETYPE, CHARACTERSET oraz NATIONALCHARACTERSET. Poniżej jest przedstawiony przykład zmodyfikowanych parametrów w pliku mydb.rsp: 24 Kup książkęPoleć książkę 1.1. TWORZENIE MAKSYMALNIE WYDAJNEJ BAZY DANYCH [CREATEDATABASE] GDBNAME = O12C SID = O12C TEMPLATENAME = General_Purpose.dbc SYSPASSWORD = f00bar SYSTEMPASSWORD = f00bar SYSMANPASSWORD = f00bar DBSNMPPASSWORD = f00bar DATAFILEDESTINATION = /u01/dbfile STORAGETYPE= FS CHARACTERSET = AL32UTF8 NATIONALCHARACTERSET= UTF8 Następnie uruchom narzędzie dbca w trybie cichym razem z plikiem odpowiedzi: $ dbca -silent -responseFile /home/oracle/orainst/mydb.rsp Na ekranie pojawią się poniższe informacje: Copying database files // kopiowanie bazy danych 1 complete ... Creating and starting Oracle instance // tworzenie i uruchamianie instancji Oracle ... 62 complete Completing Database Creation // zakończenie tworzenia bazy danych ... 100 complete Look at the log file ... for further details. // sprawdź szczegóły w logu ... Jeżeli zajrzysz do plików logów, zauważysz, że narzędzie dbca korzysta z narzędzia rman do odtwarzania plików danych użytych w bazie. Następnie tworzy instancję bazy i wykonuje czynności poinstalacyjne. Na serwerze z systemem Linux w pliku /etc/oratab powinien znaleźć się zapis dotyczący Twojej nowej bazy danych. Wielu administratorów uruchamia narzędzie dbca i konfiguruje bazę danych w trybie graficznym, ale tylko nieliczni korzystają z opcji dostępnych w pliku odpowiedzi. Efektywnie używając pliku odpowiedzi, możesz w pełni zautomatyzować proces tworzenia baz danych. Możesz zmodyfikować plik tak, aby tworzyć bazy ASM, a nawet RAC. Ponadto za pomocą pliku odpowiedzi możesz kontrolować niemal każdy aspekt instalacji, podobnie jak w trybie graficznym. (cid:132) Wskazówka. Wszystkie opcje narz(cid:218)dzia dbca mo(cid:285)esz wy(cid:258)wietli(cid:202), u(cid:285)ywaj(cid:200)c parametru pomocy: dbca –help. Jak to dzia(cid:239)a Poprawne utworzenie i skonfigurowanie bazy danych gwarantuje, że będzie ona działać prawidłowo. Faktem jest, że po utworzeniu bazy możesz zmieniać jej cechy. Jednak niepoprawny skrypt CREATE DATABASE będzie powodował nieustanne problemy z wydajnością. W środowisku produkcyjnym czasami trudno jest wyłączyć bazę w celu skorygowania jej niepoprawnej konfiguracji. W miarę możliwości na każdym etapie tworzenia środowiska, począwszy od tworzenia bazy danych, miej na uwadze wydajność. Podczas tworzenia bazy danych rozważ również użycie funkcjonalności wpływających na jej obsługę. Trwała baza danych ma długi okres działania, który jest częścią ogólnego równania wydajnościowego. Instrukcja CREATE DATABASE podana w części „Rozwiązanie” uwzględnia również następujące zagadnienia dotyczące trwałości bazy danych: (cid:120) Tworzy automatyczną przestrzeń tabel UNDO (automatyczne zarządzanie odwoływaniem transakcji włączone za pomocą parametrów inicjalizacyjnych UNDO_MANAGEMENT oraz UNDO_TABLESPACE). Dzięki temu baza Oracle może automatycznie zarządzać segmentami odwoływania transakcji i zwalnia Cię z ich ciągłego kontrolowania i korygowania. 25 Kup książkęPoleć książkę ROZDZIA(cid:146) 1. (cid:132) OPTYMALIZACJA WYDAJNO(cid:165)CI TABEL (cid:120) Umieszcza pliki danych w katalogach zgodnych ze standardami danego środowiska. Dzięki temu ułatwiona jest ich obsługa i zarządzanie, co skutkuje większą dostępnością bazy w dłuższym zakresie czasu, jak również większą wydajnością. (cid:120) Ustawia hasła użytkowników-administratorów na wartości inne niż domyślne. Dzięki temu baza jest bezpieczniejsza, co w dłuższym zakresie czasu również ma wpływ na jej wydajność (np. jeżeli ktoś niedoświadczony będzie manipulował przy bazie i usunie dane, będzie to miało negatywny wpływ na wydajność bazy). (cid:120) Określa trzy grupy logów powtórzeń po dwóch członków w każdym, o wielkości odpowiadającej ilości transakcji. Wielkość logów powtórzeń ma bezpośredni wpływ na częstotliwość ich przełączania. Jeżeli logi przełączane są zbyt często, wówczas spada wydajność. Pamiętaj, że tworząc bazę danych, możesz nie znać wielkości logów, dlatego będziesz musiał je później skorygować. Poświęć chwilę czasu na sprawdzenie, czy każda tworzona przez Ciebie baza spełnia ogólnie przyjęte standardy, które pozwolą utworzyć solidny fundament wysokiej wydajności. Jeżeli przejąłeś od kogoś administrowanie bazą danych i chcesz zweryfikować trwałe ustawienia przestrzeni tabel, użyj na przykład poniższego zapytania: SELECT * FROM database_properties WHERE property_name = DEFAULT_PERMANENT_TABLESPACE ; Jeżeli chcesz zmodyfikować domyślną trwałą przestrzeń tabel, wykonaj zapytanie: SQL alter database default tablespace users; Aby sprawdzić ustawienia domyślnej trwałej przestrzeni tabel, użyj zapytania: SELECT * FROM database_properties WHERE property_name = DEFAULT_TEMP_TABLESPACE ; W celu zmiany ustawień tymczasowej przestrzeni tabel wykonaj zapytanie: SQL alter database default temporary tablespace temp; Za pomocą poniższego zapytania możesz zweryfikować ustawienia przestrzeni UNDO: SELECT name, value FROM v$parameter WHERE name IN ( undo_management , undo_tablespace ); Jeżeli chcesz zmienić przestrzeń UNDO, utwórz najpierw nową przestrzeń UNDO, a następnie wykonaj instrukcję ALTER SYSTEM SET UNDO_TABLESPACE. 1.2. Tworzenie przestrzeni tabel i maksymalizacja wydajno(cid:258)ci Problem Jak Ci wiadomo, przestrzenie nazw są logicznymi kontenerami obiektów bazy danych, takich jak tabele i indeksy. Ponadto wiesz już, że jeżeli podczas tworzenia obiektów nie określisz atrybutów dotyczących zajmowanego miejsca na dysku, wówczas tabele i indeksy automatycznie odziedziczą odpowiednie atrybuty po przestrzeni tabel (w której jest tworzona tabela lub indeks). Dlatego przestrzenie tabel musisz tworzyć w taki sposób, aby zapewnić maksymalną wydajność tabel i efektywność zarządzania nimi. 26 Kup książkęPoleć książkę 1.2. TWORZENIE PRZESTRZENI TABEL I MAKSYMALIZACJA WYDAJNO(cid:165)CI Rozwi(cid:200)zanie Radzimy Ci tworzyć przestrzenie tabel zarządzanych lokalnie z włączoną funkcjonalnością automatycznego zarządzania przestrzenią segmentu (ang. automatic segment space management, ASSM). Od wersji Oracle 12c jest to domyślna metoda: create tablespace tools datafile /u01/dbfile/O12C/tools01.dbf size 100m; Za pomocą poniższego zapytania możesz sprawdzić, czy utworzona przestrzeń jest zarządzana lokalnie i wykorzystuje funkcjonalność ASSM: select tablespace_name, extent_management, segment_space_management from dba_tablespaces where tablespace_name= TOOLS ; Poniżej przedstawiony jest przykładowy wynik: TABLESPACE_NAME EXTENT_MANAGEMENT SEGMENT_SPACE_MANAGEMENT ---------------- ----------------------- ------------------------- TOOLS LOCAL AUTO Jak to dzia(cid:239)a Dla jasności: ta porada dotyczy dwóch osobnych zalecanych cech przestrzeni tabel: (cid:120) lokalnego zarządzania, (cid:120) automatycznego zarządzania przestrzenią segmentu (ASSM). Począwszy od wersji Oracle 12c, wszystkie przestrzenie tabel są tworzone jako zarządzane lokalnie. W poprzednich wersjach mogłeś wybrać, czy przestrzeń ma być zarządzana lokalnie, czy słownikowo. Od tej chwili wszystkie tworzone przez Ciebie przestrzenie powinny być zarządzane lokalnie. Funkcjonalność zarządzania przestrzenią segmentu może być ustawiona na AUTO (domyślne ustawienie) lub MANUAL. Oracle bardzo zaleca stosowanie ustawienia AUTO (czyli ASSM). W ten sposób baza może automatycznie zarządzać cechami wielu fizycznych przestrzeni, które wcześniej administrator musiał dopasowywać ręcznie. W większości przypadków przestrzeń z zarządzaniem ASSM bardziej efektywnie przetwarza transakcje niż przestrzeń z ustawieniem MANUAL. Jest kilka wyjątków, których ta zasada nie dotyczy. Zalecamy stosowanie zarządzania ASSM, o ile testy nie potwierdzą, że ustawienie MMANUAL jest lepsze. (cid:132) Uwaga. Nie mo(cid:285)esz utworzy(cid:202) przestrzeni SYSTEM z zarz(cid:200)dzaniem ASSM. Ponadto ASSM dotyczy tylko trwa(cid:239)ych, lokalnie zarz(cid:200)dzanych przestrzeni. Jeżeli podczas tworzenia przestrzeni tabel nie określisz stałej wielkości rozszerzenia, baza automatycznie będzie ją rozszerzać o 64 kB, 1 MB, 8 MB lub 64 MB. Jeżeli obiekty w przestrzeni będą różnej wielkości, użyj funkcjonalności automatycznego rozszerzania. Za pomocą klauzuli EXTENT MANAGEMENT LOCAL AUTOALLOCATE możesz jawnie skonfigurować bazę, aby automatycznie określała wielkość rozszerzenia. Za pomocą klauzuli UNIFORM SIZE możesz skonfigurować rozszerzanie przestrzeni za każdym razem o tę samą wielkość. Poniższy przykład ustala stałą wielkość rozszerzenia na 128 kB: create tablespace tools datafile /u01/dbfile/O12C/tools01.dbf size 100m extent management local uniform size 128k; Jeżeli masz ważne powody, aby ustawić stałą wielkość rozszerzenia, zdecydowanie tak zrób. Jednak jeżeli nie jesteś w stanie oszacować wielkości, stosuj domyślne ustawienie AUTOALLOCATE. Możesz również określić, czy plik danych ma być po zapełnieniu automatycznie powiększany. Konfiguruje się to za pomocą klauzuli AUTOEXTEND ON. Jeżeli używasz tej funkcjonalności, zalecamy, abyś ustawił absolutną, maksymalną wielkość pliku danych. W ten sposób zapobiegniesz przypadkowemu wyczerpaniu całego miejsca 27 Kup książkęPoleć książkę ROZDZIA(cid:146) 1. (cid:132) OPTYMALIZACJA WYDAJNO(cid:165)CI TABEL na dysku przez bardzo długie lub błędne zapytania SQL (wyobraź sobie, co mogłoby się stać z usługą w chmurze, która automatycznie dodawałaby przestrzeń dyskową na każde żądanie bazy). Poniżej jest przedstawiony przykład: create tablespace tools datafile /u01/dbfile/O12C/tools01.dbf size 100m autoextend on maxsize 10G; 1.3. Dobór typów tabel do wymaga(cid:241) biznesowych Problem Jesteś początkującym administratorem bazy Oracle i przeczytałeś o różnych dostępnych typach tabel, na przykład stertowych, indeksowanych itp. Chcesz utworzyć aplikację opartą na bazie danych i musisz zadecydować, jakiego typu tabel użyjesz. Rozwi(cid:200)zanie Baza Oracle oferuje szeroki wybór typów tabel. Domyślnym typem jest tabela stertowa. W przypadku większości aplikacji tabela stertowa stanowi strukturę do efektywnego zapisywania i odczytywania danych. Są jednak inne typy, o których musisz pamiętać, i musisz znać przypadki, w których powinny być stosowane tabele tych typów. Tabela 1.1 zawiera opisy wszystkich typów tabel i ich odpowiednie zastosowanie. Tabela 1.1. Typy tabel Oracle i ich typowe zastosowanie Typ tabeli/cecha Stertowa Tymczasowa Indeksowana Opis Domyślny i najczęściej stosowany typ tabeli. Prywatne dane sesji, zapisywane na czas trwania sesji lub transakcji. Przestrzeń jest przydzielana w tymczasowych segmentach. Dane zapisane w indeksowanej strukturze B-drzewa, posortowanej według klucza podstawowego. Partycjonowana Tabela logiczna składająca się z osobnych fizycznych segmentów. Zewnętrzna Tabela wykorzystująca dane w plikach systemu operacyjnego, zapisanych poza bazą danych. Widok zmaterializowany Tabela zawierająca wynik zapytania SQL. Jest okresowo odświeżana, gdy trzeba zaktualizować dane bieżącymi wynikami zapytania SQL. Korzy(cid:258)(cid:202)/zastosowanie Stosuj ten typ, jeżeli nie masz ważnego powodu, aby zastosować inny. Aplikacja wymaga struktury tymczasowej tabeli w celu zapisania lub modyfikacji danych. Po zakończeniu sesji dane nie są już potrzebne. Tabela jest odpytywana głównie według kolumny z kluczem podstawowym. Dobrze sprawdza się w szerokim przeszukiwaniu, zapewnia szybki i swobodny dostęp do danych. Typ stosowany w przypadku dużych tabel zawierających dziesiątki milionów wierszy. Silnie wpływa na skalowalność wydajności dużych tabel i indeksów. Ten typ umożliwia efektywny dostęp do danych w plikach zapisanych poza bazą danych (np. CSV lub tekstowych). Tabele zewnętrzne oferują również skuteczny mechanizm przenoszenia danych pomiędzy bazami. Agregowanie danych w celu ich szybszego zwrócenia lub zreplikowania i zmniejszenia obciążenia bazy. 28 Kup książkęPoleć książkę 1.4. DOBÓR CECH TABEL ZWI(cid:125)KSZAJ(cid:107)CYCH WYDAJNO(cid:165)(cid:109) Tabela 1.1. Typy tabel Oracle i ich typowe zastosowanie — ciąg dalszy Typ tabeli/cecha Klastrowa Opis Grupa tabel mających wspólne bloki danych. Zagnieżdżona Obiektowa Tabela z kolumną danych zawierającą inną tabelę. Tabela z kolumną danych typu obiektowego. Korzy(cid:258)(cid:202)/zastosowanie Typ stosowany w celu zmniejszenia ilości operacji wejścia-wyjścia wykonywanych często na tej samej kolumnie. Rzadko stosowany. Typ rzadko stosowany. Typ rzadko stosowany. Jak to dzia(cid:239)a W większości przypadków tabele stertowe spełnią Twoje wymagania. Ten typ tabeli jest strukturą sprawdzoną w wielu środowiskach bazodanowych. Jeżeli poprawnie zaprojektujesz bazę (której struktura będzie zgodna ze standardami) i zastosujesz w niej odpowiednie indeksy i ograniczenia, otrzymasz sprawnie działający i efektywnie zarządzany system. Większość Twoich tabel będzie typu stertowego. Jeżeli jednak zechcesz wykorzystać cechy innych typów (i jesteś pewien ich zalet), zdecydowanie tak zrób. Na przykład partycjonowanie jest skalowalnym sposobem budowania bardzo dużych tabel i indeksów. Zmaterializowane widoki stanowią skuteczną metodę agregowania i replikowania danych. Tabele indeksowane to wydajne struktury stosowane w sytuacjach, gdy ich kolumny są częściami klucza podstawowego (na przykład tabele będące wynikiem użycia relacji wiele-do-wielu) i tak dalej. (cid:132) Ostrze(cid:285)enie. Nie powiniene(cid:258) wybiera(cid:202) okre(cid:258)lonego typu tabeli tylko dlatego, (cid:285)e wydaje Ci si(cid:218) on ciekaw(cid:200) cech(cid:200), o której ostatnio s(cid:239)ysza(cid:239)e(cid:258). Niekiedy administratorzy, gdy dowiedz(cid:200) si(cid:218) o jakiej(cid:258) funkcjonalno(cid:258)ci, implementuj(cid:200) j(cid:200), nie wiedz(cid:200)c, jaki b(cid:218)dzie jej wp(cid:239)yw na wydajno(cid:258)(cid:202) i koszty zarz(cid:200)dzania baz(cid:200). Zawsze powiniene(cid:258) najpierw sprawdzi(cid:202) i upewni(cid:202) si(cid:218), (cid:285)e dana funkcjonalno(cid:258)(cid:202) przyniesie wymierne korzy(cid:258)ci wydajno(cid:258)ciowe. 1.4. Dobór cech tabel zwi(cid:218)kszaj(cid:200)cych wydajno(cid:258)(cid:202) Problem Podczas tworzenia tabel musisz zaimplementować odpowiednie funkcjonalności, które zmaksymalizują ich wydajność, skalowalność i skuteczność zarządzania nimi. Rozwi(cid:200)zanie Jest wiele zagadnień związanych z wydajnością i trwałością tabel, które powinieneś rozważyć podczas ich tworzenia. Tabela 1.2 opisuje aspekty dotyczące wydajności tabel. Jak to dzia(cid:239)a W części „Rozwiązanie” zostały opisane aspekty związane z wydajnością tabel. Podczas tworzenia tabel powinieneś również wziąć pod uwagę funkcjonalności poprawiające skalowalność i dostępność bazy danych. Administratorzy i programiści często nie traktują ich jako metod zwiększających wydajność bazy. Jednak tworzenie stabilnej i skutecznie zarządzanej bazy danych idzie w parze z wysoką wydajnością. Tabela 1.3 opisuje dobre praktyki ułatwiające zarządzanie tabelami. 29 Kup książkęPoleć książkę ROZDZIA(cid:146) 1. (cid:132) OPTYMALIZACJA WYDAJNO(cid:165)CI TABEL Tabela1.2. Cechy tabel wpływające na ich wydajność Zalecenie Jeżeli tabela na początku posiada wiersze zawierające wartości null, które później będą zamieniane na większe wartości, rozważ ustawienie atrybutu PCTFREE na wartość większą niż domyślne 10 . Jeżeli nie będzie żadnych aktualizacji danych, nadaj temu parametrowi mniejszą wartość. Wszystkie tabele powinny być tworzone z kluczem podstawowym (z wyjątkiem tabel zawierających np. logi). Jeżeli rzeczywisty klucz podstawowy dotyczy kolumny zawierającej długie ciągi znaków lub obejmuje wiele kolumn, rozważ utworzenie numerycznego klucza zastępczego, będącego kluczem podstawowym. Rozważ użycie automatycznej inkrementacji wartości do wypełniania kolumn z kluczem podstawowym. Utwórz unikatowy klucz dla logicznego klucza biznesowego, tj. dla określonej kombinacji kolumn tworzących unikatowy identyfikator wiersza. Zdefiniuj klucze obce tam, gdzie jest to uzasadnione. Rozważ utworzenie indeksów na kolumnach z obcymi kluczami. Rozważ zastosowanie specjalnych funkcjonalności, takich jak kolumny wirtualne lub niewidzialne (12c), dane tylko do odczytu, równoległe polecenia, kompresja, wyłączenie logowania itp. Uzasadnienie Ponieważ baza Oracle zapisuje rekordy danych w blokach, więc atrybut PCTFREE określa, jaka część bloku ma być zarezerwowana (wolna) na przyszłe aktualizacje danych. Właściwie ustawiony atrybut pozwala zapobiec migracji/łańcuchowaniu wierszy, co w przypadku dużego odsetka wierszy poddawanych tej operacji wpływa na wydajność operacji wejścia-wyjścia. Spełnione wymagania biznesowe i możliwa jednoznaczna identyfikacja każdego wiersza. Indeks jest tworzony dla kolumny z kluczem podstawowym i umożliwia wydajny dostęp do podstawowych wartości w tabeli. Łączenie tabel jest łatwiejsze (w przypadku łączenia tylko jednej kolumny), a jeden klucz numeryczny pozwala tworzyć szybsze łączenia tabel niż klucz oparty na kolumnach znakowych lub zestawie kolumn. Brak konieczności ręcznego tworzenia kodu, wyzwalaczy i sekwencji wypełniających kolumny z kluczami podstawowymi lub obcymi. Jednak jednym z potencjalnym problemów może być kolizja jednoczesnych zapisów do tabeli. Spełnione wymagania biznesowe i bardziej czytelne dane. Wydajne pobieranie danych z kolumn tworzących klucz logiczny i często wykorzystywanych w klauzuli WHERE. Jeżeli klucz podstawowy jest kluczem zastępczym, wówczas zazwyczaj jest przynajmniej jeden unikatowy klucz identyfikujący logiczny klucz biznesowy. Spełnione wymagania biznesowe i bardziej czytelne dane. Umożliwienie optymalizatorowi wyboru wydajnej ścieżki dostępu do danych. Przyspieszenie wykonywania zapytań, które często łączą kolumny z kluczami obcymi lub podstawowymi. Uniknięcie niektórych problemów związanych z blokowani
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Oracle Database 12c. Problemy i rozwiązania
Autor:
, ,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: