Laden...

SQL Server 2005 (Testserver) blockiert System

Erstellt von Mackerlama vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.416 Views
M
Mackerlama Themenstarter:in
118 Beiträge seit 2008
vor 13 Jahren
SQL Server 2005 (Testserver) blockiert System

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.

G
21 Beiträge seit 2010
vor 13 Jahren

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?

3.511 Beiträge seit 2005
vor 13 Jahren

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)

M
Mackerlama Themenstarter:in
118 Beiträge seit 2008
vor 13 Jahren

Ausführungspläne - wo muss ich da genau schauen?

// ich bin leider laie.

H
208 Beiträge seit 2008
vor 13 Jahren

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ß.

M
Mackerlama Themenstarter:in
118 Beiträge seit 2008
vor 13 Jahren

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?

3.511 Beiträge seit 2005
vor 13 Jahren

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)