Abfrageoptimierung...

18/11/2009 - 11:17 von Mario Schulz | Report spam
Hallo,

folgendes Statement :

select BelegPOS.PK_BelegSTZ,
BelegPOS.PK_ArtikelSTD,BelegPos.PosMenge,BelegPos.PosBuchungsMenge,
BelegPROD.PK_ArtikelSTD, BelegPROD.PosMenge,BelegPROD.PosBuchungsMenge
from belegpos

left outer join BelegPOS AS BelegPROD on ( BelegPOS.bel_pk_BelegPOS =
belegPROD.pk_BelegPOS )

where BelegPOS.PK_ArtikelSTD = 'B920FF11-651D-403B-A18D-2D5DF35D50CE'
AND BelegPOS.PosArt = 'SK'
AND BelegPos.StornoAM IS Null

AND BelegPROD.StornoAM IS Null
AND BelegPROD.PosMenge > BelegPROD.PosProdMenge


dauert teilweise ca. 10 Sekunden was einfach zu lange ist, wenn die
Sache ca. 100 mal aufgerufen wird...

auf allen Feldern in der WHERE Klausel liegt ein Index ; daher denke ich
ist die Abfrage mit BelegPROD.PosMenge > BelegPROD.PosProdMenge an dem
Zeiteinbruch schuld...
Irgendwie eine Idee wie ich auch mit einem Index das schneller machen
könnte... Sind 2 nummerische Felder...

Danke für eure Ideen,

Mario
 

Lesen sie die antworten

#1 Uwe Ricken
18/11/2009 - 11:28 | Warnen spam
Hallo Mario,

lass' die Abfrage doch mal mittels Profiler (Template: [Tuning])
aufzeichnen.
Anschließend làsst Du das aufgezeichnete Script mittels Database Tuning
Advisor einfach mal analysieren.

Ansonsten folgende Vermutungen:

- defragmentierter CLUSTERED Index: - hier mal einen Rebuild machen
- defragmentierte Indexe: ein REORGANIZE durchführen
- Keine aktuellen Statistiken: UPDATE STATISTICS

HTH ;-)

Uwe Ricken
db Berater GmbH

MCTS: Microsoft SQL Server 2005
MCDBA: Microsoft SQL Server 2005

Ähnliche fragen