powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
25 сообщений из 69, страница 1 из 3
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565012
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Query:
Код: plaintext
select * from get_realization( . . . );

Вывод в 2.5:
Код: plaintext
PLAN JOIN (GET_REALIZATION NATURAL, D INDEX (RDB$PRIMARY5))(REF ORDER REF_XNAME INDEX (REF_K1))(REF ORDER REF_XNAME INDEX (REF_K2))

Вывод в 3.0:
Код: plaintext
PLAN (GET_REALIZATION NATURAL)

В итоге непонятно:
1) как там внутри соединялись таблицы, был ли там натурал или нет;
2) невозможно составить список используемых и по нему - НЕ используемых индексов, если вытряхнуть все ХП в список и вызовать их через execute statement с предварительным set planonly.

Так что сабж! Ну, или в кр. случае - параметр конфига какой-нить надо для "обратной совместимости".
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565016
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

ты неправ. План как раз верный в FB3. Другое дело как узнать что там произошло в ХП. Может быть в расширенном плане где нибудь раскрывать внутренности планирования запросов ХП? Причём отдельно от основного плана
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565057
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидВ итоге непонятно:
и не надо. в 2.5 план процедуры это план всех sql-запросов в тексте процедуры, безусловно. Поэтому plan natural - это абсолютно верно.
Особенно для планов запросов с вызовами процедур.

Симонов ДенисМожет быть в расширенном плане где нибудь раскрывать внутренности планирования запросов ХП?
зачем? исключительно ради интереса? не показывая, что половина планов от запросов, которые НЕ выполнялись при конкретном вызове процедуры?
План же для запросов процедуры строится при первом вызове процедуры, и торчит таким всегда независимо от ветвления процедуры, или даже если ни один запрос внутри не выполнялся. Это же "черный ящик".
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565059
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще может быть стоит упомянуть о том, что буфер для плана ограничен, и по крайней мере раньше не всегда сумма всех планов влезала в "план процедуры".
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565060
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
план - это вещь, относящаяся к запросу . Если в ХП несколько запросов, никакого плана у нее быть не может, может быть лишь слепленная вместе каша мала. Если эта каша мала процедура снаружи еще и джойнится к чему-нибудь, то вообще ахтунг.

список используемых/неиспользуемых индексов составлять лишь по ХП - фигня, ибо есть еще триггеры, функции и клиентские запросы. Для этого должны быть другие средства - мониторинг, трассировка и т.п.

возможность посмотреть список планов внутренностей процедуры быть должна, но к плану вызова процедуры это не имеет никакого отношения. Как это будет сделано - пока не решил, можете предлагать свои варианты.
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565066
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrКак это будет сделано - пока не решил, можете предлагать свои варианты.
сомневаюсь. когда мы вызываем get_realization, и видим тучу планов, мы не имеем понятия, к каким запросам эти планы относятся, и какие запросы выполнялись, а какие - нет.
Обычно план мы видим для конкретного запроса. А в отношении процедуры - сопоставить планы с текстами запросов можно только глядя в текст процедуры. Облом.
Так что даже если сделать в ISQL нечто вроде EXPLAIN PROC_NAME, то без текста процедуры это будет непонятно что. Особенно, если текст процедуры удален :-) (ха-ха).
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565068
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrсписок используемых/неиспользуемых индексов составлять лишь по ХП - фигня, ибо есть еще триггеры, функции и клиентские запросы. Для этого должны быть другие средства - мониторинг, трассировка и т.п.Чтобы найти НЕ используемые индексы, надо врубать трассировку весьма надолго. Не айс, ибо юзера почуют и орать начнут.
dimitrвозможность посмотреть список планов внутренностей процедуры быть должна, но к плану вызова процедуры это не имеет никакого отношения. Как это будет сделано - пока не решил, можете предлагать свои варианты.1) отдельная команда в isql: set detailed_plan on
2) какой-то ключик в трейсе всё-таки добавить, тоже что-то вроде log_detailed_plan true
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565070
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и еще - IBExpert, когда показывает планы для процедуры, он парсит ее текст, препарит запросы, и выводит план для конкретного запроса. Естественно, что никакими "планами процедуры" он не пользуется.
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565075
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvв отношении процедуры - сопоставить планы с текстами запросов можно только глядя в текст процедуры.Трассировка не всегда катит (см выше). Нужны еще методы для отлова "тормозных колодок". Я в свое время нарыл элементарный - вывод планов через execute statement.
Да, триггеры есть еще и запросы с клиента, но:
1) в триггерах ЧАЩЕ всего код не такой ресурсоемкий
2) затраты именно на триггера легко отловить трейсом, установив только log_trigger_finish true
3) все запросы, зашитые в клиенте, у нас вытряхиваются и на них также можно натравить set planonly. Однако, львиная доля их - это просто вызовы ХПшек.
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565076
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

