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

Народ, а подскажите. Почему время так отличается? postgres@postgres=# explain analyze select

* from test where a < 500;
QUERY PLAN
----------------------------------------------------------------------------------------------
Seq Scan on test (cost=0.00..1.05 rows=1 width=4) (actual time=0.007..0.008 rows=2 loops=1)
Filter: (a < 500)
Rows Removed by Filter: 6
Planning Time: 0.021 ms
Execution Time: 0.023 ms
(5 rows)

Time: 2.637 ms

Таблица 8 строк. В analyze пишет 0.007, 0.021, 0.023... Т.е. это всё суммарно меньше 0.1 мс. При этом общее время выполнения запроса 2.637 мс. Это как? Где столько набралось?

14 ответов

11 просмотров

Кажется дошло. Эти 2мс это по сути аналог времени выполнения dbms_xplan.display_cursor в oracle. Это время потраченное на сборку и отрисовку explain'а

Дмитрий-Лукьянов Автор вопроса
Sergey Gr
Кажется дошло. Эти 2мс это по сути аналог времени ...

Ну, я тоже так предполагаю. Другого объяснения нет.. Он просто считает время выполнения и самого эксплейна.

Дмитрий Лукьянов
Ну, я тоже так предполагаю. Другого объяснения нет...

Причём при последовательных исполнениях время \timing , planing и execution уменьшается . \timing время уменьшается особенно заметно

Дмитрий Лукьянов
Ну, я тоже так предполагаю. Другого объяснения нет...

Я же Вам уже ответил, без "предположений". ;) См. https://t.me/pgsql/262801

Sergey Gr
Причём при последовательных исполнениях время \tim...

И ведь PostgreSQL — это opensource проект, зачем гадать, если действительно интересно? ;) https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/bin/psql/common.c;h=dfbc22970f83165aa6bb16b9e3f885496ca524b4;hb=HEAD#l1300

Yaroslav Schekin
Я же Вам уже ответил, без "предположений". ;) См. ...

IMHO не fetch. Как мне кажется - формирование результата explain'а.

Yaroslav Schekin
И ведь PostgreSQL — это opensource проект, зачем г...

Спасибо! Прям лучше чем в исходниках не скажешь.

Sergey Gr
IMHO не fetch. Как мне кажется - формирование резу...

Я прямо даже растерялся, что и отвечать на "IMHO" после ссылки на исходники, если честно. ;) Не за что!

Дмитрий-Лукьянов Автор вопроса
Yaroslav Schekin
И ведь PostgreSQL — это opensource проект, зачем г...

Ох уж эти программисты-зазнайки. Все б им тебя в исходники носом ткнуть. Хотя и ежу понятно, что почти никто их прочесть и понять не сможет.. 🤷‍♂️

Дмитрий Лукьянов
Ох уж эти программисты-зазнайки. Все б им тебя в и...

Если это не сарказм — да Вы откройте, там простой и хорошо читаемый (и подробно комментированный, на крайний случай) код, который понимаю даже я, хотя на C сто лет ничего не писал. ;)

Дмитрий-Лукьянов Автор вопроса
Yaroslav Schekin
Если это не сарказм — да Вы откройте, там простой ...

Ну, к слову, есть много людей во вселенной, которые не давно, а вообще не писали на Си.. 🤷‍♂️ Программы уровня хеллоуворлд и сортировки пузырьком за программирование я не считаю..

Дмитрий Лукьянов
Ну, к слову, есть много людей во вселенной, которы...

Для таких людей я как раз и написал "подробно комментированный". ;) Т.е., в отличие от closed source, у Вас в случае проблем действительно есть вариант "читаете исходники, и уже только потом начинаете биться головой о клавиатуру".

Дмитрий Лукьянов
Ну, к слову, есть много людей во вселенной, которы...

а вы попробуйте. хотя бы начните читать README файлы в исходниках и комментарии. там тонны полезной информации

Sergey Gr
Причём при последовательных исполнениях время \tim...

Та разница в \timing при первом запросе - это про прогрев кэша каталога при анализе и rewrite`е приходящего запроса, эти стадии не замеряются в explain analyze

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

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

а через 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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
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
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта