(do wykladu 11)
Transkrypt
(do wykladu 11)
Politechnika Wrocławska Wrocław 2006 INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład XI Paweł Skrobanek C-3, pok. 323 e-mail: [email protected] Politechnika Wrocławska INTERNETOWE BAZY DANYCH 1. Wprowadzenie 2. Wybrana aspekty optymalizacji 3. Zwiększanie wydajności BD Politechnika Wrocławska 1. Wprowadzenie • system wydajny – • optymalizacja intuicyjnie: „spełnia oczekiwania klienta” – „proces” wyznaczania najlepszego rozwiązania z punktu widzenia określonych kryteriów (np. czas przetwarzania zapytań, koszt, przepustowość) • punkt odniesienia – punkt „zmierzony” np. poprzez przeprowadzenie testów, wykonanie pomiarów. Politechnika Wrocławska 1. Wprowadzenie Podstawowe pojęcia: • monitoring – regularne jakościowe i ilościowe pomiary najczęściej w określonym czasie lub czasu rzeczywistego (z określonymi zasadami archiwizacji) Politechnika Wrocławska 1. Wprowadzenie Procedura rozwiązywania problemów Znaleźć problem (problem finding) zdefiniować (problem defining) zaplanować strategie (strategy planning) wybrać – najlepiej właściwą (strategy selection) sprawdzić, czy działa (strategy testing) ewaluacja końcowa (final evaluation) Politechnika Wrocławska 1. Wprowadzenie OPTYMALIZACJA TREŚCI KODU • strony WWW (prezentacji), • aplikacji (np. skrypty, funkcje), • bazy danych. OPTYMALIZACJA STATYCZNA DYNAMICZNA Politechnika Wrocławska 2. Optymalizacja Optymalizacja treści stron WWW: • pod kątem organizacji (architektura informacji): odpowiednia organizacja treści, menu, łatwa nawigacja i znalezienie potrzebnej informacji, organizacja (np. tematyczna, alfabetyczna, geograficzna), uwzględnienie przyzwyczajeń (np. wygląd odnośników) uwzględnienie np. wyników badań operacyjnych, prostych ankiet, śledzenia historii, wykorzystanie mechanizmu „ciasteczek”. Politechnika Wrocławska 2. Optymalizacja • pod kątem przystępności: uwypuklenie istotnych elementów, powiązanie elementów stanowiących logiczną całość, stosowanie odpowiedniego języka, kodowanie znaków, forma nagłówków (zasady, jak np. dla prasy, artykułów naukowych), Politechnika Wrocławska 2. Optymalizacja • pod kątem dostępności rejestracja w katalogach tematycznych, marketing i reklama, „promocje”. Politechnika Wrocławska 2. Optymalizacja Optymalizacja kodu stron WWW: • pod kątem szybkości wyświetlania się strony (objętości kodu), • zgodności ze standardami (np. walidacja odpowiednimi narzędziami, różne wersje strony, stosowanie mechanizmów „awaryjnych”), • automatycznej rejestracji w systemach wyszukiwawczych tzw. pozycjonowania w systemach wyszukiwawczych. Politechnika Wrocławska 2. Optymalizacja • elementy nagłówka <HEAD> <meta http-equiv="Content-Type" content="text/html; charset= iso-8859-2"> <META HTTP-EQUIV="Creation-date" CONTENT="2002.03.16"> <META HTTP-EQUIV="Reply-to" CONTENT="adres zwrotny"> <meta http-equiv="Content-Language" content="pl"> <META NAME="Description" CONTENT="opis dokumentu"> <META name="Keywords" content="słowa kluczowe"> <META NAME="Author" CONTENT="autor dokumentu"> <META NAME="Generator" CONTENT="Zajączek 3.0"> <TITLE> Tytuł </TITLE> </HEAD> Politechnika Wrocławska 2. Optymalizacja Optymalizacja kodu php: • zmniejszanie liczby połączeń z bazą danych i/lub umiejętne operowanie trwałymi połączeniami, • optymalizacja zapytań (np. ograniczenie liczby, testowanie zapytań złożonych i szukanie innych możliwości, np. polecenie EXPLAIN w MySQL’u), • stosowanie staycznego HTML’u zamiast generowania przez php – jeśli możliwe, • stosowanie ciągów zamkniętych pojedynczymi cudzysłowami (działają szybciej niż podwójne), Politechnika Wrocławska 2. Optymalizacja Optymalizacja kodu php: • stosowanie gotowych rozwiązań i/lub narzędzi (np. Zend Optimizer) • inne techniki i narzędzia – inżynieria oprogramownia (np. inspekcja, przeglądanie kodu) . UWAGA: Najbardziej kosztowne (czas) są połączenie i pobieranie danych z bazy. Politechnika Wrocławska 3. Zwiększanie wydajności BD Zwiększanie wydajność bazy danych (na przykładzie PostgreSQL): • indeksy, • klastry, • kontrola pobierania danych: LIMIT i OFFSET, • kursory. Politechnika Wrocławska 3. Zwiększanie wydajności BD Indeksy Indeksy przyspieszają dostęp do relacji. Jeśli relacja R posiada indeks na atrybucie A, wtedy pobieramy wszystkie krotki o wartości atrybutu A = a w czasie zależnym od liczby tych krotek (nie zależnym od rozmiaru relacji R). Politechnika Wrocławska 3. Zwiększanie wydajności BD Indeksy • jednokolumnowe CREATE INDEX agenci_pseudonim ON agenci (pseudonim); • wielokolumnowe CREATE INDEX agenci_plec_pseudonim ON agenci (plec, pseudonim); UWAGA: Nieprzydatny przy wyszukiwaniu postaci: SELECT * FROM agenci WHERE pseudonim=‘bond’; Politechnika Wrocławska 3. Zwiększanie wydajności BD Indeksy • inne (np. indeksowanie danych przestrzennych Oracle 9i Locator patrz: http://www.ds5.agh.edu.pl/~hellfire/ ) Politechnika Wrocławska 3. Zwiększanie wydajności BD Indeksy SELECT * FROM siatkarze WHERE wiek >18; Jaka będzie różnica w działaniu, jeśli kolumna wiek: a) jest indeksowana Przejrzana zostania cała tabela. b) Nie jest indeksowana Nastąpi przejście do odpowiedniego miejsca (pominięcie niewłaściwych wierszy). Politechnika Wrocławska 3. Zwiększanie wydajności BD Indeksy STOSOWANIE INDEKSÓW ZALETA WADY • oszczędność czasu (np. przy wyszukiwaniu danych, stosowaniu złączeń), • przechowywanie dodatkowa informacja (np. osobny plik indeksów), • zbyt wiele indeksów - wydłużenie czasu zapisu i modyfikacji danych Politechnika Wrocławska 3. Zwiększanie wydajności BD Klastry • klaster – jeden lub więcej sektorów na nośniku danych, • w kontekście SZBD: polecenie CLUSTER umożliwia uporządkowanie danych w pliku zgodnie z uporządkowaniem indeksu tabeli Składnia CLUSTER [indexname [ON tablename]] http://www.postgresql.org/docs/7.4/static/sql-cluster.html Politechnika Wrocławska 3. Zwiększanie wydajności BD Polecenia: LIMIT i OFFSET • LIMIT – ogranicza liczbę wierszy, • OFFSET – umożliwia przejście do określonego wiersza, • jaki będzie wynik zapytania: SELECT ID FROM wampiry ORDER BY ID LIMIT=3 OFFSET 1; ID Nazwa_wa Liczba 2 3 mpira ofiar 1 Dracula 350 2 Nosferatu 200 3 Jagielski 56 Politechnika Wrocławska 3. Zwiększanie wydajności BD Kursory • funkcjonuje w ramach transakcji, • operacje na kursorze: DECLARE – deklaruje kursor, FETCH – pobiera wiersze, MOVE – przesuwa kursor, CLOSE – zwalnie wiersze zapisane w kursorze. Politechnika Wrocławska 3. Zwiększanie wydajności BD Kursory • Przykład: BEGIN WORK; ID Nazwa_wampira Liczba ofiar 1 Dracula 350 2 Nosferatu 200 3 Jagielski 56 DECLARE wampiry_kursor CURSOR FOR SELECT ID FROM wampiry; 2 MOVE 1 FROM wampiry_kursor; 3 FETCH 2 FROM wampiry_kursor; 2 FETCH -1 FROM wampiry_kursor; CLOSE wampiry_kursor COMMIT WORK; Politechnika Wrocławska 4. Ciekawostka – znalezione w Internecie Bibliografia uzupełniająca: • Microsoft Server 2000 – optymalizacja wydajności http://download.microsoft.com/download/2/3/f/23f09d42-8d97-4229-9f7c-6c6 Politechnika Wrocławska 4. Zadanie na piękny, słoneczny dzień Nadal pracujemy nad serwisem: Politechnika Wrocławska 4. Zadanie na piękny, słoneczny dzień Już „fajrant”, a pracownik waszej firmy ma problemy: >> Miało być tak, że jak klikam na „szkołę”, to pokazują się informacje tylko o niej. A u mnie o wszystkich! << Politechnika Wrocławska 4. Zadanie na piękny, słoneczny dzień JEST MA BYĆ Politechnika Wrocławska 4. Ciekawostka –znalezione w Internecie