Hallo,
willkommen im Leidensklub ..
ich hatte den
SQL-Monitor mal in Aktion (Präsentation HK Software) gesehen,
der hatte die Clients mit angezeigt,
oder meinst du jetzt, 2 Programme auf dem gleichen Rechner ?
OK, da würde ich mal mit Herrn Klemt mal reden.
Um eine einzelne
Query zu testen,
benutze ich den ibplanalyzer (Download via google).
Das Problem bei dem Tool ist, es ist ausschliesslich
für
IB geschrieben, es funktioniert mit FB2 nicht mehr.
Bei Verwendung der
BDE würde ich den SQLMonitor von Borland
selbst mal nehmen und die einzelnen Programme unter die Lupe nehmen.
Das geht aber bei ihm nur immer für ein Programm (?)
Stelle dort mal nur die Transaktionen ein.
Falls beim normalen Arbeiten ein Haufen Transaktionen erzeugt werden,
benutzt du keine expliziten Transaktionen (DataBase.StartTransaction).
Das ist schlecht, weil dann die
BDE für jeden
SQL-"Pups" eine Transaktion erzeugt,
und den Firebird-Server damit gelinde gesagt überschwemmt.
Ausserdem die üblichen Verdächtigen:
-
DB Cache auf 10000 (4kB Seite) hochsetzen (nur Superserver)
- die gds32.dll von FB1.5 nehmen, nicht die ursprüngliche Ivon B
(auf den Clients suchen -> Versionsinfo kontrollieren)
-
RAM-Verbrauch des
FB kontrollieren
benutzt er immer mehr
RAM, ist eine Transaktion lange offen
- TTable für grosse Tabellen ->
Query benutzen
- Select *, obwohl nicht alle Felder benötigt werden
- In einer Schleife immer die gleiche
Query abarbeiten
nur mit anderen Parametern
->
Query for Beginn der preparen, und intern nur den Parameter ändern
oder besser eine einzige
Query benutzen, die die benötigten Daten auf einmal holt
- fehlender Index (für order by desc muss ein desc index existieren)
- SP verwenden
Heiko