![]() |
#8 |
Участник
|
2 Владимир Максимов
Во-первых, эти хинты зависят от сервера б/д Во-вторых, от параметра CashLookup таблицы Для MS SQL; CashLookup - EntireTable При первом обращении на сервер отправляется запрос с хинтом OPTION(FAST n) (n - зависит от таблицы) и после этого записи фетчатся порциями по n, пока не будет закачана вся таблица (и для firstonly и для firstfast). При повтороном обрущении данные берутся из кэша MS SQL; другие значения CashLookup Для хинта firstonly На сервер отправляется запрос с хинтом OPTION(FAST 2), после этого фетчится две записи и курсор закрывается Для хинта firstfast На сервер отправляется запрос с хинтом OPTION(FAST 1) и после этого фетчится n записей (n - зависит от таблицы). Если записи перебирать в цикле, то при выборе n+1 записи на сервер посылается запрос на фетч еще n записей и т.д. Для совместного использования хинтов firstonly и firstfast На сервер отправляется запрос с хинтом OPTION(FAST 1) и после этого фетчится две записи и курсор закрывается Если не использовать хинты] На сервер отправляется запрос с хинтом OPTION(FAST n) и после этого фетчится n записей (n - зависит от таблицы). Если записи перебирать в цикле, то при выборе n+1 записи на сервер посылается запрос на фетч еще n записей и т.д. Для Oracle примерно то-же самое, отличие вот в чем: для EntireTable и если не указаны хинты посылается запрос как есть, для остальных значений CashLookup - хинт /*+ FIRST_ROWS */ (и для firstonly и firstfast). 2NetBus Отвечая на первоначальный вопрос Для MS SQL использование совместно этих хинтов принципиального выигрыша в быстродействии не даст. При выборке больше чем одной записи - зависит от параметра n, т.е. от таблицы. Для Oracle совместное использование хинтов ничего не даст. В остальном -зависит от настройки оптимизатора, т.е. от параметра OPTIMIZER_MODE сервера или OPTIMIZER_GOAL сессии
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: alex55 (1). |
Теги |
axapta, firstfast, firstonly, hint, запрос (query), как правильно, полезное, производительность |
|
![]() |
||||
Тема | Ответов | |||
знатокам select | 9 | |||
Fred Shen: Always use recId to know if a select statement returns a record | 0 | |||
Вопрос про Demand Planner | 4 | |||
Переменная в select | 21 | |||
While Select .. ? | 7 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|