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 запросе встречаются предложения |