verwendetes Datenbanksystem: SQL Server 2005
Hallo, ich habe auf meinem Laptop einen SQL Server 2005 als Testserver installiert. Die Datenbank beinhaltet mehrere Tabellen mit mehreren Millionen Datensätzen, Beziehungen usw.
Mittlerweile blockiert der SQL-Server das komplette System, auch bei kleineren Abfragen. Wie kann ich das abstellen? bzw. woran liegt das? Wie sollte man einen SQL-Testserver einrichten, der lokal genutzt wird? Vor Allem bei schwacher Hardware?
Ich bin für jeden Tipp dankbar.
p.s.
Der Laptop ist nicht der Stärkste. Turion X2 mit 2 x 1.9Ghz und 2GB Ram, HDD ist eine 5400rpm Platte. Betriebssystem ist Windows 7 64bit (ich hätte einfach XP lassen sollen - never change a running system)
p.s. die Datenbank auf meinen Desktop-pc portiert und dort die selben Abfragen, Skripte und co laufen lassen, ist wesentlich schneller.
Das kann man nicht so einfach beantworten.
Generell solltest du für soviele Datensätze immer Indizes (auf jene Felder, auf die du filtern möchtest) anlegen und verschachtelte Abfragen vermeiden.
Kannst du mal so eine "einfache" Abfrage posten?
Schau dir mal die Ausführungspläne an. Dann solltest du ziemlich schnell erkennen, woran es liegt.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
Ausführungspläne - wo muss ich da genau schauen?
// ich bin leider laie.
Im SQL Server Management Studio ein Abfragefenster öffnen und dann oben im Menü:
"Abfrage" --> "Tatsächlichen Ausführungsplan einschließen"
(oder Strg + M drücken)
Dann führst Du die Abfrage aus, und dann ist unten wo das Abfrageergebnis zu sehen ist noch ein Tab namens "Ausführungsplan", siehe Screenshot.
Das Beispiel auf meinem Screenshot ist natürlich ganz simpel weil ich nur aus einer Tabelle selektiere, aber bei einer JOIN-Abfrage siehst Du da alle Tabellen, inkl. Informationen welche Tabelle wieviel % des Aufwands verursacht hat.
"Table Scan" wie auf meinem Screenshot ist z.B. schlecht...das bedeutet daß es keinen Index auf dem entsprechenden Feld gibt und der Server deshalb die ganze Tabelle durchsuchen muß.
Super. Danke dir. Das ist sehr praktisch.
Macht der Tuning Advisor quasi das Selbe nur eben weiterführender, in dem er Vorschläge zur Optimierungen gibt? oder sehe ich durch einen Ausführungsplan mehr?
Der Ausführungsplan sagt dir eigentlich alles. Da su selbst sagst, das du auf dem Gebiet recht neu bist, würde ich dir Literatur zum SQL Server empfehlen, wo behandelt wird wie man diese Ausführungspläne ließt.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)