(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