AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Ideen wie man DBs performanter machen kann
Thema durchsuchen
Ansicht
Themen-Optionen

Ideen wie man DBs performanter machen kann

Ein Thema von Mackhack · begonnen am 4. Jan 2007 · letzter Beitrag vom 7. Jan 2007
 
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz