Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
02.09.2015, 09:09
|
|||
---|---|---|---|
Почему скорость выполнения различается на порядок? |
|||
#18+
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 тоже неоднокртный. Планы выполнения, предоставляемые сервером, настолько разные, что глаза навыкате. По правде говоря, планы для меня как китайская грамота и по ним понять что-то не получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.09.2015, 10:44
|
|||
---|---|---|---|
Почему скорость выполнения различается на порядок? |
|||
#18+
Ну и каша. Даже читать лениво. Рассмотри вопрос создания индексов по полю id_kletki для таблиц molodye и pasporta, раз уж ты их присоединяешь по этому полю. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.09.2015, 10:57
|
|||
---|---|---|---|
Почему скорость выполнения различается на порядок? |
|||
#18+
Для того, чтобы понять разность в скорости, достаточно знать, что FB некоторые условия отбора "продавливает" внутрь вьюхи, соответственно, выборка данных ограничивается ещё в начале. Процедура, соответственно, всегда отбирает все данные, и только на выходе уже будет фильтроваться. Неплохо бы также не 2 раза вызывать одну и ту же процедуру, чтобы отдельно посчитать COUNT и SUM с одним и тем же параметром, а сделать это за один раз. А то глаз слезится. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.09.2015, 10:58
|
|||
---|---|---|---|
Почему скорость выполнения различается на порядок? |
|||
#18+
В molodye ещё индекс по OWN просится. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=40&mobile=1&tid=1562648]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 276ms |
total: | 409ms |
0 / 0 |