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

Gettimeofday - понятно, зависит от системы, в идеале незначительно (чем

больше маленьких операций, тем больше измерений и больше оверхед?)

the current implementation of EXPLAIN ANALYZE adds profiling overhead to query execution

- то есть в идеале это все-таки проценты или десятки процентов

3 ответов

10 просмотров

Обычно время выполнения запроса, показываемое explain analyze почти не отличается от времени выполнения запроса без него. gettimeofday в большинстве систем реализован достаточно эффективно и не требует system call-а. Так что разница не должна превышать единиц процентов. Мне казалось, что негативный эффект на скорость работы от включённого auto_explain скорее будет связан с значительным увеличением объёма записи в лог файл. Но это почти не зависит от того включён ли analyze или нет.

мне всегда хватало нескольких скриптов один из которіх анализирует разницу между seq_scan и idx_scan чем показывает где пропущен индекс и второй аналирует сколько раз были использованы индексы .. и нет ли лишних индексов в сестеме ..

> понятно, зависит от системы, в идеале незначительно Да, в идеале. Но почему Вы думаете, что конкретный сервер "идеален" (для этого по ссылке и описана утилита для тестирования)? ;) > чем больше маленьких операций, тем больше измерений и больше оверхед Да. Насколько я помню, gettimeofday вызывается дважды для каждого tuple, проходящего через plan node. > - то есть в идеале это все-таки проценты или десятки процентов Если у Вас сплошь seq.scans узких таблиц, где много rows — может быть и куда больше. Вот пример, на первой попавшейся таблице: seq.scan таблицы с pg_column_size = 36, 10000000 rows: COUNT(*): Time: 442,860 ms EXPLAIN (ANALYZE) COUNT(*): Execution Time: 835.380 ms

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
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
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта