Visa ett inlägg
Oläst 2006-10-13, 13:29 #3
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Jag har tyvärr inget enkelt svar på din fråga, men kan berätta att det är inte bara faktumet att du använder en sub-query som är ett potentiellt prestandaproblem utan även att du använder "not in". NOT IN är typiskt en funktion som kan göra en i övrigt snabb fråga väldigt långsam. Att försöka skriva sina frågor med IN istf NOT IN är att föredra då NOT IN tenderar att sällan utnyttja index tyvärr.

eventuellt skulle en case kunna förbättra prestanda. Något i denna stil:

SELECT COUNT(ID)
FROM tblTable
WHERE ChildID = 100
AND 1 = case when ParentID IN
(
SELECT ChildID
FROM tblTable
WHERE ParentID = 100
) THEN 0 ELSE 1 END
AND Rejected = 0
eg0master är inte uppkopplad   Svara med citatSvara med citat