aurora_stat_dml_activity - Amazon Aurora

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 작업 통계를 보여줍니다. 이 클러스터에는 postgresmydb라는 두 개의 데이터베이스가 있습니다. 쉼표로 구분된 목록은 select_count, select_latency_microsecs, insert_count, insert_latency_microsecs, update_count, update_latency_microsecs, delete_countdelete_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