こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

INDEX作成による更新系の影響範囲

環境:Oracle9i 9.2.0.1
言語:VB6
システム:受注管理システム
ある業務アプリの性能改善の為、顧客マスタにインデックスを作成したいのですが、更新系の処理が遅くなることを嫌ってなかなか承認が下りないです。
そんなに負荷はかからないと思うのですが、実際インデックスを1つ作成するとどの程度影響があるのか客観的に証明できないから困っています。
上記の業務アプリは毎日使用しています。
データ件数は100万件程度です。
参考までにインデックス作成前のINSERT文実行した実行計画とインデックス作成後のINSERT文実行した実行計画を記述します。

作成前
統計
----------------------------------------------------------
86 recursive calls
26 db block gets
14 consistent gets
29 physical reads
2956 redo size
628 bytes sent via SQL*Net to client
825 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
4 sorts (memory)
0 sorts (disk)
1 rows processed


実行後
統計
----------------------------------------------------------
281 recursive calls
27 db block gets
73 consistent gets
20 physical reads
3044 redo size
633 bytes sent via SQL*Net to client
825 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
7 sorts (memory)
0 sorts (disk)
1 rows processed


そんなに影響がないということを証明したいのですが、上記統計で大したことないと証明できますでしょうか?

投稿日時 - 2006-07-04 17:48:15

QNo.2255311

困ってます

質問者が選んだベストアンサー

索引に指定するキーの数や更新頻度にもよるでしょうが、1キーや2キー索引くらいでは SQL*Loader 等で大量のデータをロードしたりするような処理がない限り、たかが100万件程度で極端な性能劣化が起こるということはまずありません。

ただし、SELECT 時に作成した索引が効率的に使用されるかどうかも含めて、検証環境などで性能試験をされることを強くお勧めします。

statspack ユーティリティなどもインストールして、ディスク I/O 等にも注目してみてください。

投稿日時 - 2006-07-06 10:03:12

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

この実行計画の結果からではないのですが、
インデックスの作成前と作成後のSELECTとINSERTの
ベンチマークを実施(もちろんテスト環境で)して
INSERTでの時間差がそれほど無い事、SELECTを実行したときのパフォーマンスの改善したことを提示してみてはいかがでしょうか?

投稿日時 - 2006-07-04 22:34:40

あなたにオススメの質問