powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Слишком долгий запрос
2 сообщений из 2, страница 1 из 1
Слишком долгий запрос
    #40055248
t4kq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Есть таблица, которая содержит в себе список задач в JSONB формате. Данная таблица пополняется ежечасно задачами.
Так же есть менеджер задач - который каждые пять минут делает выборку из таблицы по индексу - время.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
                                           Table "public.task_table"
     Column      |            Type             | Collation | Nullable |                Default                 
-----------------+-----------------------------+-----------+----------+----------------------------------------
 id              | integer                     |           | not null | nextval('task_table_id_seq'::regclass)
 created_on      | timestamp without time zone |           |          | 
 time_start      | time without time zone      |           |          | 
 subscription_id | integer                     |           |          | 
 distribution_id | integer                     |           |          | 
 push_task       | jsonb                       |           |          | 
Indexes:
    "task_table_pkey" PRIMARY KEY, btree (id)
    "ix_task_table_subscription_id" btree (subscription_id)
    "ix_task_table_time_start" btree (time_start)



Запрос на получение данных
Код: plsql
1.
SELECT * FROM task_table where time_start = '10:30:00';



EXPLAIN ANALYZE
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
                                                                        QUERY PLAN                                                                          
-----------------------------------------------------------------------------------------------------------------------------------------------------------
 Index Scan using ix_task_table_time_start on task_table  (cost=0.43..149034.75 rows=165673 width=1050) (actual time=1.551..15205.230 rows=173602 loops=1)
   Index Cond: (time_start = '10:30:00'::time without time zone)
 Planning Time: 9.244 ms
 JIT:
   Functions: 2
   Options: Inlining false, Optimization false, Expressions true, Deforming true
   Timing: Generation 2.196 ms, Inlining 0.000 ms, Optimization 0.000 ms, Emission 0.000 ms, Total 2.196 ms
 Execution Time: 15228.825 ms
(8 rows)



Выполнение запроса достаточно долгое не смотря на относительно не большое количество записей.

Подскажите пожалуйста можно ли как-то ускорить выборку или же вообще мой подход утопичен?
...
Рейтинг: 0 / 0
Слишком долгий запрос
    #40055259
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
t4kq,

1)включите в конфиге track_io_timing

2)сделайте explain (analyze,costs, buffers,timing) чтобы понять во что запрос упирается в скорость дисков или в cpu

3)15s на 150.000 строк всетаки многовато
скорее всего дисковая система тормозная очень и/или мало памяти базе выделено.

4)c другой стороны условно быстрее 0.15s даже на хорошем оборудовании этот запрос вряд ли выполнится так как 150k строк всетаки не мало (и еще и по сети передать надо)


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Слишком долгий запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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