Einzelnen Beitrag anzeigen

Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Ideen wie man DBs performanter machen kann

  Alt 7. Jan 2007, 21:49
Zitat von Mackhack:
Hallo Bernhard,

koenntest du mir das vlt. etwas genauer erklaeren wie das funktioniert?

Zitat:
Zugriff:
- Verwendung von parametrisierten Abfragen/Inserts welche auch entsprechend Prepared werden
- Verwendung von Stored Procedures um den Aufbau von Recordssets zu vermeiden

Verteilung:
- Verteilung der Datenbank/DB-Zugriffsschicht und Businesslogik auf mehrere Rechner oder auf einen großen Rechner.
Mehrer Rechner haben den Nachteil von Round-Trip-Delays (Jede Abfrage kosted übers Netz ein paar ms.
Vielen Dank!
Parametriesierte Abfragen mit Prepared:
Jede Abfrage/Insert muss von der Datenbank durch den Query Analyser geschickt werden um zu bestimmen welche Indeze benötigt/verwendet werden usw. Da die Zeit benötigt ist es von Vorteil eine mehrfach verwendete Query (welche sich nur durch Abfrage/Einfügewerte unterscheidet) nur einmal bewerten zu lassen und dann diese vorbereitung für mehrer Inserts/Queries zu verwenden.

Verwendung von Stored Procedures um den Aufbau von Recordssets zu vermeiden:
Für ein normales SELECT ... muß die Datenbank eine Ergebnismenge aufbauen mit beschreibung der einzelnen Felder. U.U. ist auch ein Serverseitiger Curser nötig, wenn die Ergebnismenge nicht in einem Schwung zum Client übertragen wird. Bei einer SP liegt schon in der DB hinterlegt das als Paramter nur ein Int, varchar, ... kommt uns als Ergebnisparameter ein Int nötig ist. Auch kann hier der gleiche Vorteil wie von einer parametrisierten Abfrage gezogen werden

Verteilung:
Je nach Programmlogik ist das Hauptbremsende Element in einem System die Latenzzeiten der Netzwerkkommunikation. Jeder noch so kleine Abfrage benötigt auch in einem GBit-Netzwerk einige µs - ms bis eine (IP-)Nachricht vom Client zum Server gelangt, durch den IP-Stack läuft beantwortet wird und beim Client ankommt. Deshalb kann es manchmal sehr von Vorteil sein wenn bei einer N-Tier-Architektur die Nicht-DB-Schichten auf einem Rechner laufen und bei hoher Last "einfach" per Clustering weitere Rechner dazu gestellt werden welche ebenfalls diese Nicht-DB-Schichten beinhalten.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat