Et indeks kan ikke bruges på sådan en OR. prøv dette:
SELECT * FROM table WHERE Due_Amount > 0
UNION ALL
SELECT * FROM table Bounced_Due_Amount > 0
--use "UNION" if Due_Amount and Bounced_Due_Amount could both >0 at any one time
har et indeks på Due_Amount og et andet på Bounced_Due_Amount.
Det kan være bedre at redesigne dit bord. Uden at kende din forretningslogik eller tabel, vil jeg gætte på, at du kunne have en "Bounced" Y/N eller 1/0 char/bit kolonne og blot en "Due_Amount" kolonne. Tilføj et indeks på det "Due_Amount", og forespørgslen ville bare være:
SELECT * FROM table WHERE Due_Amount > 0
du kan stadig skelne mellem en Bounced eller ikke-række. Dette vil ikke fungere, hvis du skal have både et afvist og ikke-afvist forfaldent beløb på samme tid.