Правда ли, что 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).
Что бы вы сделали? Любые советы приветствуются. Спасибо.