DBAtlas · データベース運用アトラス

パフォーマンスレポートを生成(AWR / ASH と同等の機能)

Oracle

-- AWR report (SQL*Plus):
@?/rdbms/admin/awrrpt.sql
-- ASH report: @?/rdbms/admin/ashrpt.sql
-- Live: SELECT * FROM v$active_session_history WHERE sample_time > SYSDATE-1/24;

AWR/ASH には Diagnostics Pack のライセンスが必要。Statspack はライセンス不要の同等機能。

PostgreSQL

-- pg_stat_statements summary + pg_profile/pgBadger:
SELECT queryid, calls, total_exec_time, mean_exec_time, query
FROM pg_stat_statements ORDER BY total_exec_time DESC LIMIT 20;

AWR 相当には pg_profile 拡張(定期スナップショット)または pgBadger のログ分析を使用する。

MySQL

-- sys schema summaries:
SELECT * FROM sys.statement_analysis LIMIT 20;
SELECT * FROM sys.io_global_by_file_by_bytes LIMIT 10;

sys スキーマは performance_schema を読みやすいレポートに変換する。Enterprise Monitor はより包括的。

SQL Server

-- Query Store reports (SSMS) or:
SELECT TOP 20 * FROM sys.query_store_runtime_stats ORDER BY avg_duration DESC;

Query Store は実行計画/パフォーマンスを時系列で保持する。sp_BlitzFirst(コミュニティ)は手早い診断を提供する。

MongoDB

# Live from the shell: mongostat --rowcount 10 ; mongotop
// or Atlas Performance Advisor / profiler:
db.system.profile.find().sort({millis:-1}).limit(20)

mongostat/mongotop は瞬間的な負荷を示し、プロファイラは遅い操作を記録する。

Redis

INFO stats
redis-cli --latency-history
SLOWLOG GET 20

--latency と --latency-history はレイテンシのプロファイルを示し、INFO はすべてのカウンタを示す。

Elasticsearch

GET _nodes/stats
GET _cat/thread_pool?v&h=node_name,name,active,queue,rejected
GET _nodes/hot_threads

hot_threads は最も高コストなスレッドを示し、_nodes/stats は全体的なメトリクスを提供する。監視(Kibana)は履歴ベース。

DBAtlas で開く →