Нюансов много. Например, для простого SELECT TABLE1 значение для (FAST n) считается как Buffer size / длина записи
Buffer size - это параметр Buffer Size в Configuration Utility на закладке Database. В 2.5. и 3.0 значение по умолчанию - 24 Кб
Длина записи - сумма длин ее полей
Т.е. если создать таблицу TABLE1 с одним строковым полем длиной 1000 байт, запрос
даст OPTION(FAST 24) в профайлере
Изменим длину поля до 500 символов - получим OPTION(FAST 48)
Как точно считается - учитывается ли длина системных полей, как округляется, как учитывается длина контейнерных полей, не выяснял, не вижу в этом смысла
Для
PHP код:
SELECT FIRSTONLY
вроде бы всегда делается (FAST 2), есть возможность хинтами заменять на TOP, но работает, как ни странно, медленнее, чем FAST
И т.д. и т.п. Идея, видимо, в том, чтобы максимально быстро получить первую пачку записей и отобразить ее в Grid-е. Кто, когда и как в Дамгарде рассчитал, что в среднестатистический Grid помещается 24Кб - тайна, покрытая мраком
есть хороший документ от 2.5 про Cost-based optimizer и Databases Advanced от 3.0