согласен для конкретного запроса планы внутренних запросов процедуры отображать не надо. А для того чтобы узнать что там напланировалось внутри процедуры можно ввести спец таблицу мониторинга, где будут отображаться все ХП загруженные в кэш метаданных, отдельным BLOB столбцом можно сделать как раз планы всех внутренних запросов.
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565084
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvвидим тучу планов, мы не имеем понятия, к каким запросам эти планы относятся, и
какие запросы выполнялись, а какие - нет.
Поэтому у Оракула, например, есть два плана: один "типа план" после prepare и "в натуре
план" после execute. Во втором и расписано как что выполнялось, со статистиками.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565091
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидЧтобы найти НЕ используемые индексы, надо врубать трассировку весьма надолго.

А по поводу трассировки у меня есть хотелка, чтобы её можно было запускать прямо из isql сразу с фильтром на свою сессию. И чтобы можно было выводить из неё статистику и др. вещи после каждого оператора, транзакции, по требованию опциально. А то сейчас в супере при многопользовательском режиме в статистике видим фетчи по всем коннектам.
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565097
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисповоду трассировки у меня есть хотелка, чтобы её можно было запускать прямо из isql сразу с фильтром на свою сессию.ты в трекер занёс это ?
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565100
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

нет. Сначала надо обсудить. Выслушать мнения. А вот когда идея полностью созреет можно и в трекер. К тому же если Светила скажут громкое НЕТ, то и смысла в этой хотелке тоже не будет.
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565186
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисА для того чтобы узнать что там напланировалось внутри процедуры можно ввести спец таблицу мониторинга, где будут отображаться все ХП загруженные в кэш метаданных, отдельным BLOB столбцом можно сделать как раз планы всех внутренних запросов.
одни блобом кучу планов (тем более если детализированных) - это как-то некомильфо. Была мысль отдельной таблицей выводить все курсоры данного стейтмента (юзерского или кешированной процедуры), соответственно у каждого курсора свой план (блоб). Но тут надо подумать, что еще имеет смысл выводить для курсоров, только ради планов такой огород нет смысла городить...
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565490
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

для курсоров можно ещё выводить сколько записей отфетчено, тип курсора (он ведь теперь ещё и двунаправленный может быть), состояние курсора (активный и неактивный), ну и поле для привязки его к оператору и статистике (по памяти и диску)
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565692
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Число записей - запросто, ссылка на стейтмент - само собой. Но боюсь, что вести полную статистику для каждого курсора будет слишком затратно. С типом курсора проще, но там тоже есть один неочевидный момент. Буду еще думать.
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565772
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

ладно от статистики можно отказаться. Я ещё один момент забыл. Должна быть ссылка на таблицу значений параметров курсора и для стейтмента тоже. По поводу второго вроде даже тикет в трекере есть.
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565799
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

у курсора нет параметров. Вернее, для них параметром может быть почти все - и входной параметр процедура, и локальная переменная, и даже поле вышестоящего курсора. Так загоняться нет смысла...
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565985
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrбоюсь, что вести полную статистику для каждого курсора будет слишком затратно.Когда идёт поиск узких мест, то чем больше инфы, тем лучше. Зачем убирать статистику ? Можно ведь трассировать не всех, а только себя любимого, когда сидишь и моделируешь д-вия юзеров.
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38565993
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

не путай мониторинг и трассировку
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38566062
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrбоюсь, что вести полную статистику для каждого курсора будет слишком
затратно.
Дерево выполнения запроса на процедуру только ссылается или копирует её дерево в себя?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38566080
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

только ссылается
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38566086
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrтолько ссылается
Не для тройки идея, но - насколько затратнее будет копировать?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
    #38566139
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Dimitry Sibiryakov]Не для тройки идея, но - насколько затратнее будет копировать?/quot]
реализовать это будет точно совсем не просто. Но главное - зачем?
...
Рейтинг: 0 / 0
25 сообщений из 69, страница 1 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ФБ 3.0: при вызове ХП перестал показывать нормальный план. Требую вернуть взад!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]