Я переглядаю кожне твердження SQL, яке додаток робить проти бази даних, з міркувань продуктивності. Чи є простий спосіб реєстрації всіх операторів, які виконуються сервером баз даних PostgreSQL? Спасибі.
Я переглядаю кожне твердження SQL, яке додаток робить проти бази даних, з міркувань продуктивності. Чи є простий спосіб реєстрації всіх операторів, які виконуються сервером баз даних PostgreSQL? Спасибі.
Відповіді:
Опція конфігурації, яку ви шукаєте, це log_statement = "all"
(якщо ви просто хочете заяви) або log_min_statement_duration = <some number>
якщо ви просто після "повільних" запитів (для деякого значення "повільного"). Дивіться http://www.postgresql.org/docs/current/static/runtime-config-logging.html для отримання більш детальної інформації про конфігурацію журналу.
explain analyze
повільного запиту на краватці, яку він виконував, ви можете почати тестувати це, оскільки 8.4 ще не випущений, але це хороший варіант знати, що трапляється на момент виконання , якщо висновок аналізу пояснити нормально, ви, мабуть, стикаєтеся з проблемами з межами вводу / виводу або процесора, але принаймні ви будете знати, що це не сам запит
auto_explain
Модуль є дуже корисним для цього. Він не лише записуватиме виписки, але записуватиме їх плани виконання і навіть може вести журнал операцій, що виконуються в межах PL / PgSQL-функцій. Показник ефективності є досить низьким, якщо ви не ввімкнете аналіз, і в такому випадку ви несете досить великі витрати на час для всіх запитів.
Дивіться auto_explain
в документації.
auto_explain
, він знаходиться у їхньому списку блаженних модулів. Дивіться документацію на docs.aws.amazon.com/AmazonRDS/latest/UserGuide/…
Звичайно, ви можете виявити найповільніші запити самостійно, але я раджу вам скористатися pgFouine - аналізатор журналів PostgreSQL. Це простий в установці і дуже корисний.