powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Опять про деревья и время выполнения ...
18 сообщений из 43, страница 2 из 2
Опять про деревья и время выполнения ...
    #32648501
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лентяй ЛентяйА если так, то в FB 2 есть какие-нибудь планы по этому поводу? hvladЕсть ;)?Улыбка-то, надеюсь, не ехидная? Надеяться всегда можно ;)
...
Рейтинг: 0 / 0
Опять про деревья и время выполнения ...
    #32648548
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DnicoДа нет ... там больше записей ... там получилось 2 мин - тоже ничего ...Ничё не понял - где "там" ?
На твоём кол-ве записей 2мин - это ооочень долго
...
Рейтинг: 0 / 0
Опять про деревья и время выполнения ...
    #32648558
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad DnicoДа нет ... там больше записей ... там получилось 2 мин - тоже ничего ...Ничё не понял - где "там" ?
На твоём кол-ве записей 2мин - это ооочень долго

На реальной базе 2 мин. (а было 20 минут).
...
Рейтинг: 0 / 0
Опять про деревья и время выполнения ...
    #32649110
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DnicoНа реальной базе 2 мин. (а было 20 минут).Это на вот этой
DnicoGOODS - товары 10000 записей
CUST - клиенты 2000 записей
DOC - отгрузки (YY-год, ММ-месяц и индекс GOODS,CUST,YY,MM) - 100 000 записей ?

Тогда 120сек это медленно, imho ;)
Или это время первого выполнения запроса на сервере с пустым кешем ?
...
Рейтинг: 0 / 0
Опять про деревья и время выполнения ...
    #32649122
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну почти ... реально вот такие
GOODS - 10000 записей
CUST - 2500 записей
DOC - 250 000 записей

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Опять про деревья и время выполнения ...
    #32649133
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот интересно, можно как-то кеш увеличить ?

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Опять про деревья и время выполнения ...
    #32649140
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DnicoА вот интересно, можно как-то кеш увеличить ?Гм, мне всегда "нравились" те, кто пишет программы для СУБД не читая документацию на эту СУБД...

Не скажу ;)
...
Рейтинг: 0 / 0
Опять про деревья и время выполнения ...
    #32649166
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DefaultDbCachePages ?

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Опять про деревья и время выполнения ...
    #32649192
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DnicoDefaultDbCachePages ? Это глобальный пар-р.
Ещё можно задать для конкретной БД и для конретного коннекта.
...
Рейтинг: 0 / 0
Опять про деревья и время выполнения ...
    #32649224
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал две плоские таблицы GOODS_GROUP и CUST_GROUP
по условию C.PID = 'U7' AND G.PID = '4EJ' выбираются требуемы записи.
Индексы по полю PID .

Код: plaintext
1.
2.
3.
  FROM DOC D
  JOIN GOODS_GROUP G ON (G.ID = D.GID)
  JOIN CUST_GROUP C ON (C.ID = D.CUST)
  WHERE D.YY =  2004  AND C.PID = 'U7' AND G.PID = '4EJ'

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Query Time
------------------------------------------------
Prepare       : 16,00 ms
Execute       : 28 438,00 ms
Avg fetch time: 28 438,00 ms

Memory
------------------------------------------------
Current: 6 137 620
Max    : 13 684 720
Buffers: 2 048

Operations
------------------------------------------------
Read   : 1 578
Writes : 16
Fetches: 28 074 203


Enchanced Info:
+--------------------------+-----------+-----------+---------+---------+---------+
|        Table Name        |   Index   | Non-Index | Updates | Deletes | Inserts |
|                          |   reads   |   reads   |         |         |         |
+--------------------------+-----------+-----------+---------+---------+---------+
|                       DOC|     37259 |         0 |       0 |       0 |       0 |
|                CUST_GROUP|   6988632 |         0 |       0 |       0 |       0 |
|               GOODS_GROUP|      1302 |         0 |       0 |       0 |       0 |
+--------------------------+-----------+-----------+---------+---------+---------+

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Опять про деревья и время выполнения ...
    #32649242
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. 28 сек, а не 120 ? И это при первом выполнении, т.е. с пустым кешем.

Сколько записей вернёт неаггрегированный запрос (добавь туда ещё COUNT(*)) ?

План покажи, и весь текст запроса
...
Рейтинг: 0 / 0
Опять про деревья и время выполнения ...
    #32649263
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
План
PLAN JOIN (G INDEX (GOODS_GROUP_IDX1),D INDEX (DOC_IDX1),C INDEX (CUST_GROUP_IDX1))
Все из кеша

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  SELECT
  SUM(CASE WHEN D.MM =  1  THEN SALE_A ELSE  0  END),
  .......
  SUM(CASE WHEN D.MM =  12  THEN SALE_A ELSE  0  END)
  FROM DOC D
  JOIN GOODS_GROUP G ON (G.ID = D.GID)
  JOIN CUST_GROUP C ON (C.ID = D.CUST)
  WHERE D.YY =  2004  AND C.PID = 'U7' AND G.PID = '4EJ'

План
PLAN JOIN (G INDEX (GOODS_GROUP_IDX1),D INDEX (DOC_IDX1),C INDEX (CUST_GROUP_IDX1))
Все из кеша
Кол-во = 6747
Код: plaintext
1.
2.
3.
4.
5.
  SELECT
  COUNT(*)
  FROM BREND_SALE D
  JOIN GOODS_GROUP G ON (G.ID = D.GID)
  JOIN CUST_GROUP C ON (C.ID = D.CUST)
  WHERE D.YY =  2004  AND C.PID = 'U7' AND G.PID = '4EJ'

Тексты запросов полные !

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Опять про деревья и время выполнения ...
    #32649298
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обманываешь - то у тебя DOC D , то BREND_SALE D ;)
Ладно, предположим, что это одно и тоже.
Дай раскладку полей по индексам, использованным в плане.
...
Рейтинг: 0 / 0
Опять про деревья и время выполнения ...
    #32649310
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DOC(он же BREND_SALE ) - GID,CUST, YY, MM
GOODS_GROUP и CUST_GROUP - PID
(в этих таблицах поля PID,ID)

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Опять про деревья и время выполнения ...
    #32649359
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А индекс на CUST_GROUP.ID есть ?
Если нет - создай.
Если есть или создал, но он не используется, то выполни
Код: plaintext
1.
2.
3.
4.
...
  FROM BREND_SALE D
       JOIN GOODS_GROUP G ON (G.ID = D.GID)
       JOIN CUST_GROUP C ON (C.ID = D.CUST)
 WHERE D.YY =  2004  AND C.PID + 0  = 'U7' AND G.PID = '4EJ'
Должен взяться индекс по CUST_GROUP.ID
...
Рейтинг: 0 / 0
Опять про деревья и время выполнения ...
    #32649368
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во блин ... век живи - век учись !!!
421 ms

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Опять про деревья и время выполнения ...
    #32649370
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо !!!

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Опять про деревья и время выполнения ...
    #32649374
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dnico 421 ms Вот, это уже похоже на правду ;)
...
Рейтинг: 0 / 0
18 сообщений из 43, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Опять про деревья и время выполнения ...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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