30.07.2012 Aufrufe

Leistungsoptimierung für die ADOBE FLASH-PLATTFORM

Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM

Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

LEISTUNGSOPTIMIERUNG FÜR DIE <strong>FLASH</strong>-<strong>PLATTFORM</strong><br />

SQL-Datenbankleistung<br />

SELECT employeeId<br />

FROM main.employees<br />

Wenn Sie den Datenbanknamen angeben, muss <strong>die</strong> Laufzeitumgebung nicht in allen verbundenen Datenbanken nach<br />

der richtigen Tabelle suchen. So verhindern Sie außerdem, dass <strong>die</strong> Laufzeitumgebung <strong>die</strong> falsche Datenbank wählt.<br />

Halten Sie sich auch dann an <strong>die</strong>se Regel, wenn eine SQLConnection-Instanz nur mit einer einzelnen Datenbank<br />

verbunden ist. Die SQLConnection-Instanz ist im Hintergrund auch mit einer temporären Datenbank verbunden, auf<br />

<strong>die</strong> mit SQL-Anweisungen zugegriffen werden kann.<br />

Verwenden Sie explizite Spaltennamen in den SQL-Anweisungen INSERT und SELECT.<br />

Das folgende Beispiel veranschaulicht <strong>die</strong> Verwendung expliziter Spaltennamen:<br />

INSERT INTO main.employees (firstName, lastName, salary)<br />

VALUES ("Bob", "Jones", 2000)<br />

SELECT employeeId, lastName, firstName, salary<br />

FROM main.employees<br />

Vergleichen Sie <strong>die</strong> vorstehenden Beispiele mit den folgenden. Vermeiden Sie <strong>die</strong>sen Codestil:<br />

-- bad because column names aren't specified<br />

INSERT INTO main.employees<br />

VALUES ("Bob", "Jones", 2000)<br />

-- bad because it uses a wildcard<br />

SELECT *<br />

FROM main.employees<br />

Ohne <strong>die</strong> Angabe expliziter Spaltennamen muss <strong>die</strong> Laufzeitumgebung zusätzliche Arbeit leisten, um <strong>die</strong><br />

Spaltennamen herauszufinden. Wenn eine SELECT-Anweisung ein Platzhalterzeichen anstelle von expliziten Spalten<br />

verwendet, ruft <strong>die</strong> Laufzeit zusätzliche Daten ab. Die zusätzlichen Daten erfordern zusätzliche Verarbeitung und<br />

erstellen zusätzliche Objektinstanzen, <strong>die</strong> nicht benötigt werden.<br />

Vermeiden Sie, <strong>die</strong>selbe Tabelle mehrmals in einer Anweisung zu verwenden, falls Sie <strong>die</strong> Tabelle nicht mit sich selbst<br />

vergleichen.<br />

Wenn SQL-Anweisungen groß werden, kann es passieren, dass Sie eine Datenbanktabelle versehentlich mehrmals mit<br />

der Abfrage verbinden. Häufig lässt sich dasselbe Ergebnis erzielen, indem <strong>die</strong> Tabelle nur einmal verwendet wird. Das<br />

mehrmalige Verbinden einer Tabelle tritt wahrscheinlich dann auf, wenn Sie eine oder mehrere Ansichten in einer<br />

Abfrage verwenden. Dies ist beispielsweise der Fall, wenn Sie nicht nur eine Tabelle mit der Abfrage verbinden,<br />

sondern auch eine Ansicht, <strong>die</strong> Daten aus <strong>die</strong>ser Tabelle enthält. Durch <strong>die</strong>se beiden Vorgänge entsteht mehr als eine<br />

Verbindung.<br />

Effiziente SQL-Syntax<br />

Verwenden Sie JOIN (in der FROM-Klausel), um eine Tabelle in eine Abfrage einzubeziehen, anstatt einer<br />

Unterabfrage in der WHERE-Klausel. Dieser Tipp gilt auch, wenn Sie <strong>die</strong> Daten einer Tabelle nur zum Filtern, nicht<br />

<strong>für</strong> den Ergebnissatz benötigen.<br />

Das Verbinden mehrerer Tabellen in der FROM-Klausel bringt eine bessere Leistung als <strong>die</strong> Verwendung einer<br />

Unterabfrage in einer WHERE-Klausel.<br />

Letzte Aktualisierung 9.5.2012<br />

95

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!