Mycket flitig postare
|
|
Reg.datum: Oct 2004
Inlägg: 898
|
|
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
|