Gblog

おもにTips

STA ってDML かけても大丈夫だよね、の確認

こんな心配するのは自分だけかも。

準備。ロールバックしておく。

CREATE TABLE TEST1 AS SELECT * FROM V$PARAMETER;
update TEST1 /* xxx */ set NAME = 'hogehoge' where NAME = 'processes';
rollback;
select sql_id from v$sql where sql_text like 'update TEST1 /* xxx %';

 

ここで取得した SQL_ID をつかって STA かける。今回は、fyxpk1xuqvdzg

VARIABLE STMT_TASK VARCHAR2(64);
EXEC :STMT_TASK := DBMS_SQLTUNE.CREATE_TUNING_TASK(sql_id=>'fyxpk1xuqvdzg', time_limit=>300);
EXEC DBMS_SQLTUNE.EXECUTE_TUNING_TASK(:STMT_TASK);
SET LONGCHUNKSIZE 2000000 LONG 2000000 LINESIZE 300 PAGESIZE 1000;
COLUMN REPORT FORMAT A300
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK(:STMT_TASK) AS REPORT FROM DUAL;

 

気持ち、COMMIT;

COMMIT;

 

で、検索

SELECT * FROM TEST1 WHERE NAME = 'hogehoge' ;

 

いや、当たり前なんだけどね