①の「何を目的としてテストを行えば良いか」については観点は問題ないと思います。
実施方法としては、ヒープダンプを取る、という方法があります。
ヒープダンプの取得
SQL
1alter session set events 'immediate trace name heapdump level 2';
トレースファイルの場所
SQL
1SELECT VALUE FROM V$DIAG_INFO WHERE NAME = 'Diag Trace';
最新の.trcファイルを開き、HEAP DUMPで検索してください。そこからダンプの内容が始まります。
エクステント(EXTENT 0~?)の下にチャンク(Chunk)がぶら下がっていて、その横にステータスが書いてあると思います。チャンクの数が共有プールFLUSH後であれば少なくなっているのが分かると思います。
もしくは、単純にチャンクの数を数えるという方法でもよいかと思います。FLUSH後に少なくなっているのが分かると思います。
チャンクの数を数える
SQL
1select count(*) from x$ksmsp;
共有プールFLUSH後の影響はOrlofskyさんの回答の通り、ハードパースがどれぐらいかかるかというところを確認すればよいと思います。どの程度の影響が出るかは、ACTIVE_SESSION_HISTORY(通称ASH)のin_hard_parse列がYのセッションを確認すればよいです。サンプルSQLを提示します。
ASHから影響確認
SQL
1select
2 substr(t2.sql_text,1,100) toplevelsqltext,
3 t.SQL_FULLTEXT sqltext,
4 h.*
5from
6 v$sql t,
7 v$sql t2,
8 v$active_session_history h
9where
10 t.sql_id = h.sql_id
11 and h.top_level_sql_id = t2.sql_id
12 and h.sample_time between to_date('2017/11/21 10:00:00','YYYY/MM/DD Hh24:MI:SS') AND to_date('2017/11/21 15:59:59','YYYY/MM/DD Hh24:MI:SS')
13 and h.in_hard_parse = 'Y'
14order by
15 sample_time
16;
時間は、h.sample_time列で絞った方がいいです。また、h.module列にjavaのバッチであればJDBC等識字別できる文字が出力されるので、それで絞るとなおよいと思います。
1行につき1秒かかっているとみることができるので、sql_text単位で結果行数が多ければ多いほど影響があると捉えることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。