Правда ли, что ORDER BY
обычно довольно медленный? Я пытаюсь запустить некоторые операторы sql, где предложение WHERE
довольно просто, но затем я пытаюсь ORDER BY
в VARCHAR(50)
индексированном столбце.
Мне нужно отсортировать по алфавиту по причинам отображения. Я подумал, что заставить базу данных сделать это для меня наиболее эффективно.
На данный момент, я ищу либо
- оптимизировать SQL-запрос
- отсортировать набор результатов в коде
Вот фактический запрос, который я пытаюсь выполнить:
// B.SYNTAX is a TEXT/CLOB field
// Indexes on NAME, MODULENAME. PREVIOUS is a CHAR(1) with no index
"SELECT A.NAME, B.SYNTAX, B.DESCRIPTION, A.RATE1, A.RATE2,
A.RATE3, A.STARTDATE, A.ENDDATE, A.HIDE, A.CATEGORYNAME
FROM A, B WHERE A.MODULENAME='"+loadedModuleName+"'
AND A.NAME = B.NAME AND (A.PREVIOUS<>'N' OR A.PREVIOUS IS NULL)
ORDER BY A.NAME"
Размер таблицы A составляет ~ 2000 строк, а B - ~ 500.
Вероятно, я должен также упомянуть, что я не могу проводить большую оптимизацию для конкретных баз данных, поскольку мы поддерживаем несколько баз данных. Также приложение развертывается на сайте клиента.
Я ожидаю, что будут возвращены сотни записей (менее 1000).
Что бы вы сделали? Любые советы приветствуются. Спасибо.