Ich habe eine Frage zur Performance von MSSQL-Server7.0:
Nach der Installation auf einem Server (NT4.0 SP6a, PentiumII 266 MHz, 128MB) und Aufbau einer Testappliaktion in Delphi5 mit Standardkomponenten (TDataBase,TTable,TDataSource,TDBGrid) kam die Ernüchterung:
Der Befehl "Table.Active := True;" benötigte allein über 30 Sekunden !!! (bei ca 150.000 Datensätzen, bei 18.000 Datensätzen waren's immerhin noch
knapp 10 Sekunden). Die Abarbeitung der Befehle "Table.First" und "Table.Last" benötigte etwa die gleiche Zeit.
Der Datentransfer zwischen meiner Workstation und dem Server ist zwar erfreulich gering, es werden tatsächlich nur die im Grid angezeigten Datensätze übertragen, allerdings scheint auf dem Server einiges an Daten hin- und hertransferiert zu werden (bei jeder der Operationen Open,First,Last jeweils in der Größenordnung der gesamten Tabelle).
Ich habe mit verschiedenen Indizes herumexperimentiert, die SQL-Abfragen an den Server berücksichtigen in ihrem "ORDER BY"- Statement die Indexfelder auch sauber, schneller wird's dadurch aber auch nicht.
Ich wäre sehr dankbar, wenn jemand hier eine Lösung wüßte (Vielleicht eine Änderung in der Konfiguration des MSSQL-Servers...).
[email protected]
Nach der Installation auf einem Server (NT4.0 SP6a, PentiumII 266 MHz, 128MB) und Aufbau einer Testappliaktion in Delphi5 mit Standardkomponenten (TDataBase,TTable,TDataSource,TDBGrid) kam die Ernüchterung:
Der Befehl "Table.Active := True;" benötigte allein über 30 Sekunden !!! (bei ca 150.000 Datensätzen, bei 18.000 Datensätzen waren's immerhin noch
knapp 10 Sekunden). Die Abarbeitung der Befehle "Table.First" und "Table.Last" benötigte etwa die gleiche Zeit.
Der Datentransfer zwischen meiner Workstation und dem Server ist zwar erfreulich gering, es werden tatsächlich nur die im Grid angezeigten Datensätze übertragen, allerdings scheint auf dem Server einiges an Daten hin- und hertransferiert zu werden (bei jeder der Operationen Open,First,Last jeweils in der Größenordnung der gesamten Tabelle).
Ich habe mit verschiedenen Indizes herumexperimentiert, die SQL-Abfragen an den Server berücksichtigen in ihrem "ORDER BY"- Statement die Indexfelder auch sauber, schneller wird's dadurch aber auch nicht.
Ich wäre sehr dankbar, wenn jemand hier eine Lösung wüßte (Vielleicht eine Änderung in der Konfiguration des MSSQL-Servers...).
[email protected]
Comment