powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / query plan
5 сообщений из 5, страница 1 из 1
query plan
    #32531748
pgdumper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Sort  (cost=120.74..120.74 rows=1 width=25)
   Sort Key: qt_type, fk_grp
   ->  Index Scan using quota_fkusr_idx, quotas_fk_grp on quotas  (cost=0.00..120.73 rows=1 width=25)
         Index Cond: ((fk_usr = 2) OR (fk_grp = 2))
         Filter: ((qt_status = true) AND (network_supeq(qt_ip, '0.0.0.0/0'::inet) = true)
 AND ((qt_traf_beg = 0) OR (int4gt(qt_traf_cur, 0) = true)) AND ((qt_time_beg = 0) OR 
(int4ge(qt_time_cur, 2) = true)) AND (date_ge(qt_tol, ('now'::text)::date) = true) AND 
((qt_takt IS NULL) OR (qt_tow = 0) OR (int4ge((qt_tow)::integer, (('now'::text)::date -
 qt_takt)) = true)))

вот такой вот план, сильно смущает первая операция (Sort) и ее стоимость.
при этом на select уходит от 5 до 10 секунд, а в таблице записей меньше 500.
что посоветуете?
...
Рейтинг: 0 / 0
query plan
    #32532271
Wireless
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Какой PostgreSQL ? Если до 7.4 и таблица очень волатильна, то
может помочь пересоздание индекса.
2. Поуберай все "=true" - результат будет тот же, но читать/разбираться
в запросе станет гораздо проще.
...
Рейтинг: 0 / 0
query plan
    #32532394
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 pgdumper: приведите пожалуйста выдачу "explain analyze select ..."
...
Рейтинг: 0 / 0
query plan
    #32532851
pgdumper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за советы, вроде разобрался, для одного из полей не было индекса,
создал.
теперь все выглядит хорошо, несмотря на cost. (что это за величина такая, в чем измеряется?)
результат explain analyse

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sort  (cost=120.73..120.73 rows=1 width=25) (actual time=140.74..140.74 rows=1 loops=1)
   Sort Key: qt_type, fk_grp
   ->  Index Scan using quota_fkusr_idx, quotas_fk_grp on quotas 
 (cost=0.00..120.72 rows=1 width=25) (actual time=0.78..140.56 rows=1 
loops=1)
         Index Cond: ((fk_usr = 2) OR (fk_grp = 2))
         Filter: ((qt_status = true) AND (network_supeq(qt_ip, '0.0.0.0/0'::inet) = 
true) AND ((qt_traf_beg = 0) OR (int4gt(qt_traf_cur, 0) = true)) AND 
((qt_time_beg = 0) OR (int4ge(qt_time_cur, 2) = true)) AND date_ge(qt_tol, 
('now'::text)::date) AND ((qt_takt IS NULL) OR (qt_tow = 0) OR 
int4ge((qt_tow)::integer, (('now'::text)::date - qt_takt))))

 Total runtime: 140.90 msec
...
Рейтинг: 0 / 0
query plan
    #32533061
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для одного из полей не было индекса, создал. теперь все выглядит хорошо

Странно, что создание дополнительного индекса вам помогло. Однако, может и правда не стоит трогать солнышко, если никто на него не жалуется. :)

cost. (что это за величина такая, в чем измеряется?)

Из performance-tips.html#USING-EXPLAIN: The costs are measured in units of disk page fetches.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / query plan
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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