Laufwerke arbeiten viel langsamer als moderne Prozessoren oder RAM. Häufig wird ein Datenbankserver schon verlangsamt, weil er darauf wartet, dass der Plattenspeicher Seiten liest oder schreibt.
Sie können die Datenbankperformance verbessern, indem Sie verschiedene Datenbankdateien auf unterschiedlichen physischen Geräten ablegen. Während zum Beispiel ein Laufwerk mit der Auslagerung von Datenbankseiten im Cache beschäftigt ist, kann auf einem anderen Gerät in die Logdatei geschrieben werden. Damit Sie diese Vorteile nutzen können, müssen die Geräte voneinander unabhängig sein. Eine einzelne Platte, die in kleinere logische Laufwerke partitioniert ist, wird wahrscheinlich nur wenig nützen.
SQL Anywhere verwendet vier Dateitypen: die Datenbankdatei, die Transaktionslogdatei, den Transaktionslog-Spiegelund die temporäre Datei. Diese Dateien sollten sich auf separaten Laufwerken befinden.
Zum Schutz gegen Datenträgerfehler ist es empfehlenswert, die Datenbankdatei und die Transaktionslogdatei auf physisch separaten Laufwerken abzulegen.
Wenn Sie die Transaktionslog-Spiegeldatei und die temporäre Datei auf physisch separaten Laufwerken ablegen, kann dies dazu beitragen, dass SQL Anywhere schneller läuft. SQL Anywhere schreibt effizienter in Transaktionslogdatei und Transaktionslog-Spiegeldatei, wenn diese sich auf separaten Laufwerken befinden. Wenn der Datenbankserver die temporäre Datei benutzen muss, hängt die Gesamt-Datenbankperformance stark von der Geschwindigkeit des Laufwerks ab, das die temporäre Datei enthält. Da viele Vorgänge, für die die temporäre Datei verwendet wird, auch das Abrufen von Informationen aus der Datenbank erfordern, können Vorgänge gleichzeitig ausgeführt werden, wenn die temporäre Datei auf einem separaten Gerät abgelegt ist.
Eine Datenbank kann in bis zu 13 separaten Dateien gespeichert werden (der Hauptdatei und 12 DBSpaces), die sich wiederum auf separaten Laufwerken befinden können. Platzieren Sie Tabellen in separaten DBSpaces, damit gemeinsame Join-Vorgänge die Informationen aus verschiedenen DBSpaces lesen.
Wenn Sie alle Tabellen oder Indizes an einem anderen Speicherort erstellen als dem System-DBSpace, wird der System-DBSpace nur für das Checkpoint-Log und die Systemtabellen benutzt. Dies ist nützlich, wenn das Checkpoint-Log aus Gründen der Performance auf einen Laufwerk getrennt von den anderen Datenbankobjekten gespeichert werden soll. Um Basistabellen in einem anderen DBSpace zu erstellen, ändern Sie alle CREATE TABLE-Anweisungen so, dass mit der IN DBSPACE-Klausel der alternative DBSpace angegeben wird, oder ändern Sie die Einstellung der default_dbspace-Option, bevor Sie Tabellen erstellen. Temporäre Tabellen können nur im DBSpace TEMPORARY erstellt werden.
Eine ähnliche Methode besteht darin, die temporäre Datei und die Datenbankdateien auf ein RAID-Device oder ein Stripeset zu platzieren. Obwohl solche Devices wie ein logisches Laufwerk funktionieren, steigern sie die Performance deutlich, indem sie Dateien auf viele physische Laufwerke aufteilen und mehrere Leseköpfe für den Zugriff auf die Daten verwenden.
Sie können die Option -fc beim Starten des Datenbankservers angeben, um eine Callback-Funktion zu implementieren, wenn der Datenbankserver Speichermangel im Dateisystem feststellt.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |