aurora_stat_dml_activity
Aurora PostgreSQL 클러스터의 데이터베이스에서 각 DML(데이터 조작 언어) 작업 유형에 대한 누적 활동을 보고합니다.
구문
aurora_stat_dml_activity(database_oid)
Arguments
- database_oid
-
Aurora PostgreSQL 클러스터에 있는 데이터베이스의 객체 ID(OID)입니다.
반환 유형
SETOF 레코드
사용 노트
aurora_stat_dml_activity
함수는 PostgreSQL 엔진 11.6 이상과 호환되는 Aurora PostgreSQL 릴리스 3.1에서만 사용할 수 있습니다.
많은 수의 데이터베이스가 있는 Aurora PostgreSQL 클러스터에서 이 함수를 사용하여 DML 작업이 많거나 느린 데이터베이스 또는 둘 다 해당하는 데이터베이스를 식별합니다.
aurora_stat_dml_activity
함수가 실행된 횟수와 SELECT, INSERT, UPDATE 및 DELETE 작업의 누적 대기 시간을 마이크로초 단위로 반환합니다. 이 보고서에는 성공적인 DML 작업만 포함됩니다.
PostgreSQL 통계 액세스 함수 pg_stat_reset
을 사용하여이 통계를 재설정할 수 있습니다. pg_stat_get_db_stat_reset_time
함수를 사용하면 이 통계가 마지막으로 재설정된 시간을 확인할 수 있습니다. PostgreSQL 통계 액세스 함수에 대한 자세한 내용은 PostgreSQL 설명서에서 통계 수집기
예
다음 예는 연결된 데이터베이스에 대한 DML 작업 통계를 보고하는 방법을 보여줍니다.
––Define the oid variable from connected database by using \gset
=>
SELECT oid, datname FROM pg_database WHERE datname=(select current_database()) \gset
=>
SELECT * FROM aurora_stat_dml_activity(:oid);
select_count | select_latency_microsecs | insert_count | insert_latency_microsecs | update_count | update_latency_microsecs | delete_count | delete_latency_microsecs --------------+--------------------------+--------------+--------------------------+--------------+--------------------------+--------------+-------------------------- 178957 | 66684115 | 171065 | 28876649 | 519538 | 1454579206167 | 1 | 53027
–– Showing the same results with expanded display on=>
SELECT * FROM aurora_stat_dml_activity(:oid);
-[ RECORD 1 ]------------+-------------- select_count | 178957 select_latency_microsecs | 66684115 insert_count | 171065 insert_latency_microsecs | 28876649 update_count | 519538 update_latency_microsecs | 1454579206167 delete_count | 1 delete_latency_microsecs | 53027
다음 예는 Aurora PostgreSQL 클러스터의 모든 데이터베이스에 대한 DML 작업 통계를 보여줍니다. 이 클러스터에는 postgres
와 mydb
라는 두 개의 데이터베이스가 있습니다. 쉼표로 구분된 목록은 select_count
, select_latency_microsecs
, insert_count
, insert_latency_microsecs
, update_count
, update_latency_microsecs
, delete_count
및 delete_latency_microsecs
필드와 일치합니다.
Aurora PostgreSQL은 rdsadmin
이라는 시스템 데이터베이스를 만들고 이 데이터베이스를 사용하여 백업, 복원, 상태 확인, 복제 등의 관리 작업을 지원합니다. 이러한 DML 작업은 Aurora PostgreSQL 클러스터에 영향을 주지 않습니다.
=>
SELECT oid, datname, aurora_stat_dml_activity(oid) FROM pg_database;
oid | datname | aurora_stat_dml_activity -------+----------------+----------------------------------------------------------------- 14006 | template0 | (,,,,,,,) 16384 | rdsadmin | (2346623,1211703821,4297518,817184554,0,0,0,0) 1 | template1 | (,,,,,,,) 14007 | postgres | (178961,66716329,171065,28876649,519538,1454579206167,1,53027) 16401 | mydb | (200246,64302436,200036,107101855,600000,83659417514,0,0)
다음 예는 가독성을 높이기 위해 열로 구성된 모든 데이터베이스의 DML 작업 통계를 보여줍니다.
SELECT db.datname, BTRIM(SPLIT_PART(db.asdmla::TEXT, ',', 1), '()') AS select_count, BTRIM(SPLIT_PART(db.asdmla::TEXT, ',', 2), '()') AS select_latency_microsecs, BTRIM(SPLIT_PART(db.asdmla::TEXT, ',', 3), '()') AS insert_count, BTRIM(SPLIT_PART(db.asdmla::TEXT, ',', 4), '()') AS insert_latency_microsecs, BTRIM(SPLIT_PART(db.asdmla::TEXT, ',', 5), '()') AS update_count, BTRIM(SPLIT_PART(db.asdmla::TEXT, ',', 6), '()') AS update_latency_microsecs, BTRIM(SPLIT_PART(db.asdmla::TEXT, ',', 7), '()') AS delete_count, BTRIM(SPLIT_PART(db.asdmla::TEXT, ',', 8), '()') AS delete_latency_microsecs FROM (SELECT datname, aurora_stat_dml_activity(oid) AS asdmla FROM pg_database ) AS db;
datname | select_count | select_latency_microsecs | insert_count | insert_latency_microsecs | update_count | update_latency_microsecs | delete_count | delete_latency_microsecs ----------------+--------------+--------------------------+--------------+--------------------------+--------------+--------------------------+--------------+-------------------------- template0 | | | | | | | | rdsadmin | 4206523 | 2478812333 | 7009414 | 1338482258 | 0 | 0 | 0 | 0 template1 | | | | | | | | fault_test | 66 | 452099 | 0 | 0 | 0 | 0 | 0 | 0 db_access_test | 1 | 5982 | 0 | 0 | 0 | 0 | 0 | 0 postgres | 42035 | 95179203 | 5752 | 2678832898 | 21157 | 441883182488 | 2 | 1520 mydb | 71 | 453514 | 0 | 0 | 1 | 190 | 1 | 152
다음 예는 OID가 16401
인 데이터베이스의 각 DML 작업에 대한 평균 누적 대기 시간(누적 대기 시간을 카운트로 나눈 값)을 보여줍니다.
=>
SELECT select_count, select_latency_microsecs, select_latency_microsecs/NULLIF(select_count,0) select_latency_per_exec, insert_count, insert_latency_microsecs, insert_latency_microsecs/NULLIF(insert_count,0) insert_latency_per_exec, update_count, update_latency_microsecs, update_latency_microsecs/NULLIF(update_count,0) update_latency_per_exec, delete_count, delete_latency_microsecs, delete_latency_microsecs/NULLIF(delete_count,0) delete_latency_per_exec FROM aurora_stat_dml_activity(16401);
-[ RECORD 1 ]------------+------------- select_count | 451312 select_latency_microsecs | 80205857 select_latency_per_exec | 177 insert_count | 451001 insert_latency_microsecs | 123667646 insert_latency_per_exec | 274 update_count | 1353067 update_latency_microsecs | 200900695615 update_latency_per_exec | 148478 delete_count | 12 delete_latency_microsecs | 448 delete_latency_per_exec | 37