ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
動的パフォーマンスビューとは
Oracle のインスタンスがメモリ上に持っている各種状態 (セッション、SQL キャッシュ、ロック、SGA 領域使用量など) を、SQL で リアルタイムに 参照できる仮想ビュー群です。SQL のセッションが続く限り常に最新値が返ります。
名前が V$ で始まることから、現場では 「V$ ビュー」「ブイドル ビュー」 と呼ばれます。
正体は X$ 表
本当に「ビュー」なのは表面上で、その下には X$ 表 (X ダラー表) と呼ばれる、SGA のメモリ構造を直接読むための内部表があります。X$ は SYS 以外には基本見えず、構造もパッチで変わるため、通常は V$ ビュー経由でアクセス します。
[ アプリ・DBA ]
│ SELECT * FROM v$session;
▼
[ V$SESSION (公開ビュー) ]
│
▼
[ GV$SESSION (RAC 全インスタンス版) ]
│
▼
[ X$KSUSE (内部 X$ 表 = SGA メモリへの窓) ]
GV$ は RAC (Real Application Clusters) で全インスタンスをまたいで参照したいときに使う「Global」版です。シングル構成では V$ と同じ結果が返ります。
代表的な V$ ビュー
| ビュー | 用途 | よく見る列 |
|---|---|---|
v$version | Oracle のバージョンとエディション | BANNER |
v$instance | インスタンス名 / 起動時刻 / 状態 | INSTANCE_NAME, STARTUP_TIME, STATUS |
v$database | DB 名、DBID、Log Mode | NAME, LOG_MODE, OPEN_MODE |
v$session | 現在接続中の全セッション | SID, SERIAL#, USERNAME, MACHINE, STATUS, EVENT |
v$process | サーバ側 OS プロセス | PID, SPID, PROGRAM |
v$sql | 共有プールに残っている個別の SQL 実行計画 | SQL_ID, SQL_TEXT, EXECUTIONS, ELAPSED_TIME |
v$sqlarea | SQL_ID 単位に集約した SQL | SQL_ID, EXECUTIONS, BUFFER_GETS |
v$sga / v$sgastat | SGA サイズ / プール別内訳 | NAME, BYTES |
v$lock | 現在の Enqueue ロック | SID, TYPE, ID1, ID2, LMODE, REQUEST |
v$bgprocess | バックグラウンドプロセス一覧 | NAME, PADDR, DESCRIPTION |
v$session_wait | 各セッションの待機イベント | SID, EVENT, WAIT_TIME |
v$active_session_history (ASH) | 過去 1 秒粒度のセッション活動 | SAMPLE_TIME, SQL_ID, EVENT |
使い方の例
バージョン確認
SELECT * FROM v$version;
-- BANNER
-- ----------------------------------------------------------------
-- Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
-- Version 19.20.0.0.0
誰がつないでいるか
SELECT sid, serial#, username, machine, program, status, event
FROM v$session
WHERE username IS NOT NULL -- バックグラウンドを除外
ORDER BY logon_time DESC;
重い SQL を特定
SELECT sql_id,
executions,
ROUND(elapsed_time/1e6, 2) AS sec_total,
ROUND(elapsed_time/NULLIF(executions,0)/1e3, 2) AS ms_per_exec,
SUBSTR(sql_text, 1, 80) AS sql_preview
FROM v$sqlarea
ORDER BY elapsed_time DESC
FETCH FIRST 20 ROWS ONLY;
ロック待ちの調査
SELECT blocker.sid AS blocker_sid,
blocker.username AS blocker_user,
waiter.sid AS waiter_sid,
waiter.username AS waiter_user,
waiter.sql_id AS waiter_sql_id
FROM v$lock l_waiter
JOIN v$lock l_blocker
ON l_blocker.id1 = l_waiter.id1
AND l_blocker.id2 = l_waiter.id2
AND l_blocker.lmode > 0
AND l_waiter.request > 0
JOIN v$session waiter ON waiter.sid = l_waiter.sid
JOIN v$session blocker ON blocker.sid = l_blocker.sid;
SGA の内訳
SELECT pool, name, ROUND(bytes/1024/1024, 1) AS mb
FROM v$sgastat
WHERE bytes > 50*1024*1024
ORDER BY bytes DESC;
AWR / ASH との関係
V$ ビューは 「今の値」だけ しか返しません。インスタンス再起動でリセットされ、過去の傾向は見られません。長期トレンドや過去事象の調査には次の系統を使い分けます。
| 系統 | 粒度 | 保持 | 必要ライセンス |
|---|---|---|---|
| V$ / GV$ | 現在のスナップショット | インスタンス起動中のみ | 標準で利用可 |
| V$ACTIVE_SESSION_HISTORY (ASH) | 1 秒粒度のセッション活動 | SGA 内、数十分〜数時間 | Diagnostics Pack |
| DBA_HIST_* (AWR) | スナップショット (既定 1 時間) | 既定 8 日 (拡張可) | Diagnostics Pack |
| STATSPACK | AWR と同様 | ユーザーが管理 | 無料 |
権限と注意
- 所有者は
SYS。一般ユーザーで参照するにはSELECT_CATALOG_ROLE付与か、対象ビューに個別の SELECT 権限 - ロックや待機を見るための代表的な権限は
SELECT_CATALOG_ROLE+SELECT ANY DICTIONARY - V$ は セッション全体に対するメモリ読み込み を伴うので、極端に大量に SELECT すると本番負荷になる
- 名前が変わることはほぼ無いが、列の追加/削除はマイナーバージョンで起こる — マニュアルを必ず確認
FAQ
Q: V$ と GV$ の違いは?
A: GV$ は RAC で全インスタンス分の行を返す版です。INST_ID 列が追加され、シングル構成では結果が V$ と同じになります。
Q: v$sql と v$sqlarea の違い?
A: v$sql は子カーソル単位 (バインド変数別の実行計画ごと) に行を返し、v$sqlarea は SQL_ID 単位で集約済みです。性能調査の最初は v$sqlarea から見るのが定番。
Q: AWR が無いライセンスでも過去傾向を見たい
A: STATSPACK を導入してください。AWR と同等のレポートが無料で利用できます。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- DDL
- DML
- トランザクション制御 (SQL)
- データディクショナリ
- 動的パフォーマンスビュー (V$ビュー)
- 関数
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?