2014-12-13 4 views
2

У меня есть простой вопрос, однако я не мог найти ответ для этого. В SQL WHERE предложение, которое лучше?SQL WHERE Условие условия условия

TO_CHAR (DAT, 'YYYYMMDD') BETWEEN '20080101' AND '20131231' 

или

DAT BETWEEN TO_DATE('20080101','YYYYMMDD') AND TO_DATE('20131231','YYYYMMDD') 

ли значение условия вычисляется только один раз, а затем проверяется для каждой строки в таблице, или же SQL двигатель пересчитать его каждый раз?

Спасибо!

ответ

1

Любой аргумент, который включает константы и литералы, будет оцениваться только один раз. Второй, однако, намного лучше - он позволяет вам индексировать столбец dat, а затем использовать этот индекс для повышения производительности, а второй - не использовать индекс.

+0

Да, это то, что я думал! Спасибо! – user2346329

Смежные вопросы