Auslagerungsdatei wächst bei SQL ins Unermässliche

Hummelwalker

Grünschnabel
Kann mir mal jemand sagen, warum im folgenden Fall die Auslagerungsdatei des SQL-Servers (MS SQL Server 2000) um ca. 1GB ansteigt?
Und wie kann ich das verhindern?

Ich möchte einfach Differenzen von 2 Tabellen ausgeben (ich vergleiche auf 3 Spalten). Ich habe schon 3 verschiedene Möglichkeiten von SQLs ausprobiert (s.u.), aber jedes Mal passiert es wieder. Es ist auch völlig egal, ob ich paar Differenzen habe oder auch keine habe! HILFE Achja, nur beim ersten Mal ausfuehren erhöht sie sich um 1GB und dann nicht mehr. Problem nur, wenn sie erstmal so hoch ist, dann ist der Server auch dementsprechend langsam bei anderen Befehlen...

V1
SELECT [T16].[T16_C7], [T16].[T16_C6], [T16].[T16_C8] FROM [T16]
WHERE [T16].[T16_C7] NOT IN
(SELECT [T9].[T9_C7] FROM [T9]
WHERE [T16].[T16_C7] = [T9].[T9_C7]
AND [T16].[T16_C6] = [T9].[T9_C8]
AND [T16].[T16_C8] = [T9].[T9_C9] )

V2
SELECT [T16].[T16_C7], [T16].[T16_C6], [T16].[T16_C8] FROM [T16]
WHERE NOT exists
(SELECT [T9].[T9_C7] FROM [T9]
WHERE [T16].[T16_C7] = [T9].[T9_C7]
AND [T16].[T16_C6] = [T9].[T9_C8]
AND [T16].[T16_C8] = [T9].[T9_C9] )

V3
SELECT [T16].[T16_C7], [T16].[T16_C6], [T16].[T16_C8] FROM [T16] LEFT OUTER JOIN T9
ON [T16].[T16_C7] = [T9].[T9_C7] AND [T16].[T16_C6] = [T9].[T9_C8]
AND [T16].[T16_C8] = [T9].[T9_C9] WHERE [T9].[T9_C9] IS NULL

Gruß HW
 
Zurück