Distinct всегда вызывает у меня тревогу - это обычно означает плохой дизайн стола или разработчика, который не уверен в себе. Он используется для удаления дублирующихся строк, но если соединения правильные, это редко требуется. И да, его использование обходится дорого.
Какой первичный ключ таблицы заказов? Предполагая, что это orderno, этого должно быть достаточно, чтобы гарантировать отсутствие дубликатов. Если это что-то еще, то вам, возможно, придется сделать немного больше с запросом, но вы должны поставить перед собой цель устранить эти различия! ; -)
Кроме того, вы упомянули, что при проверке количества строк запрос выполнялся не сразу - часто можно быстрее заключить весь запрос в «select count (*) from ()», особенно если вы получаете большое количество строк возвращается. Просто пока вы тестируете, очевидно. ; -)
Наконец, убедитесь, что вы проиндексировали custID в таблице заказов (и, возможно, тоже recDate).