12. November 2008 21:09
Hallo!
Wenn sich der Prozessor beim Einlesen der Datenbank langweilt, wartet er wahrscheinlich auf jemanden, dass ist i.d. Regel der Massenspeicher.
Mir fällt auf, dass eine Datenbank auf einem RAID4 läuft. Laut
Wikipedia hat das RAID4 einige Einschränkungen. MS empfiehlt. im allgemeinen ein RAID1 bzw. RAID10- Verbund, da dieser beim Lesen erhebliche Vorteile bietet (siehe Wikipedia).
Der SQL-Server schreibt für jeden Datensatz in der Datenbank midestens 2 Dateien, die Datenbank und das Log. Solltest du Datenbank und Log nicht von Anfang an mit einer Größe definiert haben, die in etwa der erwarteten Datenbankgröße entspricht (also ca. 50 GB für die DB und 20 GB fürs LOG), versucht der SQL-Server immer wieder deine Datenbank zu vergrößern. Er ist dann mehr damit beschäftigt, die Datenbank zu vergrößern, als deine NAV-fbk einzulesen.
Fürs Einlesen der FBK solltest du die Datenbank in den Einfachen oder Massen-protokollierten Modus versetzen (mal testen), damit dein LOG nicht so groß wird.
Wie schnell ist deine SAN-Anbindung, kann die auch der Flaschenhals sein?
Die SQL-Datenbank sollte auf physikalisch getrennte Platten verteilt werden (DB und LOG auf auch physikalisch getrennte Platten), damit DB und LOG-Zugriffe möglichst parallel ausgeführt werden können. Außerdem macht es wenig Sinn mehrere Datenbankteile auf eine Platte zu legen, da der Plattencontroller (der auf dem SAN) hier nicht optimal arbeiten kann.
Schränke evtl. den Arbeitsspeicher des SQL-Servers etwas ein, damit das OS etwas mehr Luft zum Arbeiten hat.
Evtl. kannst du aber das Einlesen auch beschleunigen, wenn du z.B. das erstellen der Statistiken während des Einlesens abschaltest, und diese erst danach aufbaust.
Du solltest dich für die Optimierung mit 'Perfmon' beschäftigen. Das Programm kann dir sicherlich Informationen beschaffen, wo es hängt.
Als letzten Tip, prüfe bitte, wie schnell der NAV-Client auf den Server zugreifen kann. Er sollte evtl.mit einer GB-Netzwerkverbindung auf den Server zugreifen, damit er die Daten möglichst schnell mit dem Server austauschen kann. Es ist wahrscheinlich nicht so optimal, den 32bit-Client auf dem 64bit Server laufen zu lassen.
Gruß, Fiddi