복잡한 웹 페이지에서 백 개 이상의 쿼리가 실행됩니다. 이러한 쿼리를 벤치 마크하는 방법을 찾습니다. EXPLAIN ANALYZE을 resp에 포함하려고했습니다. psql 함수에 모든 쿼리의 실행 시간을 선택하고 비교합니다. 그러나 설명 분석은 어떤 식 으로든 포함시킬 수 없습니다.많은 PostgreSQL 쿼리 벤치마킹
일부 쿼리의 실행 시간을 비교하는 다른 해결책이 있습니까?
덕분에 많이 EXPLAIN
을 내장 아무 문제가 없습니다
복잡한 웹 페이지에서 백 개 이상의 쿼리가 실행됩니다. 이러한 쿼리를 벤치 마크하는 방법을 찾습니다. EXPLAIN ANALYZE을 resp에 포함하려고했습니다. psql 함수에 모든 쿼리의 실행 시간을 선택하고 비교합니다. 그러나 설명 분석은 어떤 식 으로든 포함시킬 수 없습니다.많은 PostgreSQL 쿼리 벤치마킹
일부 쿼리의 실행 시간을 비교하는 다른 해결책이 있습니까?
덕분에 많이 EXPLAIN
을 내장 아무 문제가 없습니다
PL/pgSQL의 :
CREATE OR REPLACE FUNCTION profile(
IN query text,
OUT total_cost double precision,
OUT runtime double precision
) RETURNS record
LANGUAGE plpgsql STRICT AS
$$DECLARE
j json;
BEGIN
EXECUTE 'EXPLAIN (ANALYZE, FORMAT JSON) ' || query INTO j;
total_cost := (j->0->'Plan'->>'Total Cost')::double precision;
runtime := (j->0->'Plan'->>'Actual Total Time')::double precision;
RETURN;
END;$$;
다음과 같이 예를 들어 그것을 사용할 수 있습니다
는test=> SELECT * FROM profile($$SELECT * FROM large WHERE val = 'mama'$$);
┌────────────┬─────────┐
│ total_cost │ runtime │
├────────────┼─────────┤
│ 14542.43 │ 207.836 │
└────────────┴─────────┘
(1 row)
는 사용하지 마십시오 함수가 SQL 삽입에 취약하기 때문에 신뢰할 수없는 쿼리가 있습니다.
내가 필요한 것. –
[오류보고 및 로깅] (https://www.postgresql.org/docs/current/static/runtime-config-logging.html) 및 [pg_stat_statements] (https://www.postgresql.org/docs) /current/static/pgstatstatements.html) 추신 : "_ 수백 개의 ** ** 쿼리가 실행되는 복잡한 웹 페이지가 있습니다 ._"- 지금은 왜 웹이 느리고 느려지는지 알고 있습니다. o ( – Abelisto