No.5ベストアンサー
- 回答日時:
>実際にA*100が書き込まれるのは
>end
>したときなのか
>write
>したときなのか
書き込むタイミングは、RDBによって変わります。
通常は、書き込むタイミングは問題になりません。
いつの時点を持って、確定されるかが大事だと思いますよ。
例えば、物理的にディスクの更新が未処理でも、コミット済みの更新は、
他のトランザクションに更新後の状態が参照可能なRDBがあります。
逆に、物理的にディスクを更新済みでも、コミットしていない場合は、
他のトランザクションには、更新前のデータを見せる仕組みのRDBが
あります。これは、最終的にコミットしなければ、RDB自身がロールバックを
保証する仕組みになります。
ユーザから見ると、物理更新のタイミングは、実装上の問題であって、
トランザクション処理とは、直接関係のない話です。
(実際は処理効率等に大きく影響するので、どうでも良い話ではないけど..)
No.4
- 回答日時:
DBMSが書かれていないので、私の知っているDBMSの処理方式で回答します。
更新命令が実行された場合、I/Oバッファ上でのみ更新されます。この更新が媒体に反映されるのは、同期点設定時かI/Oバッファに空きがなくなった時点です。
更新のためにI/Oバッファに上がっているブロックは、排他制御により他のトランザクションからは矛盾が起こる更新はできないようになっています。
No.3
- 回答日時:
トランザクションという考え方をする限りは、いつ書き込まれるかということは「分からない/決まっていない」のが正解だとおもいますよ。
「コミットしたら、それ以降は他のトランザクションに、更新したデータが見えるようになる」それだけです。
あるテーブルにあるデータが入っているように見えることと、そこに本当にデータがあることはイコールではありません。
一応、最もありそうな状況としては、
「writeの時点で書き込むが、未コミットというフラグを立てておく。
endの時点で、未コミットフラグを消す。
」というのが想像されます。
No.2
- 回答日時:
>実際にA*100が書き込まれるのは
実際にだとコミットした時にだと思いますけど。
何のデータベースか不明ですが・・
SQLServerの場合だとモードによります
自動コミットではwrite時にレコードの挿入が確定されます。ループ処理でもあればループ内の処理がその都度行われます。ロールバックはできません。
COMMIT TRANSACTIONで確定するタイミングを明示的に指定できるモード
ではコミットされるまで実際には書き込まれません。なのでロールバックすれば取消できる。
No.1
- 回答日時:
DBがなにか分かりませんが、トランザクション命令が
Bigin~EndならEndで反映されます。
ちなみに自トランザクション内ならまだコミットされて
いなくても参照できるDBもあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- WordPress(ワードプレス) 投稿した文書の編集ができません。 1 2022/04/23 23:15
- その他(プログラミング・Web制作) .htaccessファイルの修正がこれで問題ないかどうか 1 2022/04/21 08:42
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) こんにちは。ExcelVBA初心者につき困っています。Functionで始まっている処理の中で、処理 1 2022/06/18 21:40
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- WordPress(ワードプレス) httpからhttpsへのリダイレクト設定について 2 2022/04/17 09:49
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【DB】同じトランザクション内...
-
postgresql についてです
-
TPSとは・・・
-
Accessdでの「トランザクション...
-
一つのトランザクションでSELEC...
-
OracleのROWIDについて…
-
【データベースとファイル操作...
-
SAPのSPROって何の略ですか?
-
SQL Server 2005トランザクショ...
-
オラクルのロールバックセグメ...
-
警察はスマホに保存した動画や...
-
復旧中のデータベースについて
-
PCが悪くなって新しいPCにSSMS...
-
DATファイルをEXCELで開きたい
-
ACCESSのデータをWebブラウザで...
-
ログファイルの圧縮がされずに...
-
accessの処理が遅い
-
ACCESS2003での150人同時利用
-
マスタメンテとは?
-
ACOSのRDBについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【DB】同じトランザクション内...
-
postgresql についてです
-
TPSとは・・・
-
Accessdでの「トランザクション...
-
一つのトランザクションでSELEC...
-
dbFailOnError とは?
-
SAPのSPROって何の略ですか?
-
SQL Server 2005トランザクショ...
-
jmeterについて、教えてください。
-
汎用系システムのDBについて
-
ADO Connection を再利用する方法
-
OracleのROWIDについて…
-
PostgreSQLのクラスタ運用について
-
ロールフォワードとロールバッ...
-
こんなのがでたんですが…
-
SQL排他問題
-
PHP-オラクルでのトランザクション
-
INSERT分の処理速度がトランザ...
-
MySQLとPostgleSQL、ど...
-
DBMSのロールフォワードについて
おすすめ情報