Adobe Air (wiwobooks.com Release)
anstehende Datenoperation sofort ausführen – mit der Konsequenz, dass mit jeder INSERT- oder UPDATE-Operation ein schreibender Zugriff auf den Datenträger erfolgt.
Wenn Sie jedoch eine Transaktion mithilfe der begin() -Methode einer SQLConnection -Instanz beginnen, werden alle folgenden Änderungen zunächst nur im Speicher durchgeführt und erst mit Abschluss der Transaktion via commit() -Methode in die Datenbankdatei übertragen. Der Performancegewinn wird demnach umso deutlicher, je mehr Datenoperationen Sie in einer Transaktion zusammenfassen.
Vorbereitete Statements
Auch die Vorbereitung der SQL-Statements vor deren eigentlichen Ausführung einer Abfrage verbraucht Zeit, die Optimierungspotenzial bietet. Die meisten SQL-Datenbanken bieten hierfür das Instrument der vorbereiteten (prepared) Statements, die es ermöglichen, eine Abfrage in Ihrer Syntax bereits vorzubereiten und vorzuberechnen, um später nur noch die Parameter der Abfrage einsetzen zu müssen. Dies bietet sich insbesondere dann an, wenn Sie die gleiche Operation vielfach verwenden, sich beim jeweiligen Aufruf aber nur einzelne Datenfelder ändern, für die Ergebnisse abgerufen (bei SELECT-Statements) oder geschrieben werden (bei CREATE-, UPDATE- oder DELETE-Statements).
Die Datenbankabfrage wird dann einmal zu Beginn mit Platzhaltern für die verschiedenen Übergabewerte vorberechnet, und beim eigentlichen Aufruf des Statements werden nur noch die Platzhalter durch die aktuellen Werte ersetzt. Auch in AIR können Sie SQLite-Statements vorbereiten. Sie haben sich wahrscheinlich schon gedacht, dass das im Kontext der Klasse SQLStatement geschehen wird. Auf vorbereitete Statements wird etwas später, in Abschnitt 13.6.7, eingegangen.
Änderungen an Datenstruktur vermeiden
Wenn Sie sich vorab Gedanken über die Struktur Ihrer Datenbank machen und diese dann erstellen, platziert SQLite die notwendigen Informationen des Datenbankschemas, der Schemata der Tabellen und die anderen Strukturdaten am Anfang der Datenbankdatei. Wenn Sie jedoch zu einem Zeitpunkt, an dem sich bereits Daten in der Datenbank befinden, eine Tabelle zur Datenbank oder Spalten zu einer Tabelle hinzufügen, gerät diese saubere Aufteilung in Strukturdaten zu Beginn der Datenbankdatei und Daten dahinter durcheinander. Dies hat zur Konsequenz, dass es länger dauert, bis die Informationen zur Datenbank- bzw. Tabellenstruktur zusammengetragen sind.
Glücklicherweise können Sie die Struktur der Datenbankdatei auch im Nachhinein wieder »bereinigen«. Die SQLConnection -Instanz verfügt zu diesem Zweck über die Methode compact(), die Sie nach strukturellen Änderungen von Datenbank oder Tabelle aufrufen sollten, wenn sich bereits Daten in der Datenbank befinden. Bedenken Sie dabei jedoch, dass abhängig von der Menge der vorhandenen Daten solch eine Aufräumaktion einige Zeit dauern kann.
Datenmenge und Sichtbarkeit der Daten
Wenn Sie eine Datenbankabfrage durchführen, die eine große Ergebnismenge zurückgibt, stellen sich folgende Fragen:
1. Dauert der Abruf der Daten so lange, dass die Anwendung für den Benutzer langsam erscheint?
2. Wie viel von der Datenmenge muss die Anwendung dem Benutzer als sichtbares Ergebnis der Operation präsentieren?
Wenn Sie zu dem Schluss kommen, dass es nicht unbedingt notwendig ist, dass die gesamte Datenmenge auf einmal zur Verfügung steht, können Sie das Ergebnis der Abfrage auch schrittweise abrufen. Näheres hierzu finden Sie in Abschnitt 13.6.2.
13.2.3 Lokale Datenspeicherung gegenüber entfernter Datenspeicherung
Einen nicht zu vernachlässigen Einfluss auf Ihre lokale Datenspeicherung hat auch die Frage, in welchem Ausmaß Ihre Anwendung auf eine Internetverbindung angewiesen ist. Viele AIR-Anwendungen werden als Desktoperweiterung für Web-Funktionalität konzipiert. Wenn Ihre Anwendung also intensiven Gebrauch von entfernten Ressourcen im Internet macht, sollten Sie sich Gedanken machen, wie Sie einem etwaigen Verlust der Internetverbindung begegnen – für Benutzer einer Desktopanwendung ist es äußerst unbefriedigend, wenn diese den Dienst versagt, weil sie nicht auf das Internet zugreifen kann.
Im Zusammenhang mit der lokalen Datenspeicherung bedeutet das, dass Sie eventuell wichtige Daten auf dem Rechner lokal zwischenspeichern müssen. Daraus folgt auch ein Aufwand an Datensynchronisierung, da lokal zwischengespeicherte Daten in der Regel auf Aktualität überprüft werden müssen, wenn die Verbindung zum Internet
Weitere Kostenlose Bücher