Управление оптимизатором SQLBase
Оптимизатор SQLBase выбирает план выполнения запроса на основе информации, которая
хранится в самой базе данных. При этом он, естественно, не обращается к данным непосредственно
(например, не производит анализ распределения данных по колонкам заданной таблицы),
поскольку в этом случае выбор плана выполнения занимал бы гораздо больше времени, чем
собственно выполнение запроса. Вместо этого оптимизатор использует статистику, хранящуюся в
таблицах базы данных. Эта статистика создается сервером SQLBase сразу после создания объектов
базы данных или в результате выполнения команды UPDATE STATISTICS.
В новой версии SQLBase 6 пользователю предоставлена возможность изменять эту статистику и,
таким образом, воздействовать на оптимизатор и реальное выполнение SQL запросов.
Изменение статистики возможно с помощью новой команды UPDATE STATISTICS. Полное
описание синтаксиса этой команды приведено в документации по SQLBase. Вкратце же синтаксис
команды UPDATE STATISTICS выглядит следующим образом:
Для модификации табличной статистики
UPDATE STATISTICS ON TABLE имя-таблицы
SET колонка-статистики = ...., ;
Например,
UPDATE STATISTICS ON TABLE ORDER
SET ROWCOUNT = 10000, PAGECOUNT=100;
(количество строк в таблице равно 10000, а количество страниц - 100)
Для модификации индексной статистики
UPDATE STATISTICS ON INDEX имя-индекса
SET колонка-статистики = ...., ;
Например,
UPDATE STATISTICS ON INDEX ORDER_IX1
SET HEIGHT = 2, CLUSTERCOUNT = 10000, LEAFCOUNT = 10000/150,
DISTINCTCOUNT(order_num) = 5000 ;
Управление статистикой базы данных
Управление статистикой базы данных в SQLBase служит следующим целям:
Предоставить средства изучения поведения приложений в процессе разработки, когда вы не
имеете доступа к реальной (продажной) базе данных.
Помочь разработчику и администратору смоделировать реальную базу данных используя малое
количество фактических данных.
Следует отметить, что существующий метод воздействия на выполнение SQL запросов с помощью
команды UPDATE STATISTICS является очень сложным и весьма нелинейным. В новой версии
SQLBase планируется появление специального модуля "Управление планом выполнения", которая
даст возможность специалистам и пользователям воздействовать на способы выполнения запросов
к базе данных непосредственным образом.