8f152643

Управление оптимизатором 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 планируется появление специального модуля "Управление планом выполнения", которая
даст возможность специалистам и пользователям воздействовать на способы выполнения запросов
к базе данных непосредственным образом.




Содержание раздела