Eine Datenbank bereitet uns ein wenig Sorgen und wir suchen nun nach Optionen zum Tuning. Die Schreibzugriffe können durch die Hardware nicht schnell genug ausgeführt werden. Wir planen das verwendete Storage entsprechend durch Striping zu erweitern.
Parallel suche ich nun auch nach Möglichkeiten, die Anzahl der Schreibzugriffe zu verringern. Hauptproblem ist eine Lookup-Tabelle (eine Key-Spalte, mehrere Value-Spalten, unique primary key), in die fortwährend geschrieben wird => insert,upadte,delete
Anforderungen:
- Daten müssen möglichst schnell festgeschrieben werden, damit andere App. darauf zugreifen können
- die Anzahl der Daten in der Tabelle liegt bei einigen 100-1000 Einträgen, größer wird die Tabelle zu keinem Zeitpunkt
- nach einem Abstürz der muss gewähleistet sein, dass diese wieder hochgefahren werden kann (Ausfallsicherheit), die Daten in der Tabelle dürfen verloren gehen
Welche grundsätzlichen Optionen gibt es, um Schreibzugriffe zu vermeiden. Ich habe mal etwas von diskreten Transaktionen gehört.
Gibt es noch Oracle Parameter, die den Schreibzugriff beschleunigen/die Anzahl der Zugriffe reduzieren?
Meine Überlegungen gehen dahin, die SQL-Statements in der App durch PL/SQL Aufrufe zu ersetzen. Ist es möglich per PL/SQL eine Tabelle im Speicher der DB zu füllen (also nicht unbedingt auf der Festplatte) und ist es möglich per PL/SQL über andere DB-Connections Lookup-Abfragen auf diesen Daten auszuführen.
Bin für Tipps und verweise auf die Oracle-Doku danbkbar!
Gruß Markus