- 締切済み
commit処理及び多重化処理について
はじめて、質問させて頂きます。 現在、初のOracle構築に携わっております。 OTN等で調べても中々わからず、皆様のご助力頂ければと思い投稿させて頂きました。 環境: Oracle 11.2.0.3 RHEL5.5 64bit Oracle_base=/opt/app/oracle single環境 環境はこれで足りるか不明ですが、足りなければ返信にて確認させて頂きます。 現在、負荷テストを行う為、Oracle側でshutdown immediateを実行した際に ロールバック処理が流れると思いますが、そこで5分以上の待機を出させたい状況です。 データファイル等をloop処理でサイズ1M単位の物を数万個作れば、ロールバック処理に 時間をかけられると思っておりますが、単体でデータファイルを作成するのならば コマンドが分かるのですが、loopっ処理等で複数のデータファイルを作成する方法が不明です。 もしよろしければ、ご教授頂けますでしょうか。。 単体作成コマンドとしては、以下で作成しております。 CREATE TABLESPACE ????? DATAFILE 'Locate' SIZE 1m ;
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Siegrune
- ベストアンサー率35% (316/895)
ANo.2です。 >PL/SQLでLoop処理に組み込んで、スクリプト実行させたい場合 ちょうどいいサンプルがOTNにあったので。 http://otn.oracle.co.jp/sample_code/db_connect/pl_sql/pl_sql1.txt サンプルは10回繰り返していますが、 FOR i IN 1..10 LOOP を FOR i IN 1..1000 LOOP にしたら1000回繰り返すことになります。
- Siegrune
- ベストアンサー率35% (316/895)
>データファイル等をloop処理でサイズ1M単位の物を数万個作れば、ロールバック処理に >時間をかけられると思っておりますが CREATE TABLESPACE ????? DATAFILE 'Locate' SIZE 1m ; はDDLです。 http://docs.oracle.com/cd/E16338_01/appdev.112/b56265/tdddg_objects.htm#CIHGAJDJ より。 --- Oracle Database は、DDL文の前後に暗黙的COMMIT文を発行します。このため、DDL文をロールバックすることはできません。 --- できるデータベースソフトがないわけではないですが、Oracleではロールバックは処理中にabortした文しか対象になりません。 やりたいことから考えると sqlplusを多数起動して、それぞれで insert やUpdate、deleteを大量にして、commitせずに置いておき、shutdown immediateするしかないのでは? insert into tableA(A1,A2,A3) values(1,'1','A'); insert into tableA select A1 + (select max(A1) from tableA),A2,A3 from tableA; insert into tableA select A1 + (select max(A1) from tableA),A2,A3 from tableA; insert into tableA select A1 + (select max(A1) from tableA),A2,A3 from tableA; ・・・ 37行ならべたら、10のうしろに0が10個程ついた件数のデータをINSERTできます。 (PL/SQL使ってloop処理したほうがスマートだけど。) ・・・実際に37行ならべたら、しばらく返ってこないかもしれませんので行数は考えて設定してください。
- aenvgielle
- ベストアンサー率14% (128/893)
CREATE TABLESPACE ってロールバックされるんでしたっけ?
補足
コメント有難うございます。 されないんでしょうか。。。?申し訳ありません、資料読んでみます ロールバック処理が走るような方法はありませんでしょうか。。。
補足
コメント有難うございます。 DDL分は暗黙的にcommitされるんですね;;有難うございます。 insertについては、とあるTableni対し、データをcol毎に挿入させるという感じでしょうか。。 検証させて頂きます。 追加で申し訳ないのですが、PL/SQLでLoop処理に組み込んで、スクリプト実行させたい場合 スクリプトの記述形式はどのようになりますでしょうか。。。 自分でも確認させて頂きますが、ご指南頂ければ幸いです。