172 похожих чатов

Что означает cost? Почему показывает с интервалом? Привет всем ))

33 ответов

31 просмотр

https://www.postgresql.org/docs/current/using-explain.html (И там есть ответы на многие другие подобные вопросы.)

Rustam-Jon Автор вопроса
Yaroslav Schekin
https://www.postgresql.org/docs/current/using-expl...

Спасибо Можете подсказать какой из них более производительный?

Rustam Jon
Спасибо Можете подсказать какой из них более произ...

Чтобы что-то подсказывать по планам, лучше привести https://t.me/pgsql/288632

Rustam-Jon Автор вопроса
Rustam Jon
1. https://explain.depesz.com/s/vbrZ 2. https://ex...

И Вы не показали ничего из того, о чём я спрашивал. ;( Так что ничего неочевидного тут и не скажешь. А какой практический вопрос, кстати? Зачем Вы сравниваете эти планы?

Rustam-Jon Автор вопроса
Yaroslav Schekin
И Вы не показали ничего из того, о чём я спрашивал...

В одном запросе используется left join lateral в другом запросе with pipeline

Rustam-Jon Автор вопроса
Rustam Jon
В одном запросе используется left join lateral в д...

Если смотреть на время выполнения то with выполняется чуть быстрее чем lateral join

Rustam Jon
Если смотреть на время выполнения то with выполняе...

И не только не показали, но и не ответили ни на один вопрос. Наверное, помощь Вам не нужна. ;(

Yaroslav Schekin
И не только не показали, но и не ответили ни на од...

Вы наверное последнее письмо не видели (может оно пока на модерации). Суть следующая: где-то внутри функций используются запросы с window function. Если написать вот так: SELECT * FROM agreement_totals( tstzrange( '2020-08-01', '2020-08-01', '[]' ) ) WHERE agreement_id = 3472::int AND (o).period_id = 10::int То я получу неверную сумму, потому что использовал (o).period_id.

Eugen
Вы наверное последнее письмо не видели (может оно ...

Хмм... видимо, не видел. Но тогда на Ваш вопрос невозможно ответить — примера-то никто пока не видел. ;) Можете целиком показать?

Rustam-Jon Автор вопроса
Yaroslav Schekin
И не только не показали, но и не ответили ни на од...

Ну ясно же сравниваю эти двух способов. Хочу узнать какой из этих вариантов более производительный

Rustam Jon
Ну ясно же сравниваю эти двух способов. Хочу узнат...

Покажите 1) версию PostgreSQL, 2) запрос, 3) \d каждой используемой таблицы, 4) EXPLAIN (ANALYZE, BUFFERS). Если действительно хотите — покажите все 4 (четыре), и именно те, которые указаны в пунктах. ;)

Rustam-Jon Автор вопроса
Rustam Jon
3  пункт не совсем понял

Это метакоманда psql, \d таблица

Yaroslav Schekin
Покажите 1) версию PostgreSQL, 2) запрос, 3) \d ка...

