Ich habe eine SQL Server 2005-Instanz, die manchmal langsam ist. DiesVerknüpfungzeigt die Leistungsmonitordetails. Da ich diese Art von Daten nicht täglich analysiere, habe ich mich gefragt, ob es echte Probleme mit dem E/A-System gibt.
Der Server verwendet ein SAN und die DB-Dateien und Tempdb-Dateien befinden sich auf demselben Laufwerk (E:). Nicht die beste Architektur, aber ich habe keine Kontrolle über den Server. Der Server wird zum Ausführen von Berichten mit Cognos verwendet, daher handelt es sich größtenteils um eine schreibgeschützte DB.
Danke
Hier ist ein lustiger Code, der korrigiert werden muss.
select "tempSalesRpt_SubRgnDist"."Region" AS "Region",
min("tempSalesRpt_SubRgnDist"."RegionName") AS "Region_Text"
from "SalesReporting"."dbo"."tempSalesRpt_SubRgnDist" "tempSalesRpt_SubRgnDist",
(select "SecurityMaster"."Userid" AS "Userid", "SecurityMaster"."SoldTo" AS "SoldTo"
from "SalesReporting"."dbo"."SecurityMaster" "SecurityMaster"
where "SecurityMaster"."Userid" = lower ('USTGACA')) "SecurityMaster4"
where NOT "SecurityMaster4"."Userid" is null
and "tempSalesRpt_SubRgnDist"."SoldTo" ="SecurityMaster4"."SoldTo"
group by "tempSalesRpt_SubRgnDist"."Region"
order by 1 asc , 2 asc
Bei jeder Abfrage wird auf die Securitymaster-Tabelle zugegriffen. Dies ist die Tabelle, die kürzlich erweitert wurde.
Ich würde annehmen, dass dieser Code nicht sargierbaren Code enthält, aber der Ausführungsplan zeigt, dass Indexsuchvorgänge und Schlüsselsuchen verwendet werden.
Ich sehe zwar, dass einige neue Indizes hilfreich sein könnten, muss aber noch tiefer graben.
Antwort1
Basierend auf den bereitgestellten Daten ist bei Ihnen etwas nicht in Ordnung. Ihre Festplattenwarteschlangen zeigen viel mehr Sekunden pro Lese- und Sekunden pro Schreibvorgang an, als Sie möchten. Der Haken dabei ist, dass dies nicht bedeutet, dass es sich um ein Festplattenproblem handelt, sondern nur, dass die Festplatten überlastet sind. Möglicherweise liegt ein Indizierungs- oder Statistikproblem vor, das dazu führt, dass der SQL Server die Festplatten stärker beansprucht als nötig.
Sehen Sie sich zunächst die Indizes in der Datenbank an und prüfen Sie, ob neue Indizes erstellt werden müssen. Dadurch wird die Größe Ihrer Datenbank erhöht, Sie werden jedoch eine Verringerung des Datenverkehrs auf der Festplatte und eine Verkürzung der Abfrageausführungszeit feststellen.
Sie können damit beginnen, sich die Ausführungspläne Ihrer Abfragen mit langer Laufzeit anzusehen. So erfahren Sie, wo Sie Indizes hinzufügen müssen.
Antwort2
Zusätzlich zu Dennys Antwort: Sie haben etwa 5 GB freien Speicher auf Ihrer Box – haben Sie den SQL-Speicher richtig konfiguriert?
Wenn Sie ein 32-Bit-System haben, können Sie durch Aktivieren von AWE mehr Speicher adressieren:
http://technet.microsoft.com/en-us/library/ms190673(SQL.90).aspx
SQL verwendet diesen zusätzlichen Speicher, um weitere Datenbanktabellen/Indizes zwischenzuspeichern (vorausgesetzt, Ihre Datenbank ist größer als Ihr freier Speicher).