Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 селективность предикатов  [new]
Ident
Member

Откуда:
Сообщений: 25
Есть ли какие-то способы посмотреть прогнозируемую оптимизатором запросов селиктивность предикатов?

Хочется\требуется провести некоторые исследования, связанные с различными моделями постороения статистик(гистограмм). Для этого требуется отслеживать эффективность предсказания оптимизатором ресурсов, необходимых на каждом шаге исполнения запроса.

Возникает вопрос: как можно это организовать в MSSQL, DB2, PostgreSQL? Планы исполнения мы видим, видим реальное количество строчек на каждом шаге исполнения плана, а вот как увидеть прогнозные значения, которые предполагал оптимизатор, выбирая именно этот план?

Возможно в каких-то других СУБД это будет реализовать легче, не подскажите?

Заранее благодарен, Сергей.
19 апр 06, 22:56    [2582041]     Ответить | Цитировать Сообщить модератору
 Re: селективность предикатов  [new]
Alexandr Kapustin
Member

Откуда: Москва
Сообщений: 71
Отвечу за Sybase ASE.

Есть там такая серверная утилитка - optdiag, которая позволяет выгрузить статистику, собранную сервером, в читабельный текстовый формат
Там для колонок, по которым собрана статистика, выводится гистограмма распределения значений в интервале. Шагов в гистограмме по умолчанию 20...
Вот по этой информации оптимизатор и определяет, сколько примерно значений ему придется выбрать...

--
WBR, Alexandr
20 апр 06, 10:02    [2582820]     Ответить | Цитировать Сообщить модератору
 Re: селективность предикатов  [new]
Александр Гoлдун
Member

Откуда:
Сообщений: 2290
Alexandr Kapustin
Отвечу за Sybase ASE.

Есть там такая серверная утилитка - optdiag, которая позволяет выгрузить статистику, собранную сервером, в читабельный текстовый формат

Аналогично в SQL Anywhere (ASA). Помимо текстового, гистрограммы можно получить в виде диаграмм Excel. Кроме того в SQL есть несколько функций, позволяющих получить оценку селективности по предикатам, индексам и т.п.
20 апр 06, 10:12    [2582868]     Ответить | Цитировать Сообщить модератору
 Re: селективность предикатов  [new]
Журавлев Денис
Member

Откуда: St.John,NB,CA
Сообщений: 5539
В оракле есть трассировка оптимизатора (A Look Under the Hood of CBO: The 10053 Event). Или проще "select * from dba_histograms".

В информиксе см. гистограмму: dbschema -d database -t table -hd table


-----------------------------------------------------------------------------------------------------------------------------------------
нужно делать то что нужно, а то что не нужно -- делать не нужно (перефразируя В-Пуха).
20 апр 06, 10:17    [2582885]     Ответить | Цитировать Сообщить модератору
 Re: селективность предикатов  [new]
Funny_Falcon
Member

Откуда:
Сообщений: 447
В PostgreSQL explain выдает именно прогнозируемое кол-во строчек для данного плана запроса, explain analize - +реальное. А полную статистику можно посмотреть в таблице pg_catalog.pg_statistic (с расшифровкой помочь не могу, но думаю, это реально, если задаться целью)
20 апр 06, 10:45    [2583072]     Ответить | Цитировать Сообщить модератору
 Re: селективность предикатов  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
В DB2 есть такая фича - статический SQL. Так там до выполнения оператора план доступа уже определен. Кроме того есть куча таблиц в схеме SYSSTAT и, более того вы можете создать EXPALIN таблицы в которых будет сохраняться статистика на момент исполнения запроса и план который выбран + есть утилита db2expln где можно получить полное объяснение + графическое представление.
20 апр 06, 10:49    [2583097]     Ответить | Цитировать Сообщить модератору
 Re: селективность предикатов  [new]
gardenman
Member

Откуда: С-Петербург
Сообщений: 2347
gardenman
В DB2 есть такая фича - статический SQL. Так там до выполнения оператора план доступа уже определен. Кроме того есть куча таблиц в схеме SYSSTAT и, более того вы можете создать EXPALIN таблицы в которых будет сохраняться статистика на момент исполнения запроса и план который выбран + есть утилита db2expln где можно получить полное объяснение + графическое представление.

Да, еще в графическом предстваление есть все - кардинальность стоимость всей выборки, стоимость выборки первой записи, расхды на процессог и ио.
20 апр 06, 10:50    [2583106]     Ответить | Цитировать Сообщить модератору
 Re: селективность предикатов  [new]
Ident
Member

Откуда:
Сообщений: 25
Спасибо товарищи.
Буду смотреть.
Диплом пишу, мало времени. Теоретическая часть проработана, а хотелось бы ручками получить результаты, чтобы не быть голословным.

Была затея влезть в опен-сорс субд, там автоматизировать лог этих параметров на реальной нагрузке в файл, а потом анализировать.
20 апр 06, 20:17    [2586477]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить