
No.4ベストアンサー
- 回答日時:
10gのマニュアルを確認すると、DBMS_STATSパッケージの解説に次のような一句があります。
「このパッケージのほとんどのプロシージャは、現行のトランザクションをコミットし、操作を実行してから再度コミットします。 」
というわけで、統計情報収集のロールバックはできないようですね。
No.5
- 回答日時:
質問からの先読みとなりますが、
統計収集パッケージを実行するとコミットされてしまうようなので不可、
となりますと、動的サンプリングを使うと良いかもしれません。
動的サンプリングとは、SQLを実行する瞬間に表の統計情報を取得するやり方で、SQLのヒント句もしくは、DBの、OPTIMIZER_DYNAMIC_SAMPLINGパラメータで動作を制御できます。
具体的には、
大量データ挿入⇒挿入したデータを基にファイル作成(動的サンプリングヒント句つき)
で対処できるのではないかと思います。
詳しい使用方法は、Oracleパフォーマンスチューニングガイドや、各種Oracle系情報サイトなどで調べてみてください。
<10gドキュメントのリンク>
http://otndnld.oracle.co.jp/document/products/or …
No.3
- 回答日時:
試してみました。
(1)セッション1でempをアップデート
(2)セッション2でempをSelect
※commit前のデータを参照。
(3)セッション1でempをアナライズ
(4)セッション1でempをSelect
※Updateしたデータを参照。
(5)セッション2でempをSelect
※Updateしたデータを参照。
(6)セッション1でRollback
(7)セッション1でempをSelect
※Updateしたデータを参照。
(8)セッション2でempをSelect
※Updateしたデータを参照。
どうやら暗黙Commitがかかっているようです。
DDLを投げると暗黙Commitが流れるのは当たり前のことですが、よく考えてみるとAnalyzeもDDL扱いなので動きとしては納得できます。
No.2
- 回答日時:
トランザクションを開始した時点で、そのトランザクション独自の
世界ができると思ってください。そこで挿入、更新、削除するのは
自由です。INSERT直後にデータを読み込むことも出来ますし、更新も
反映されています。但し、その世界ではの話です。
この時、外の(別の)世界の住人から見ると、DBは全く更新されて
いません。トランザクションをコミットすると、独自の世界の話が
実DBに反映され、外の世界からも同じ情報が見えるようになります。
ロールバックは独自世界の各種更新を無かったことにします。
もし、独自世界の統計では意味が無いというのであれば、コミット後に
統計を取るように手順を変更します。
この回答への補足
何度もご回答ありがとうございます。
質問の主旨が伝わっていないようなので、再度補足させていただきます。
説明不足で申し訳ありません。
大量データ挿入⇒統計情報の取得⇒挿入したデータを基にファイル作成
の、ファイル作成(同一トランザクション内)に失敗した場合、ロールバック処理が動くようになっています。
ログを見てみるとロールバックをされているようなのですが、
データが確定されてしまっています。
統計情報の取得をしてしまうと、同一トランザクション内でもロールバックは出来ないのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- その他(開発・運用・管理) おんどとりWebStorage APIから温度情報を取得し表示したい 2 2023/08/03 09:53
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- 電気工事士 来月から電気管理技術者のお仕事を始める者です。東京電力パワーグリッドへ情報提供の依頼をする方法がTE 1 2022/06/27 06:48
- 統計学 アンケート調査のデータ比較をする際の統計分析方法の選択に迷っています 5 2022/04/15 01:05
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
- その他(職業・資格) 【資格】あらゆる資格(国家資格・民間資格)の強さの格付けランキングを作ってみました! 4 2023/02/11 16:56
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DELETE文でFROM句を省略した場合
-
RDBのテーブル種類の違い
-
ActiveX DLLでのオラクルのトラ...
-
同じSELECT文同士でのデ...
-
accessでイベントを中止するよ...
-
PL/SQLの平行処理について
-
年度毎にシーケンスの初期化?
-
行ロックされているROWID
-
oracle sequence
-
[性能改善]AccessのDBに大量の...
-
統計情報の取得=コミットですか?
-
他の処理でselectさせないよう...
-
条件分の際のnullデータの扱い...
-
同一レコード更新時の排他制御
-
データを削除しても表領域の使...
-
ORA-00959: 表領域'****'は...
-
異なるスキーマからデータを抽...
-
Viewにインデックスは張れ...
-
Data Pump で大量データインポ...
-
viewのバックアップ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DELETE文でFROM句を省略した場合
-
他の処理でselectさせないよう...
-
object browser で処理を中断す...
-
RDBのテーブル種類の違い
-
同じSELECT文同士でのデ...
-
PL/SQLの平行処理について
-
年度毎にシーケンスの初期化?
-
[性能改善]AccessのDBに大量の...
-
accessでイベントを中止するよ...
-
C#でトランザクション開始後参...
-
処理速度の見積もり時間について。
-
Oracleから見たOracleの優位性(...
-
チューニング対象のSQLの見つけ...
-
カーソルについて
-
統計情報の取得=コミットですか?
-
Access2013で操作ログを残した...
-
ロングトランザクションについて
-
処理が終わったり終わらなかっ...
-
同一レコード更新時の排他制御
-
トランザクションのデータ件数...
おすすめ情報