Производительность при группировке

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 31 июл 2006, 17:57

CyberMax писал(а):А где остальное?
Asiris (17:58) :
STATISTICDATA (133)
Primary pointer page: 310, Index root page: 311
Data pages: 0, data page slots: 0, average fill: 0%
Fill distribution:
0 - 19% = 0
20 - 39% = 0
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0

Index RDB$24 (0)
Depth: 1, leaf buckets: 1, nodes: 0
Average data length: 0.00, total dup: 0, max dup: 0
Fill distribution:
0 - 19% = 1
20 - 39% = 0
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0

Index RDB$FOREIGN26 (2)
Depth: 1, leaf buckets: 1, nodes: 0
Average data length: 0.00, total dup: 0, max dup: 0
Fill distribution:
0 - 19% = 1
20 - 39% = 0
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0

Index RDB$FOREIGN27 (3)
Depth: 1, leaf buckets: 1, nodes: 0
Average data length: 0.00, total dup: 0, max dup: 0
Fill distribution:
0 - 19% = 1
20 - 39% = 0
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0

Index RDB$PRIMARY25 (1)
Depth: 1, leaf buckets: 1, nodes: 0
Average data length: 0.00, total dup: 0, max dup: 0
Fill distribution:
0 - 19% = 1
20 - 39% = 0
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 31 июл 2006, 17:58

STAT_DATA (134)
Primary pointer page: 318, Index root page: 319
Data pages: 538202, data page slots: 538202, average fill: 90%
Fill distribution:
0 - 19% = 0
20 - 39% = 0
40 - 59% = 0
60 - 79% = 26769
80 - 99% = 511433

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 31 июл 2006, 18:02

ты лучше статистику выполнения покажи. В IBExpert это внизу запроса, где и план, только ниже.

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 31 июл 2006, 18:03

Просили статистику выполнения, а не таблицы...

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 31 июл 2006, 18:07

CyberMax писал(а):Хорошо бы еще увидеть селективность этого индекса. И собственно что это за индекс - один на три поля или по одному на каждое поле.
2 dimitr. Или это не повлияет на группировку?
по нескольким индексам сортировка/группировка вообще невозможна. А селективность на быстродействие хоть и повлияет, но лучше SORT-а вряд ли станет.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 01 авг 2006, 08:10

Лично я бы убрал из запроса "0=0" и "MONTH=..." (довольно странно перечислять все месяцы) и создал индекс по "YEAR".

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 01 авг 2006, 09:00

Dimitry Sibiryakov писал(а):Лично я бы убрал из запроса "0=0" и "MONTH=..." (довольно странно перечислять все месяцы) и создал индекс по "YEAR".
Да уж раздел where просто улет, не мудрено что сервер стошнило... :)

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 01 авг 2006, 09:27

Ivan_Pisarevsky писал(а):
Dimitry Sibiryakov писал(а):Лично я бы убрал из запроса "0=0" и "MONTH=..." (довольно странно перечислять все месяцы) и создал индекс по "YEAR".
Да уж раздел where просто улет, не мудрено что сервер стошнило... :)
Алё!!!
Специалисты Where можно вообще убрать
картина от этого не изменится
Я вам толкую
как сделать чтобы Group by быстрей работал по всей таблице

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 01 авг 2006, 09:52

Выкладывай скрипт, который создаст воспроизводимый пример, создаст таблицу и нальет в нее данные (или сгенерирует случайные), или же создай БД с одной этой таблицей, если в зарареном виде она не больно тяжелая, то можно прямо ее. Попробуем.

А смысл шарится по всей таблице, ели обычно отчет нужен за месяц?

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 01 авг 2006, 10:34

Ivan_Pisarevsky писал(а):Выкладывай скрипт, который создаст воспроизводимый пример, создаст таблицу и нальет в нее данные (или сгенерирует случайные), или же создай БД с одной этой таблицей, если в зарареном виде она не больно тяжелая, то можно прямо ее. Попробуем.

А смысл шарится по всей таблице, ели обычно отчет нужен за месяц?
Ваня! это статистическая информация
Например я хочу узнать сколько проданно определенного типа товара и определенного наименования товара за год с разбивкой на месяцы
тут без группировки не обойтись

Но в FireBird похоже она медленней работает чем в других субд

я провёл опыты набил другие субд этими же данными (во всех субд не использовал индексы)
и сделал запрос очень простой что там даже оптимизировать не чего

сгруппировал по типу товара и по наименованию и сделал Sum по количеству в штуках

FireBird медленее всех

как можно оптимизировать базу если запрос и так простой

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 01 авг 2006, 10:42

Dmitry74 писал(а):Алё!!!
Я вам толкую
ёпрст! ты нам статистику *выполнения* покажешь или нет?!

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 01 авг 2006, 15:25

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

Вот мне и стало интересно, где именно ты столько тормозов откопал.
и сделал запрос очень простой что там даже оптимизировать не чего
А может банально кеш пэджес накрутить, чтоб ФБ диск не дергал?

Мониторинг дисковой активности что говорит?
Какая очередь к диску?

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 01 авг 2006, 15:31

Ivan_Pisarevsky писал(а):и сделал запрос очень простой что там даже оптимизировать не чего
А может банально кеш пэджес накрутить, чтоб ФБ диск не дергал?

Мониторинг дисковой активности что говорит?
Какая очередь к диску?
Диск крутится будь здоров!

Ты пишешь у тебя сто тысяч записей а у меня базы по 2 миллиона а бывают и больше.

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 01 авг 2006, 15:33

Ivan_Pisarevsky писал(а):А может банально кеш пэджес накрутить, чтоб ФБ диск не дергал?
Енто как подскажи как его накрутить?
[Модератор: прежде чем отправлять сообщение на сервер, сделай предварительный просмотр. Неправильные квоты у тебя в каждом сообщении.]

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Сообщение dimitr » 01 авг 2006, 15:36

или ты ответишь на поставленный неоднократно вопрос или я за себя не отвечаю... :twisted:

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 01 авг 2006, 15:47

dimitr писал(а):или ты ответишь на поставленный неоднократно вопрос или я за себя не отвечаю... :twisted:
Дак как её взять то объясни
дорогой друг :wink:

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 01 авг 2006, 15:50

Dmitry74 писал(а):Дак как её взять то объясни
дорогой друг :wink:
dimitr писал(а):ты лучше статистику выполнения покажи. В IBExpert это внизу запроса, где и план, только ниже.

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 01 авг 2006, 15:53

CyberMax писал(а):
Dmitry74 писал(а):Дак как её взять то объясни
дорогой друг :wink:
dimitr писал(а):ты лучше статистику выполнения покажи. В IBExpert это внизу запроса, где и план, только ниже.
План
PLAN SORT ((MAIN NATURAL))

Адаптированный план
PLAN SORT ((MAIN NATURAL))

Вот что там есть
только похоже этого вам мало будет

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 01 авг 2006, 16:00

О Господи. Прокрути скроллбар справа вниз. Там еще текст идет. Его, наверно, не видно просто. Если скроллбара вдруг все-таки нет, зашли сюда скриншот IB Expert'а.

Dmitry74
Сообщения: 70
Зарегистрирован: 31 июл 2006, 15:55

Сообщение Dmitry74 » 01 авг 2006, 16:15

CyberMax писал(а):О Господи. Прокрути скроллбар справа вниз. Там еще текст идет. Его, наверно, не видно просто. Если скроллбара вдруг все-таки нет, зашли сюда скриншот IB Expert'а.
Изображение

Нет там ни какого скроллбара

Ответить