В последнем проекте у нас была проблема с производительностью нескольких запросов, которые сильно зависели от упорядочения результатов по полю даты и времени (база данных MSSQL 2008).
Когда мы выполняли запросы с помощью ORDER BY RecordDate DESC (или ASC), запросы выполнялись в 10 раз медленнее, чем без этого. Упорядочение по любому другому полю не дало таких медленных результатов.
Мы перепробовали все параметры индексации, использовали мастер настройки, ничего не изменилось.
Одним из предложенных решений было преобразование поля даты и времени в целочисленное поле, представляющее количество секунд или миллисекунд в этом поле даты и времени. Он будет рассчитан по простому алгоритму, что-то вроде «получите мне количество секунд от RecordDate до 1980-01-01». Это значение будет сохранено при вставке, и вся сортировка будет выполняться в целочисленном поле, а не в поле даты и времени.
Мы никогда не пробовали, но мне интересно, что вы, ребята, думаете?