ホーム
>
リレーショナル・データベースの世界
>
「DBアタマアカデミー」サポートページ
このサイトは、『Web+DB Press』Vol.56 より連載されている「DBアタマアカデミー」のサポートサイトです。主に演習問題の解答を掲載しています。
疑問、間違いの指摘なども随時受け付けております。
メール
、
ゲストブック
、
ブログ
のいずれからでもどうぞ。
なお、Vol.55 まで行われていた連載「SQLアタマアカデミー」のサポートサイトは
こちら
です。名前が間違えやすいので気をつけてください。
2010年 4月(Vol.56):
第1回「記憶装置のトレードオフとバッファの考え方」
2010年 4月(Vol.56):第1回「記憶装置のトレードオフとバッファの考え方」
・初出は
『WEB+DB PRESS Vol.56』
。演習問題の解答を以下に示します。
Oracle 11g
REDOログバッファがREDOログに書き出されるタイミングは、以下の通り。
コミットした時
3秒ごと
REDOログバッファが3分の1になった時
DBWnがデータファイルに書込む直前
PostgreSQL 8.5
トランザクションログバッファがトランザクションログに書き出されるタイミングは、以下の通り。
コミットした時
0.2秒ごと(パラメータ wal_writer_delay で指定可能)
トランザクションログバッファが一杯になったとき
参考:
「PostgreSQL 8.4.3文書 18.5. ログ先行書き込み(WAL)」
MySQL 5.5(InnoDB)
ログバッファがトランザクションログに書き出されるタイミングは、以下の通り。
コミットした時(デフォルト)
ただし、パラメータ innodb_flush_log_at_trx_commit でタイミングを変更可能
0の場合:1秒ごと
1の場合:コミットした時(デフォルト)
2の場合:1秒ごと、かつ、コミットした時
参考:
「MySQL 5.5 Reference Manual 13.6.3. InnoDB Startup Options and System Variables」
SQL Server 2008
トランザクションログが書き出されるタイミングは以下の通り。
コミットした時
参考:
SQL Server 2008 オンライン ブック (2009 年 7 月) 先行書き込みトランザクションログ
DB2 V9.1
コミットした時
ログ・バッファーが一杯になったとき
参考:
DB2 V9.1 運用管理ガイド:ロギング
演習問題の解答は以上です。基本的にどの DBMS もコミット時には、データ整合性を保つためディスク上のファイルへ書き出しを行うことが原則です(本文でも述べたように、PostgreSQL の非同期コミットのような例外もありますが)。
ちなみに、本文で引用した経済学者マンキューの言葉は、
『マンキュー入門経済学』
から。全然データベースとは関係ない経済学の教科書ですが、エンジニアが読んでもプロジェクト・マネジメントのために有益な本です。特に、今回取り上げたトレードオフの概念は、マネジメントのベースになるものなので、是非理解してください。
作成者:ミック
作成日:2010/04/25
最終更新日:2010/04/25
この作品は、
クリエイティブ・コモンズ・ライセンス
の下でライセンスされています。
戻る