Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Performance der Datenbank überwachen und steigern » Datenbankperformance steigern » Tipps zur Performance-Verbesserung

 

Verschiedene Dateien auf verschiedene Devices platzieren

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 physische Datenbankdateien auf unterschiedliche physische Geräte ablegen. Während zum Beispiel ein Laufwerk mit der Auslagerung von Datenbankseiten im Cache beschäftigt ist, kann auf einem anderen Device in die Logdatei geschrieben werden.

Um diese Vorteile auszunutzen, müssen Sie darauf achten, dass die Devices voneinander unabhängig sind. Eine einzelne Platte, die in kleinere logische Laufwerke partitioniert ist, wird wahrscheinlich nur wenig nützen.

SQL Anywhere verwendet vier Typen von Dateien:

  1. Datenbank (.db)

  2. Transaktionslog (.log)

  3. Transaktionslog-Spiegel (.mlg)

  4. Temporäre Datei (.tmp)

Die Datenbankdatei enthält den gesamten Inhalt Ihrer Datenbank. Eine einzelne Datei kann eine einzelne Datenbank enthalten; Sie können aber bis zu 12 DBSpaces hinzufügen (das sind zusätzliche Dateien, welche Teile derselben Datenbank enthalten). Sie wählen einen Speicherort für die Datenbankdatei und die DBSpaces aus.

Die Transaktionslogdatei ist für die Wiederherstellung von Daten in Ihrer Datenbank nach einem Ausfall erforderlich. Zur Erhöhung der Sicherheit können Sie eine Kopie in einem dritten Dateityp aufrechterhalten, der Transaktionslog-Spiegeldatei genannt wird. SQL Anywhere schreibt dieselben Informationen zum gleichen Zeitpunkt in jede dieser Dateien.

Tipp

Indem Sie die Transaktionslog-Spiegeldatei (falls Sie eine verwenden) auf einem physisch getrennten Laufwerk platzieren, erhöhen Sie den Schutz vor Datenträgerausfall, und SQL Anywhere arbeitet schneller, weil Daten effizienter in das Log und die Log-Spiegeldateien geschrieben werden können. Die Position des Transaktionslogs und der Transaktionslog-Spiegeldateien können Sie mit dem Transaktionslog-Dienstprogramm (dblog) oder dem Assistenten zum Ändern der Einstellungen für die Logdatei in Sybase Central festlegen. Weitere Hinweise finden Sie unter Transaktionslog-Dienstprogramm (dblog) und Speicherort eines Transaktionslogs ändern.

Die temporäre Datei wird benutzt, wenn SQL Anywhere mehr Platz benötigt, als im Cache für Vorgänge wie Sortieren und Bildung von Vereinigungen zur Verfügung steht. Wenn der Datenbankserver diesen Platz benötigt, nutzt er ihn gewöhnlich intensiv. Die gesamte Performance der Datenbank wird hochgradig abhängig von der Geschwindigkeit des Devices, auf dem sich die temporäre Datei befindet.

Tipp

Wenn sich die temporäre Datei auf einem schnellen Gerät befindet, das von jenem mit der Datenbankdatei physisch getrennt ist, arbeitet SQL Anywhere schneller. Das liegt daran, dass viele Vorgänge, für die die temporäre Datei erforderlich ist, auch das Abrufen großer Mengen von Informationen von der Datenbank notwendig machen. Wenn Sie die Daten auf zwei separaten Datenträgern unterbringen, können Vorgänge gleichzeitig ausgeführt werden.

Wählen Sie den Speicherort für Ihre temporäre Datei umsichtig aus. Der Standort der temporären Datei kann beim Start des Datenbankservers mit der Serveroption -dt angegeben werden. Falls Sie beim Start des Datenbankservers keinen Speicherort für die temporäre Datei angeben, prüft SQL Anywhere die folgenden Umgebungsvariablen in der angegebenen Reihenfolge:

  1. SATMP

  2. TMP

  3. TMPDIR

  4. TEMP

Wenn keine Umgebungsvariable definiert ist, platziert SQL Anywhere die temporäre Datei unter UNIX in das /tmp-Verzeichnis, und unter Windows in das aktuelle Verzeichnis.

Wenn Ihr Computer über eine ausreichende Menge schneller Devices verfügt, können Sie die Performance weiter steigern, indem Sie jede dieser Dateien auf ein separates Device legen. Sie können sogar Ihre Datenbank auf mehrere DBSpaces, die sich auf separaten Devices befinden, aufteilen. In diesem Fall gruppieren Sie Tabellen in den separaten DBSpaces so, dass gemeinsame Join-Vorgänge die Informationen von 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 Sie das Checkpointlog aus Gründen der Performance-Steigerung auf eine von den übrigen Datenbankobjekten separate Festplatte platzieren möchten. Um Basistabellen in einem anderen DBSpace zu erstellen, ändern Sie die CREATE TABLE-Anweisungen, um mit der IN DBSPACE-Klausel den alternativen DBSpace anzugeben, oder ändern Sie die Einstellung der Option "default_dbspace", bevor Sie Tabellen erstellen. Temporäre Tabellen können nur im DBSpace TEMPORARY erstellt werden. Weitere Hinweise finden Sie unter default_dbspace-Option [Datenbank] und CREATE TABLE-Anweisung.

Weitere Hinweise zum Standard-DBSpace für Basistabellen und temporäre Tabellen finden Sie unter Zusätzliche DBSpaces verwenden.

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. Weitere Hinweise finden Sie unter Serveroption -fc.

Siehe auch