blob: 9ac4c06fdf6f32f1b706435acb6f9a9f8de9c009 [file] [log] [blame]
pt-snap-statements
==================
概要
----
2つの時刻のSQL文の統計情報の差分を計算して表示します。
オプションを指定することにより、特定の項目ごとにソートして表示することができます。
contribモジュールの ``pg_stat_statements`` が導入されている必要があります。
また、 ``track_io_timing`` オプションが有効にされている必要があります。
実行方法
--------
.. code-block:: none
pt-snap-statements [option...] [interval]
オプション
----------
.. code-block:: none
-h, --host=HOSTNAME
-p, --port=PORT
-U, --username=USERNAME
-d, --dbname=DBNAME
-s, --sort=KEY
-l
-t, --top=NUMBER
-R, --reset
--help
``-h``, ``--host`` オプションは、接続するPostgreSQLデータベースのサーバ名またはIPアドレスを指定します。オプションが指定されない場合は、PGHOST環境変数に設定された値が使われます。PGHOST環境変数が設定されていない場合には、デフォルトの値として ``localhost`` が使われます。
``-p``, ``--port`` オプションは、接続するPostgreSQLデータベースのポート番号を指定します。オプションが指定されない場合は、PGPORT環境変数に設定された値が使われます。PGPORT環境変数が設定されていない場合には、デフォルトの値として ``5432`` が使われます。
``-U``, ``--username`` オプションは、PostgreSQLデータベースに接続するユーザ名を指定します。オプションが指定されない場合は、PGUSER環境変数に設定された値が使われます。PGUSER環境変数が設定されていない場合には、USER環境変数に設定された値が使われます。
``-d``, ``--dbname`` オプションは、接続するデータベース名を指定します。オプションが指定されない場合は、PGDATABASE環境変数に設定された値が使われます。PGDATABASE環境変数が設定されていない場合には、データベースに接続するユーザ名と同じ名前のデータベースに接続します。
``-s`` オプションは、ソートする項目を指定します(未実装)。``KEY`` は、次のいずれかの値を取ることができます: ``CALLS``, ``T_TIME``, ``ROWS``, ``B_HIT``, ``B_READ``, ``B_DIRT``, ``B_WRTN``, ``R_TIME``, ``W_TIME``
``-l`` オプションは、ブロックの種別(共有バッファ、ローカルバッファ、一時バッファ)ごとに詳細な内訳を表示します(未実装)。``-l`` オプションを指定しない場合は、共有バッファ、ローカルバッファ、一時バッファの数値を合算した値が表示されます。
``-t``, ``--top`` オプションは、表示するクエリの数を指定します。指定しない場合はすべてのクエリが表示されます。
``-R``, ``--reset`` オプションは、``pg_stat_statements`` ビューの統計情報を初期化します。
出力項目
--------
.. csv-table::
``USER``, クエリを実行したユーザ名
``DBNAME``, クエリを実行したデータベース名
``QUERYID``, 実行されたクエリのクエリID16進数表記)
``QUERY``, 実行されたクエリ(最大30文字で切り詰め)
``CALLS``, クエリの実行回数
``T_TIME``, クエリの総実行時間(ミリ秒)
``ROWS``, クエリによって取得または影響を受けた行の総数
``B_HIT``, ブロック読み込みの際にバッファから読み込んだブロック総数
``B_READ``, ブロック読み込みの際にディスクから読み込んだブロック総数
``B_DIRT``, クエリによってページが更新されたページ総数
``B_WRTN``, クエリによってディスクに書き込まれたブロック総数
``R_TIME``, ディスクからのブロック読み込みにかかった総時間(ミリ秒) ``track_io_timing`` パラメータが有効になっている必要がある)
``W_TIME``, ディスクへのブロック書き込みにかかった総時間(ミリ秒) ``track_io_timing`` パラメータが有効になっている必要がある)
実行例
------
``postgres`` データベースに接続し、で5秒間に実行されたSQL文を総実行時間(``T_TIME``)の長い順にソートしてすべて表示します。
.. code-block:: none
$ pt-snap-statements -d postgres 5
+-------+----------+----------+--------------------------------+-------+--------+------+-------+--------+--------+--------+--------+--------+
| USER | DBNAME | QUERYID | QUERY | CALLS | T_TIME | ROWS | B_HIT | B_READ | B_DIRT | B_WRTN | R_TIME | W_TIME |
+-------+----------+----------+--------------------------------+-------+--------+------+-------+--------+--------+--------+--------+--------+
| snaga | postgres | 80053daf | UPDATE pgbench_branches SET bb | 677 | 12007 | 677 | 9160 | 1 | 1 | 0 | 0.0 | 0.0 |
| snaga | postgres | 1675159e | UPDATE pgbench_tellers SET tba | 681 | 7648 | 681 | 3403 | 0 | 0 | 0 | 0.0 | 0.0 |
| snaga | postgres | ec088219 | UPDATE pgbench_accounts SET ab | 684 | 530 | 684 | 2289 | 585 | 568 | 0 | 125.9 | 0.0 |
| snaga | postgres | 198383d | SELECT abalance FROM pgbench_a | 682 | 73 | 682 | 2080 | 0 | 0 | 0 | 0.0 | 0.0 |
| snaga | postgres | da8cc6f | INSERT INTO pgbench_history (t | 676 | 34 | 676 | 704 | 12 | 10 | 0 | 0.0 | 0.0 |
| snaga | postgres | d4e6bf94 | BEGIN; | 684 | 4 | 0 | 0 | 0 | 0 | 0 | 0.0 | 0.0 |
| snaga | postgres | a81672e | END; | 671 | 3 | 0 | 0 | 0 | 0 | 0 | 0.0 | 0.0 |
| snaga | postgres | 8caa574 | select count(*) from pgbench_b | 1 | 0 | 1 | 4 | 0 | 0 | 0 | 0.0 | 0.0 |
+-------+----------+----------+--------------------------------+-------+--------+------+-------+--------+--------+--------+--------+--------+
$
ホスト ``192.168.1.101`` のポート ``5433`` で稼働しているPostgreSQLサーバの データベース ``postgres`` にユーザ ``snaga`` で接続し、5秒間に実行されたSQL文を総実行時間(``T_TIME``)の長い順にソートしてトップ5件を表示します。
.. code-block:: none
$ pt-snap-statements --host 192.168.1.101 -p 5433 -U snaga -d postgres -t 5 5
+-------+----------+----------+--------------------------------+-------+--------+------+-------+--------+--------+--------+--------+--------+
| USER | DBNAME | QUERYID | QUERY | CALLS | T_TIME | ROWS | B_HIT | B_READ | B_DIRT | B_WRTN | R_TIME | W_TIME |
+-------+----------+----------+--------------------------------+-------+--------+------+-------+--------+--------+--------+--------+--------+
| snaga | postgres | 80053daf | UPDATE pgbench_branches SET bb | 503 | 9953 | 503 | 8430 | 14 | 7 | 0 | 0.6 | 0.0 |
| snaga | postgres | 1675159e | UPDATE pgbench_tellers SET tba | 508 | 6483 | 508 | 2551 | 10 | 9 | 0 | 0.3 | 0.0 |
| snaga | postgres | ec088219 | UPDATE pgbench_accounts SET ab | 511 | 560 | 511 | 1424 | 698 | 477 | 7 | 91.0 | 12.1 |
| snaga | postgres | 198383d | SELECT abalance FROM pgbench_a | 511 | 93 | 511 | 1550 | 0 | 0 | 0 | 0.0 | 0.0 |
| snaga | postgres | da8cc6f | INSERT INTO pgbench_history (t | 503 | 20 | 503 | 530 | 13 | 11 | 0 | 0.1 | 0.0 |
+-------+----------+----------+--------------------------------+-------+--------+------+-------+--------+--------+--------+--------+--------+
$