OPTIMIZE FOR
Изменение стратегии оптимизатора.
SELECT ... FROM [...] [WHERE ...] [...] [OPTIMIZE FOR {FIRST | ALL} ROWS]
Предложение OPTIMIZE FOR
позволяет изменить стратегию оптимизатора на уровне текущего SQL оператора.Оно может встречаться только в SELECT
операторе верхнего уровня.
Существует две стратегии оптимизации запросов:
-
FIRST ROWS
- оптимизатор строит план запроса так, чтобы наиболее быстро извлечь только первые строки запроса; -
ALL ROWS
- оптимизатор строит план запроса так, чтобы наиболее быстро извлечь все строки запроса.
В большинстве случаев требуется стратегия оптимизации ALL ROWS
. Однако если у вас есть приложения с сетками данных,в которых отображаются только первые строки результата, а остальные извлекаются по мере необходимости, тостратегия FIRST ROWS
может быть более предпочтительной, поскольку сокращается время отклюика.
По умолчанию используется стратегия оптимизации указанная в параметре OptimizeForFirstRows
конфигурационного файлаfirebird.conf
или database.conf
. OptimizeForFirstRows = false
соответствует стратегии ALL ROWS
,OptimizeForFirstRows = true
соответствует стратегии FIRST ROWS
.
Стратегия оптимизации может быть также изменена на уровне сессии с помощью оператора SET OPTIMIZE
.Предложение OPTIMIZE FOR
указанное в SQL операторе позволяет переопределить стратегию указанную на уровне сессии.
Предложение OPTIMIZE FOR
всегда указывает самым последним в SELECT
запросе, но перед предложением INTO
.
Note
|
Если в SELECT запросе встречаются предложения |