aurora_stat_dml_activity - Amazon Aurora

aurora_stat_dml_activity

Aurora PostgreSQL クラスター内のデータベースに対する各タイプのデータ操作言語 (DML) オペレーションの累積アクティビティをレポートします。

[Syntax] (構文)

aurora_stat_dml_activity(database_oid)

引数

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 という 2 つのデータベースがあります。コンマ区切りのリストは、select_countselect_latency_microsecsinsert_countinsert_latency_microsecsupdate_countupdate_latency_microsecsdelete_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