
ich bin IT-Berater und übernehme für meine Kunden Projekte zum Aufbau kompletter IT-Infrastrukturen. Einer meiner Kunden hat Probleme mit seiner DATENBANK. Er ist ein Lebensmitteleinzelhändler und hat eine Datenbankgröße von 10 GB. Der Server ist ein IBM x3100 M4 Xeon Quad Core-Prozessor mit 8 MB Cache, 16 GB RAM und 300 GB SAS, das Betriebssystem ist Windows Server 2008 Enterprise mit SQL Server 2005 Standard. Der Kunde beschwert sich, dass der gesamte Abrechnungsprozess und andere Aktivitäten in der DATENBANK zu langsam sind. Wenn ich den Ressourcenmonitor auf Server 2008 überprüfe, sehe ich, dass der SQLServer-Prozess alle paar Sekunden 70 - 80 % erreicht, die Speichernutzung bei 50 bis 60 % liegt und die Festplattennutzung ständig zwischen 1 und 10 MBit/s schwankt.
Irgendwelche Ideen, wo das Problem liegen könnte?
Antwort1
Wenn die Datenbank zu langsam auf Abfragen antwortet, ist entweder der Datenbankserver nicht ausreichend ausgestattet (vielleicht sollten Sie die Einrichtung eines Clusters in Betracht ziehen) oder die an ihn gesendeten Abfragen sind schlecht konzipiert und werden langsam ausgeführt. Offensichtlich handelt es sich hierbei um additive Probleme.
Angesichts der von Ihnen angegebenen Zahlen wäre es möglicherweise keine schlechte Idee, zusätzliche Datenbankserver hinzuzufügen oder den vorhandenen Server erheblich zu aktualisieren. Obwohl ich keine Ahnung habe, wie hoch Ihre Festplattenbandbreite ist, ist es durchaus möglich, dass sie aufgrund des Festplattenzugriffs langsam ist. Sie können die Geschwindigkeit verbessern, z. B. durch die Verwendung eines über Fibre Channel verbundenen SAN oder besserer Festplatten oder eines anderen RAID-Levels. Wenn jedoch die Festplatten das Problem sind, ist es normalerweise keine schlechte Idee, zusätzliche Datenbankserver hinzuzufügen (die von anderen Festplatten unterstützt werden).
Wenn möglich, sollten Sie sich die Abfragen ansehen, die an die Datenbank gestellt werden, und sie optimieren, damit weniger oder kleinere temporäre Tabellen erstellt werden. Auswahlen und Projektionen (SELECT-Anweisungen) sollten beispielsweise so gut wie immer vor Verknüpfungen und Sortierungen erfolgen.