Wenn hier
Delphi-Quellcode:
d.DLGH_PARAMETER_C = :B_Name AND
d.dlgh_funktion_c = 'SQLS' AND
d.DLGH_START_D > :Datum
einer der Parameter vom Typ nicht mit dem der entsprechenden Spalte in der
DB übereinstimmt, wird (wenn Du Pech hast) die entsprechende Spalte der Tabelle für jeden Datensatz in den Typen des Parameters umgewandelt und dann verglichen und nicht einmal der Parameter in den Typ der Spalte und dann verglichen.
Und dann war's das mit der Nutzung des Index und schon wird die Laufzeit (schlimmstenfalls) astronomisch hoch.
Bei der schnelle Variante wird Dir der Zugriffs-Plan vermutlich verraten, welcher Index genutzt wird und bei der langsamen Variante steht da (sinngemäß) was von "full table scan".