Welche Vorteile hat Oracle gegenüber anderen Datenbanken
·
DB Server ist für unterschiedliche
Rechnerstrukturen optimiert
·
Datensätze werden ohne
Eskalationsverfahren gesperrt à Minimierung von Deadlock
Häufigkeiten
·
Lesen ohne Sperren für konsistente
Leseoperationen bei gleichzeitig beliebigen Änderungsoperationen
·
Fast Commit zur Verminderung der
physischen Plattenzugriffe
·
Verteilte Datenstrukturen auf
beliebig viele Platten
·
Frei Konfigurierbarer DB-Cache
·
SQL Optimierer zur Ermittlung der
Optimalen Zugriffspfade zu den Daten
Wichtig beim Tunen ist, daß
Schwachstellen erkannt werden. Das hinzufügen von Indices kann z.B. die
Antwortzeit um den Faktor 10 bis 1000 verbessern. Im Gegenteil dazu kann z.B.
die Erhöhung des DB-Cache in manchen Fällen nur zu Verbesserungen von 1 %
führen.
Was kann man Tunen:
1.
Die Datenstruktur (logische
Struktur der Objekte, Index, Cluster)
2.
SQL Operationen SQL
Optimierung , Ermittlung der Statistiken für DB Objekte
3.
Anwendung PL/SQL
Programme, Integritätsbedingungen, diskrete Transaktionen
4.
DB Server DB-Cache
Otimierung, Checkpointing
5.
Datenbank Objektverteilung
auf Disk, Rollback Segmente, Redo-Log-File
1.
Die Datenstruktur
This paragraph has been concealed! Download the complete document for free! • Click on download to get complete and readable text • This is a free of charge document sharing network • First upload your own document, and you get a word document per email • No registration necessary, gratis Swap homeworks and notes at no charge! Gratis scripts for students and pupils!
Sie ist grundlegend für die spätere Performance der DB.
Wichtig ist vor allem die richtige Auswahl der Indices. Für primary Keys wird
automatische ein Index angelegt, für foreign keys sollte auch ein Index
angelegt werden. Der Vorteil eines foreign key Index ist, daß bei einer
Referenzierung des Primary Key Wertes nur dessen Index Entry gesperrt wird, und
man so das kleinste mögliche Sperrgranulat ausnützen kann.
2.
SQL Befehls Ebene
SQL Optimierer suchen den
schnellsten Zugriffspfad zu den Daten. Es gibt dafür in Oracle7 3 Methoden
·
Regel Methode
·
Statistische Methode
·
Statistische Methode + Hinweise
Bei der Regel-Methode
bestimmen die Bedingungen in der where Klausel den Zugriffspfad.
Bei statistischen Methoden
werden statistische Informationen über Tabellen, Indizes und Cluster mit
einbezogen. Diese Infos erhält man mit dem analyze Befehl
Analyze table tab compute
statistics; //compute
liefert immer exakte Werte (dauert sehr lange)
Analyze index iname
estimate statistics; //estimate
liefert geschätzte Werte die aber genau genug sind
This paragraph has been concealed! Download the complete document for free! • Click on download to get complete and readable text • This is a free of charge document sharing network • First upload your own document, and you get a word document per email • No registration necessary, gratis Swap homeworks and notes at no charge! Gratis scripts for students and pupils!
Die Aktivierung von anderen
Optimiermethoden kann durch Hinweise geschehen. Diese Hinweise können genutzt
werden bei select, update und delete, und müssen als erste Klausel nach dem
Operator Schlüsselwort angegeben werden.
Update /*+rule*/ table
set ....
3.
Anwendungs Ebene
Positiv wirken sich hier z.B.
gespeicherte PL/SQL Programme aus die zentral und kompiliert am Server liegen
und einmal aktiviert allen Benutzern zur Verfügung stehen.
Auch sollten
Integritätsbedingungen zentral und optimiert am DB-Server ausgeführt werden,
anstatt innerhalb des Anwendungsprogrammes
4.
DB SERVER Ebene
Hier ist vor allem die Größe
und Konfiguration des Cache interessant. Die Größe des Caches sollte so gewählt
werden, daß auf ein physische Leseoperation (Platte) etwa 10 20 logische
Leseoperationen (Cache) kommen, was einer Trefferrate von 90-95 % entspricht.
Die Ermittlung der Trefferrate
erfolgt so:
Select
name,value
from v$sysstat
where name
in(consistent gets,db block gets,physical reads)
Als Ergebnis erhält man nun
Beispielsweise diese 3 Werte
Consistent gets: 121.001 Lesezugriffe
konsistent und
Db block gets: 340.010 Lesezugriffe
aus dem Cache
Physical reads:
85.990 Plattenzugriffe
Physical reads
Trefferrate =
(1- ------ ) *100 = 88%
This paragraph has been concealed! Download the complete document for free! • Click on download to get complete and readable text • This is a free of charge document sharing network • First upload your own document, and you get a word document per email • No registration necessary, gratis Swap homeworks and notes at no charge! Gratis scripts for students and pupils!
Für eine exakte Ermittlung
der optimalen Cachegröße muß man aber über einen bestimmten Zeitraum eine DB
Pufferanalyse mit dem typischen Anwendungsprofil durchführen. Daraus erhält man
dann genau Statistiken über die Auslastund der einzelnen DB-Cache Blöcke.
5.
Datenbank
Hier gehts es vor allem
darum, die unterschiedlichen Filetypen einer Datenbank und die Zuordnung zu den
DB Objekten optimal zu gestalten.
So sollten z.B. Index
Segmente, Redo-Log-Files und Rollback Segmente von den Benutzerdaten getrennt
auf anderen, schnelleren Platten gespeichert werden.
INDEXES
Indexes sollten für jene
Spalten angelegt werden die in der where Klausel verwendet werden, da sie die
Antwortzeit enorm beschleunigen.
Indexes sind in ihrer
Struktur aufsteigend sortierte,selbst ausbalancierte B-Trees, die bei jedem
insert oder delete neu balanciert werden.
Der Zugriff auf das
tatsächliche Datenbankobjekt erfolgt über die ROWID, es wird also zuerst im
B-Tree der richtige Eintrag gesucht, und mit Hilfe der ROWID dann das
tatsächliche Datenbankobjekt gelesen.
Bsp. Workerskill
table
ROWID Name Skill Ability
000204.0001.0001 Dick
Jones Smithy Excellent
000204.0002.0001 Wilfred
Lowell Discus Slow
This paragraph has been concealed! Download the complete document for free! • Click on download to get complete and readable text • This is a free of charge document sharing network • First upload your own document, and you get a word document per email • No registration necessary, gratis Swap homeworks and notes at no charge! Gratis scripts for students and pupils!
000204.0004.0001 John
Pearson Combine Driver
Index für Primary
Key, Name und Skill
Dick Jones Smithy 000204.0001.0001
John Pearson Combine
Driver 000204.0004.0001
John Pearson Smithy 000204.0003.0001
Wilfried Lowell Discus 000204.0002.0001
Index erzeugen
Create index
indexname on table(column1,column2,...)
Beim Indexnamen sollte
folgendes Format eingehalten werden:
TABLENAME_COLUM1_COLUM2
Alle Indexes die vom Benutzer
erstellt werden, sind im Table USER_INDEXES abgespeichert.
Wo kann man Indexes verwenden
Index sind vor allem bei
jenen Spalten sinnvoll, die in where Klauseln oder bei Joins verwendet werden.
Aber Achtung, wird in der where Klausel IS NOT NULL oder IS NULL verwendet, so
erhält man keinen Geschwindigkeitsvorteil.
Auch bei ORDER BY, MIN und
MAX wird der Index verwendet, aber er wrid nicht bei
GROUP BY und DISTINCT genutzt !
Sinnvoll sind Indexes auch
nur bei Spalten deren Daten variieren, also zum Beispiel bei Telefonnummern
oder Postleitzahlen. Ein Index für eine Spalten die nur Y oder N enthält
wäre eine schlechte Wahl, und kann die Systemleistung sogar beeinträchtigen.
This paragraph has been concealed! Download the complete document for free! • Click on download to get complete and readable text • This is a free of charge document sharing network • First upload your own document, and you get a word document per email • No registration necessary, gratis Swap homeworks and notes at no charge! Gratis scripts for students and pupils! |