aurora_stat_dml_activity
Aurora PostgreSQL クラスター内のデータベースに対する各タイプのデータ操作言語 (DML) オペレーションの累積アクティビティをレポートします。
構文
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_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