Dmitri Kuzmenko wrote:
Оптимальный план для конкретного запроса я могу сразу
сказать знаю общую ситуацию в базе данных.
для 2-3 таблиц и 4-5 индексов еще можно.
для большего - я таких людей не знаю.
которые мало того что СРАЗУ пишут план для запроса
руками (исключая примитивы вроде plan blabla natural/index),
но еще и в курсе конкретной и оптимальной селективности
для конкретных индексов (с учетом кардинальности таблиц).
Руками я напишу не максимально быстрый запрос, а
гарантированно _не_медленный. Оптимизатор может в
зависимости от фазы луны выдать любой план и ничего
не гарантирует. Ручной план делается только
на небольшой части от всех запросов и не важно
за 10 секунд он пишется или за 10 минут.
Естественно нужно знать какие данные с каким
распределением будут в рабочей базе. Заранее можно
сказать что в одной таблице будут миллионы записей
а в другой максимум 100. Заранее можно сказать
сколько примерно записей будет отсеивать конкретный
неиндексный where.
--
--- Home Page http://ok.novgorod.net/ap ---