Bei 'nem Order by im
SQL ist jede Angabe von irgendwelchen Indexspalten ... im Quelltext unsinnig. Order by heißt: Liebe Datenbank, bitte sortiere mir das Ergebnis so und so. Und das macht sie dann.
Jede weitere Indexangabe ist überflüssig, ggfls. aber auch kontraproduktiv.
Wüsste nicht, wieso IndexesActive=true für die Beschleunigung einer Datenbankabfrage angegeben werden soll / muss.
Beim Order By schaut die Datenbank nach, ob sie 'nen Index hat, der ihr die Sortierung vereinfacht, wenn ja, dann nutzt sie ihn, andernfalls sortiert sie ohne Index (was dann eben etwas bis viel länger dauert). Von außen lässt sich das nicht steuern.
IndexesActive dient der Nutzung innerhalb der Delphianwendung, siehe Hilfe dazu:
FireDAC.Comp.DataSet.TFDDataSet.IndexesActive
Sehr flappsig formuliert: Mit IndexName und IndexFieldName kannst Du im Delphiprogramm das nachbilden, was eine Datenbank an Sortieroptionen im Order By sowieso schon mitbringt.
IndexName und IndexFieldName nutzt Du im Programm dann, wenn Du auf eine Sortierung durch die Datenbank (sprich: order by) verzichten möchtest oder im Programm die Daten anders sortieren willst, als sie von der Datenbank geliefert werden.