PostgreSQL 12.3 (Debian 12.3-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit select property_type, count(*) as amount from pages group by property_type baikal-# \d pages ERROR: column c.relhasoids does not exist LINE 1: ...riggers, c.relrowsecurity, c.relforcerowsecurity, c.relhasoi... Finalize GroupAggregate (cost=551738.73..551739.74 rows=4 width=17) (actual time=334532.077..334532.083 rows=5 loops=1)

Artyom
PostgreSQL 12.3 (Debian 12.3-1.pgdg100+1) on x86_6...

> PostgreSQL 12.3 А должен быть уже 12.7 — обновите, это же несложно. > ERROR: column c.relhasoids does not exist И с версией клиента тоже какая-то ерунда — установите актуальную (для v12 или новее). > Finalize GroupAggregate (cost=551738.73..551739.74 rows=4 width=17) (actual time=334532.077..334532.083 rows=5 loops=1) Полный план, а не какие-то куски, естественно!

Yaroslav Schekin
> PostgreSQL 12.3 А должен быть уже 12.7 — обнов...

QUERY PLAN | ---------------------------------------------------------------------------------------------------------------------------------------------------+ Finalize GroupAggregate (cost=551738.73..551739.74 rows=4 width=17) (actual time=334532.077..334532.083 rows=5 loops=1) | Group Key: property_type | Buffers: shared hit=6014 read=176388 | -> Gather Merge (cost=551738.73..551739.66 rows=8 width=17) (actual time=334532.059..335118.492 rows=15 loops=1) | Workers Planned: 2 | Workers Launched: 2 | Buffers: shared hit=12548 read=523344 | -> Sort (cost=550738.71..550738.72 rows=4 width=17) (actual time=333967.542..333967.543 rows=5 loops=3) | Sort Key: property_type | Sort Method: quicksort Memory: 25kB | Worker 0: Sort Method: quicksort Memory: 25kB | Worker 1: Sort Method: quicksort Memory: 25kB | Buffers: shared hit=12548 read=523344 | -> Partial HashAggregate (cost=550738.63..550738.67 rows=4 width=17) (actual time=333967.501..333967.502 rows=5 loops=3) | Group Key: property_type | Buffers: shared hit=12532 read=523344 | -> Parallel Seq Scan on pages (cost=0.00..545784.42 rows=990842 width=9) (actual time=33.668..333048.757 rows=758565 loops=3)| Buffers: shared hit=12532 read=523344 | Planning Time: 0.120 ms | JIT: | Functions: 21 | Options: Inlining true, Optimization true, Expressions true, Deforming true | Timing: Generation 5.497 ms, Inlining 1668.064 ms, Optimization 118.266 ms, Emission 82.387 ms, Total 1874.213 ms | Execution Time: 335120.611 ms |

Artyom
QUERY PLAN ...

"Когда же это прекратится, и где же этому конец?" © Ещё раз, если действительно хотите помощи — покажите все 4 (ЧЕТЫРЕ!), и ИМЕННО те, которые указаны в пунктах!

Yaroslav Schekin
> PostgreSQL 12.3 А должен быть уже 12.7 — обнов...

вот в нормальном виде explain analyze https://paste.ofcode.org/XqCeRHbxsyKYq3Gz6BmjZM

Yaroslav Schekin
Покажите 1) версию PostgreSQL, 2) запрос, 3) \d ка...

спс, нашёл решение CREATE INDEX msg_lower ON messages (lower(id));

Илья
спс, нашёл решение CREATE INDEX msg_lower ON messa...

Или не нашли, а наблюдаете просто эффект кеширования. Вас же не просто так (уже четыре раза?!) попросили показать план... но дело Ваше, конечно. ;)

> Если действительно хотите — покажите все 4 (четыре), и именно те, которые указаны в пунктах. ;) Когда же это прекратится, и где же этому конец... ;( > explain analyze - 7.000ms Плевать мы хотели Не имеет значения, сколько там ms! Это наименее существенная часть в выводе explain. Нужно всё перечисленное, полностью.

Yaroslav Schekin
Покажите 1) версию PostgreSQL, 2) запрос, 3) \d ка...

Все версии последние с сайта postgresql (сервер и odbc) SELECT FIELD_1 FROM TABLE_1 WHERE id=123 (самый простой - 1 поле из одной таблицы) Если смотреть в коде if (QR_command_maybe_successful(res) && res->backend_tuples) { SC_set_error(self, STMT_SEQUENCE_ERROR, "The cursor is open.", func); return TRUE; } Что то не удаляется после SQLCancel

Yaroslav Schekin
Покажите 1) версию PostgreSQL, 2) запрос, 3) \d ка...

analyze verbose целевой таблицы и таблиц с внешними ключами решил проблему, спасибо всем, кто откликнулся

Yaroslav Schekin
Покажите 1) версию PostgreSQL, 2) запрос, 3) \d ка...

Добрый день! Какая дальнейшая методология ускорения скрипта? Где могу изучить?

std::divconq
Добрый день! Какая дальнейшая методология ускорени...

Определяете, на что запрос тратит время. Определяете, как вам хотелось бы, чтобы он его тратил. Приводите второе к первому.

И да, вы вроде сейчас в активной разработке. Я советую сменить postgres на 14. За эту пятилетку в движке создано реально много полезного.

Ilya Anfimov
И да, вы вроде сейчас в активной разработке. Я сов...

это в планах, я после и там проверки проведу такие же. Просто странно, что Buffers: shared hit вырастает при работе комплекса, и скидывается при перезапуске "ПГ".

Yaroslav Schekin
Покажите 1) версию PostgreSQL, 2) запрос, 3) \d ка...

Подскажите пожалуйста где можно почитать о том как понимать то что выдаете EXPLAIN(analyze,buffers)

Yaroslav Schekin
Покажите 1) версию PostgreSQL, 2) запрос, 3) \d ка...

Начать с нашэго закрепа: https://t.me/pgsql/303899

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта