AWRレポートを CSV に変換する手順。CSV を EXCEL のピボットグラフなどを使って分析すると便利です。
$ git clone https://github.com/yasushiyy/awr2csv.git
- AWRレポートの存在するディレクトリに移動する。
$ cd awrrep
- AWRレポートを CSV に変換する。
$ python ../awrhtml2csv.py *.html
- 変換後のファイルを確認する。
$ ls -1 *.csv events_background.csv events_foreground.csv events_topn.csv inst_efficiency.csv load_profile.csv parameters.csv seg_logical.csv seg_phys_reads.csv seg_phys_writes.csv seg_unoptimized.csv sql_cpu.csv sql_elapsed.csv sql_executions.csv sql_gets.csv sql_parses.csv sql_reads.csv sql_unoptimized.csv sql_user_io.csv sql_version.csv time_model.csv
前提
- NLS_LANG は American_America.
で AWR レポートを出力する。
Tips
NLS_LANG が American_America... で出力されておらずAWRレポートの日付が "31-9月 -15" のようになっていて以下のエラーになる場合は、
$ python ../../awrhtml2csv.py *.html Processing awrrpt_1_41050_41051.html... Traceback (most recent call last): File "../../awrhtml2csv.py", line 135, in <module> output = parse(filelist) File "../../awrhtml2csv.py", line 97, in parse st = datetime.strptime(snap.text, '%d-%b-%y %H:%M:%S') UnicodeEncodeError: 'ascii' codec can't encode character u'\u6708' in position 4: ordinal not in range(128)
月を英字に変換する。
$ perl -i.org -pe 's/8月 /Aug/g;s/9月 /Sep/g' *.html
参考
追記(2017/09/29):
$ python ../../awrhtml2csv.py *.html xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 9192, column 13
とエラーになったので、調べたら、AWRレポートの末尾に「9317行が選択されました。」と入ってるのが原因だった。
End of Report </body></html> 9317行が選択されました。
$ perl -i.org -pe 's/.*行が選択されました。//g' *.html