本記事では、ODP上で指定したクライアントセッションの内部統計項目(SQLリクエスト応答数、SQLリクエスト応答サイズなど)を確認する方法について説明します。
手順
sysテナントとユーザーテナントはSHOW PROXYSESSION STATステートメントを使用して、ODPが指定したクライアントセッションの内部統計項目を確認します。
ODP接続方式でOceanBaseデータベースに接続します。
接続例:
obclient -h10.xx.xx.xx -uusername@obtenant#obdemo -P2883 -p****** -c -A oceanbaseODP接続方式でデータベースに接続する操作手順の詳細については、OBClientを使用してOceanBaseテナントに接続する(MySQLモード)およびOBClientを使用してOceanBaseテナントに接続する(Oracleモード)を参照してください。
ODPが指定したクライアントセッションの内部統計項目を確認します。
SHOW PROXYSESSION STAT id LIKE 'xx';パラメータ説明:
idはcs_idまたはconnection_idのいずれかで、表示結果は同じです。cs_idはODP内部で各クライアントに割り当てられたid番号であり、connection_idはOceanBaseデータベース全体で各クライアントに割り当てられたid番号です。MySQLモードの
connection_idはSELECT CONNECTION_ID();ステートメントで取得し、Oracleモードのconnection_idはSHOW FULL PROCESSLIST;ステートメントで取得します。LIKEはあいまい一致を示し、'%'と'_'をサポートします。
例:
MySQLモードOracleモードcs_idまたはconnection_idを取得します。以下のステートメントを実行して
cs_idを取得します。SHOW PROXYSESSION;次のような結果が返されます。結果の
Idがcs_idです。+----------------------+-------+----------+----------+------+----------------------+------+-------------+-------------------+-------------------+-------+-------+-----------+ | proxy_sessid | Id | Cluster | Tenant | User | Host | db | trans_count | svr_session_count | state | tid | pid | using_ssl | +----------------------+-------+----------+----------+------+----------------------+------+-------------+-------------------+-------------------+-------+-------+-----------+ | 12402504630519660562 | 11 | test420 | mysql001 | root | 100.xx.xx.xx:48056 | NULL | 0 | 1 | MCS_ACTIVE_READER | 76286 | 76286 | 0 | +----------------------+-------+----------+----------+------+----------------------+------+-------------+-------------------+-------------------+-------+-------+-----------+ 1 row in set以下のステートメントを実行して
connection_idを取得します。SELECT CONNECTION_ID();次のような結果が返されます。
+-----------------+ | CONNECTION_ID() | +-----------------+ | 3221597019 | +-----------------+ 1 row in set内部統計項目を確認します。
SHOW PROXYSESSION STAT 11 LIKE '%time%';または
SHOW PROXYSESSION STAT 3221597019 LIKE '%time%';結果は次のとおりです:
+-------------------------------------------+-------+ | stat_name | value | +-------------------------------------------+-------+ | total_transactions_time | 0 | | total_user_transactions_time | 0 | | total_client_request_read_time | 0 | | total_client_response_write_time | 0 | | total_client_request_analyze_time | 0 | | total_client_transaction_idle_time | 0 | | total_ok_packet_trim_time | 0 | | total_server_process_request_time | 0 | | total_server_response_read_time | 0 | | total_server_response_analyze_time | 0 | | total_send_saved_login_time | 0 | | total_send_all_session_vars_time | 0 | | total_send_use_database_time | 0 | | total_send_changed_session_vars_time | 0 | | total_send_changed_session_user_vars_time | 0 | | total_send_last_insert_id_time | 0 | | total_send_start_trans_time | 0 | | total_pl_lookup_time | 0 | | total_congestion_control_time | 0 | | total_server_connect_time | 0 | +-------------------------------------------+-------+ 20 rows in set
cs_idまたはconnection_idを取得します。以下のステートメントを実行して
cs_idを取得します。SHOW PROXYSESSION;次のような結果が返されます。結果の
Idがcs_idです。+----------------------+-------+----------+-----------+------+----------------------+------+-------------+-------------------+-------------------+-------+-------+-----------+ | proxy_sessid | Id | Cluster | Tenant | User | Host | db | trans_count | svr_session_count | state | tid | pid | using_ssl | +----------------------+-------+----------+-----------+------+----------------------+------+-------------+-------------------+-------------------+-------+-------+-----------+ | 12402504630519660558 | 65543 | test420 | oracle001 | sys | 100.xx.xx.xx:59648 | SYS | 0 | 1 | MCS_ACTIVE_READER | 76286 | 76286 | 0 | +----------------------+-------+----------+-----------+------+----------------------+------+-------------+-------------------+-------------------+-------+-------+-----------+ 1 row in set以下のステートメントを実行して
connection_idを取得します。SHOW FULL PROCESSLIST;次のような結果が返されます。結果の
idがconnection_idです。+------------+------+-----------+---------------------+------+---------+------+--------+-----------------------+---------------+------+ | ID | USER | TENANT | HOST | DB | COMMAND | TIME | STATE | INFO | IP | PORT | +------------+------+-----------+---------------------+------+---------+------+--------+-----------------------+---------------+------+ | 3221552558 | SYS | oracle001 | 172.xx.xx.xx:45343 | SYS | Query | 0 | ACTIVE | SHOW FULL PROCESSLIST | 172.xx.xx.64 | 2881 | +------------+------+-----------+---------------------+------+---------+------+--------+-----------------------+---------------+------+ 1 row in set内部統計項目を確認します。
SHOW PROXYSESSION STAT 65543 LIKE '%time%';または
SHOW PROXYSESSION STAT 3221552558 LIKE '%time%';結果は次のとおりです:
+-------------------------------------------+-------+ | stat_name | value | +-------------------------------------------+-------+ | total_transactions_time | 0 | | total_user_transactions_time | 0 | | total_client_request_read_time | 0 | | total_client_response_write_time | 0 | | total_client_request_analyze_time | 0 | | total_client_transaction_idle_time | 0 | | total_ok_packet_trim_time | 0 | | total_server_process_request_time | 0 | | total_server_response_read_time | 0 | | total_server_response_analyze_time | 0 | | total_send_saved_login_time | 0 | | total_send_all_session_vars_time | 0 | | total_send_use_database_time | 0 | | total_send_changed_session_vars_time | 0 | | total_send_changed_session_user_vars_time | 0 | | total_send_last_insert_id_time | 0 | | total_send_start_trans_time | 0 | | total_pl_lookup_time | 0 | | total_congestion_control_time | 0 | | total_server_connect_time | 0 | +-------------------------------------------+-------+ 20 rows in set
各フィールドの意味は以下の表のとおりです:
フィールド説明stat_name 内部統計項目の名前 value 内部統計項目の値 内部統計項目とその説明は以下のとおりです:
フィールド説明total_transaction_count トランザクション総数 total_user_transaction_count ODPユーザートランザクションの実行数 total_query_count ユーザーによるリクエストの実行数 total_client_request_reread_count ODPがユーザーリクエストを読み直した回数 total_server_response_reread_count ODPがOBServerノードから返されたデータを読み直した回数 client_request_total_size クライアントのリクエストデータサイズの合計 client_response_total_size クライアントの応答データサイズの合計 server_request_total_size OBServerノードに送信されたリクエストデータサイズの合計 server_response_total_size OBServerノードが返したデータサイズの合計 total_transactions_time トランザクション実行の合計時間 total_user_transactions_time ユーザーによるトランザクションの実行時間の合計 total_client_request_read_time クライアントリクエストの読み取りにかかった合計時間 total_client_response_write_time クライアントへのデータ返却にかかった合計時間 total_client_request_analyze_time クライアントメッセージの解析にかかった合計時間 total_client_transaction_idle_time ユーザートランザクション実行中のアイドル時間の合計 total_server_process_request_time データベースのリクエスト処理時間の合計 total_server_response_read_time OBServerノードからデータを読み取るのにかかった合計時間 total_server_response_analyze_time ODPがユーザーサーバーからのデータ返却を解析するのにかかった合計時間 total_send_saved_login_time OBServerノードに送信されたLOGINメッセージの合計時間 total_send_all_session_vars_time OBServerノードへのSession変数同期の合計時間 total_send_use_database_time OBServerノードへのuse databaseコマンド送信の合計時間 total_send_changed_session_vars_time OBServerノードへのSession変数変更の合計時間 total_send_last_insert_id_time OBServerノードへのlast_insert_id同期の合計時間 total_send_start_trans_time OBServerノードへのトランザクション同期開始総時間 total_pl_lookup_time ルーティング総時間 total_server_connect_time ODPとOBServerノード間の接続確立総時間 client_requests 総リクエスト数 client_large_requests 大規模リクエスト数 client_internal_requests 内部リクエスト数 local_session_state_requests ODP内部リクエスト数 client_missing_pk_requests 今回のリクエストでルーティング処理が不要で、前回のリクエストの接続を使用する必要があるリクエスト数 client_completed_requests 完了したリクエスト数 client_connection_abort_count 接続および中止統計 client_select_requests SELECTリクエスト総数client_insert_requests INSERTリクエスト総数client_update_requests UPDATEリクエスト総数client_delete_requests DELETEリクエスト総数client_other_requests その他リクエスト総数 request_size_100_count リクエストサイズが [0,100) の範囲の数 request_size_1K_count リクエストサイズが [100,1K) の範囲の数 request_size_3K_count リクエストサイズが [1K,3K) の範囲の数 request_size_5K_count リクエストサイズが [3K,5K) の範囲の数 request_size_10K_count リクエストサイズが [5K,10K) の範囲の数 request_size_1M_count リクエストサイズが [10K,1M) の範囲の数 request_size_inf_count リクエストサイズが [1M,+∞) の範囲の数 response_size_100_count レスポンスサイズが [0,100) の範囲の数 response_size_1K_count レスポンスサイズが [100,1K) の範囲の数 response_size_3K_count レスポンスサイズが [1K,3K) の範囲の数 response_size_5K_count レスポンスサイズが [3K,5K) の範囲の数 response_size_10K_count レスポンスサイズが [5K,10K) の範囲の数 response_size_1M_count レスポンスサイズが [10K,1M) の範囲の数 response_size_inf_count レスポンスサイズが [1M,+∞) の範囲の数 client_speed_bytes_per_sec_100 1秒間のリクエスト速度が [0,100) の範囲の数 client_speed_bytes_per_sec_1K 1秒間のリクエスト速度が [100,1K) の範囲の数 client_speed_bytes_per_sec_10K 1秒間のリクエスト速度が [1K,10K) の範囲の数 client_speed_bytes_per_sec_100K 1秒間のリクエスト速度が [10K,100K) の範囲の数 client_speed_bytes_per_sec_1M 1秒間のリクエスト速度が [100K,1M) の範囲の数 client_speed_bytes_per_sec_10M 1秒間のリクエスト速度が [1M,10M) の範囲の数 client_speed_bytes_per_sec_100M 1秒間のリクエスト速度が [10 M,+∞) の範囲の数 server_speed_bytes_per_sec_100 1秒間のレスポンス速度が [0,100) の範囲の数 server_speed_bytes_per_sec_1K 1秒間のレスポンス速度が [100,1K) の範囲の数 server_speed_bytes_per_sec_10K 1秒間のレスポンス速度が [1K,10K) の範囲の数 server_speed_bytes_per_sec_100K 1秒間のレスポンス速度が [10K,100K) の範囲の数 server_speed_bytes_per_sec_1M 1秒間のレスポンス速度が [100K,1M) の範囲の数 server_speed_bytes_per_sec_10M 1秒間のレスポンス速度が [1M,10M) の範囲の数 server_speed_bytes_per_sec_100M 1秒間のレスポンス速度が [10 M,+∞) の範囲の数 server_connect_count OBServerノードへの接続総回数 server_connect_retries OBServerノードへの接続リトライ総回数 server_pl_lookup_count ルーティング総回数 server_pl_lookup_retries ルーティングリトライ総回数 broken_server_connections OBServerノードとの接続切断総回数 server_requests OBServerノードへのリクエスト送信総回数 server_responses OBServerノードからの応答受信総回数 server_error_responses OBServerノードからのERROR応答受信総回数 server_resultset_responses OBServerノードからのresultset応答受信総回数 server_ok_responses OBServerノードからのOK応答受信総回数 server_other_responses OBServerノードからのその他の応答受信総回数 send_saved_login_requests OBServerノードへのLOGINメッセージ送信総回数 send_all_session_vars_requests OBServerノードへの全セッション変数同期送信総回数 send_use_database_requests OBServerノードへのuse database送信総回数 send_changed_session_vars_requests OBServerノードへの一部セッション変数送信総回数 send_last_insert_id_requests OBServerノードへのlast insert id送信総回数 send_start_trans_requests OBServerノードへのトランザクション開始送信総回数 vip_to_tenant_cache_hit パブリッククラウド上のVIP情報検索ヒット回数 vip_to_tenant_cache_miss パブリッククラウド上のVIP情報検索ミス回数