kagamihogeの日記

kagamihogeの日記です。

2013-05-01から1ヶ月間の記事一覧

インデックス範囲スキャンとフルテーブルスキャンの損益分岐点

損益分岐点というたとえが正確かどうかはわからないが。範囲検索がある一定以上になると、インデックスよりもフルスキャンのほうが速くなるポイントがある。というわけで、それはどのへんにあるのかをやってみる。やることとしては、連番の数値と文字列の2列…

Oracleで適当な件数のテストデータつくる

Oracle勉強していて何気に面倒なのが、テキトーな件数のレコードを持つテーブルを作ること。ので、いままでに自分の知ることが出来た範囲でやり方をメモしていく。 環境 Oracle Database Express Edition 11g Release 2をWindows上で動作 Oracle SQL Develop…

ORACLEハイパフォーマンスチューニングSQL編

2002年発行と今となって古い本であり、9iが一番新しいバージョンという想定で書かれているのでさすがに古さが否めない。RBOへの言及が多かったり、FREELISTSとか、hash_area_sizeとか、11gではメモリ管理なり記憶域管理なりだいぶ変わっているのでその辺は適…

整合性制約の有無によるUPDATEの速度差

整合性制約の有無によるINSERTの速度差 - kagamihogeのblogの続き。整合性制約の有無でUPDATEに速度差が生じるかを確認する。検証する制約は、主キー・チェック・外部キー。制約を付与してからUPDATEするのと、UPDATEしてから制約を付与するのとで、UPDATEの…

整合性制約の有無によるINSERTの速度差

(略)次のような場合は、パフォーマンス上の理由から、表の整合性制約を一時的に使用禁止にすることを検討してください。 ・表に大量のデータをロードする場合 ・表に大規模な変更を加えるバッチ操作を実行する場合(たとえば、既存の番号に1000を加えてすべ…

表の行順序とインデックス範囲スキャン

リレーショナルデータベースは論理レベルではテーブルの行順序は重要では無い。しかし、物理レベルではディスクなど順序が重要な意味を持つ媒体に格納されるのが現実である。このエントリでは、表の行の格納順序を昇順orランダムにし、それにインデックスを…