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
Antwort Antwort
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#1

Ideen wie man DBs performanter machen kann

  Alt 4. Jan 2007, 21:39
Datenbank: SQL • Version: x • Zugriff über: Nackte Theorie, keine Programmierung
Hi DPler,

ich habe eine Hausarbeit bekommen von der Uni. Es geht darum auf ca. 2-3 Seiten aufzuschreiben wie man die Performance einer Datenbank im allgemeinen oder aber auch speziell sollte es um SQL Server geht zu verbessern.

Ich moechte jetzt auch nicht dass jemand mir die Hausarbeit erledigt, was ich mir wuensche sind einige gute Anregungen, oder Beispiele zu bekommen mit denen ich arbeiten und meine Hausarbeit erledigen kann.

Ich sitzte jetzt schon seit 4 Tagen dran und komme auf keine besonders gelungenen Ideen. Vlt. kann mir ja der eine oder andere seine Ideen oder Gedanken hier niederschreiben.

Vielen Dank!
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Ideen wie man DBs performanter machen kann

  Alt 4. Jan 2007, 21:51
Hallo Tobias,

nichts geht über eine gute Materialsammlung. Du könntest diese hier mal sichten: klick

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#3

Re: Ideen wie man DBs performanter machen kann

  Alt 4. Jan 2007, 21:54
Hallo marabu,

vielen lieben Dank fuer deine schnelle Hilfe. Werde ich gleich nach Feierabend hier erledigen!
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Ideen wie man DBs performanter machen kann

  Alt 4. Jan 2007, 21:59
Zitat von Mackhack:
... speziell sollte es um SQL Server geht zu verbessern.
Also kein spezieller MySQL, Oracle und Interbase sind ja SQL Server

Hier ein paar Stichworte:

HW-Vorraussetzungen:
- Viel RAM. Besser: Noch mehr RAM
- Schnelles RAID-System

Datenbank-Modell:
- Definition von passenden Indize auf Felder nach denen oft gesucht wird. Je mehr Indize es gibt desto langsamer sind Inserts und dest mehr RAM benötigt die Datenbank um schnell zu sein (Indize sind nur dann sehr schnell wenn sie auch komplett im Speicher gehalten werden können
- U.u. verletzung der 3.ten oder höheren Normalform um Daten die oft benötigt werden nicht erst durch komplexe Joins zu bekommen

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.



Ach ja. Bevor ich es vergesse: Mehr RAM einbauen hilft bei großen Datenbanken.
Und je nach Datenbanksystem nicht vergessen das DBMS so zu konfigurieren das es den RAM auch verwenden darf.


Ich hoffe das sind jetzt genügende Stichworte
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#5

Re: Ideen wie man DBs performanter machen kann

  Alt 4. Jan 2007, 22:54
Dank dir Bernhard. Ja damit laesst sich bestimmt noch einiges ergeben!
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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


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 01:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz