fc2ブログ

2013年09月 の記事一覧

1行しかない列の多いパフォーマンスビューを見やすくする

たまにDB(Oracle)のv$databaseを見たりするが、動的パフォーマンスビューは大抵カラムが多すぎて横スクロールせざる負えなくなるのもしばしば・・・なので、行列を入れ替えたりしたら見やすくなるかと思いちょっとSQLを作ってみた。

ちなみに現在のDB環境
・oracle11gXE

以下のSQLを実行する

SQL>select
   column_name,
     extractvalue(
        xmltype(
           dbms_xmlgen.getxml('select ' || column_name || ' colname from v$database')), '/ROWSET/ROW/COLNAME') val -- ①
from
   dba_tab_columns
where
   table_name = 'V_$DATABASE'; -- ②


これだけ…getxmlで動的に作成したv$databaseのそれぞれのカラムの値を取得して行表示してるだけ…。
sqldeveloperで実行すると、。

20130905_01.jpg

こんな感じで少し見やすくなる。
注意点としては…、

(1) ①で指定するビューのデータは1行のみであること。(extractvalueは1ノードのみ取得可能)
(2) ②で動的パフォーマンスビューは接頭辞V_$で識別されてdba_tab_columnsに登録されているので、_(アンダースコア)をつける。

ビュー名(オレンジの部分)さえ変えればどのビュー(またはテーブル)でも行けるが、データが1行のみという制約があるので、使えるビューはきっとごく僅か…。

スポンサーサイト