Ett index kan inte användas på en sådan OR. prova detta:
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 ett index på Due_Amount och ett annat på Bounced_Due_Amount.
Det kan vara bättre att designa om ditt bord. Utan att känna till din affärslogik eller tabell kommer jag att gissa att du kan ha en "Bounced" Y/N eller 1/0 char/bit-kolumn och bara en "Due_Amount"-kolumn. Lägg till ett index på det "Due_Amount" och frågan blir bara:
SELECT * FROM table WHERE Due_Amount > 0
du kan fortfarande skilja på en rad som studsar eller inte. Detta kommer inte att fungera om du behöver ha både ett studsat och ett icke-studsat förfallobelopp samtidigt.