powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Почему скорость выполнения различается на порядок?
5 сообщений из 5, страница 1 из 1
Почему скорость выполнения различается на порядок?
    #39041115
SAN_01_08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FB 2.5. ODS БД 11.2, размер страницы 8192. (файл базы прилагается).

Вопрос, скорее, "филосовский" и может у кого будет время + желание взглянуть и рассказать в чем дело.
Для посмотреть достаточно открыть базу в IBExpert и в SQL редакторе последовательно запустить два запроса:
select * from sp_kletki_old
--select * from sp_kletki
Оба запроса вызывают селективные ХП.
По данным в Експерте, первый выполняется за ~46 ms, второй за ~450 ms
А результаты запроса, практически, одинаковые (в первом не хватает лишь 2 записи из 62-ти, отчего пришлось переделывать процедуру).

Первая ХП сканирует представленный view полный набор данных и только формирует числа для двух колонок по которым на
клиенте данные отображаются в виде дерева.
Вторая выбирает данные из таблицы БД и чтобы сформировать эти две колонки вызывает другую ХП,
при необходимости добавляя строки в НД (в представленной базе этих необходимостей всего 2 из 58 записей в таблице).
Эта другая ХП вызывается на каждой итерации от 1 до 3 раз (в зависимости от того сколько записей предоставит другая ХП при первом вызове).
Может быть в этом беда. Но в "старой" ХП запрос к view тоже неоднокртный.

Планы выполнения, предоставляемые сервером, настолько разные, что глаза навыкате.
По правде говоря, планы для меня как китайская грамота и по ним понять что-то не получается.
...
Рейтинг: 0 / 0
Почему скорость выполнения различается на порядок?
    #39041211
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и каша. Даже читать лениво.
Рассмотри вопрос создания индексов по полю id_kletki для таблиц molodye и pasporta, раз уж ты их присоединяешь по этому полю.
...
Рейтинг: 0 / 0
Почему скорость выполнения различается на порядок?
    #39041236
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для того, чтобы понять разность в скорости, достаточно знать, что FB некоторые условия отбора "продавливает" внутрь вьюхи, соответственно, выборка данных ограничивается ещё в начале. Процедура, соответственно, всегда отбирает все данные, и только на выходе уже будет фильтроваться.

Неплохо бы также не 2 раза вызывать одну и ту же процедуру, чтобы отдельно посчитать COUNT и SUM с одним и тем же параметром, а сделать это за один раз. А то глаз слезится.
...
Рейтинг: 0 / 0
Почему скорость выполнения различается на порядок?
    #39041237
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В molodye ещё индекс по OWN просится.
...
Рейтинг: 0 / 0
Почему скорость выполнения различается на порядок?
    #39041353
SAN_01_08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, добрый человек.
Сногсшибательный прирост производительности после создания предложенных индексов.
Теперь выполнение запроса укладывается в 30 ms
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Почему скорость выполнения различается на порядок?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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