環境: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
そんなに影響がないということを証明したいのですが、上記統計で大したことないと証明できますでしょうか?
No.2ベストアンサー
- 回答日時:
索引に指定するキーの数や更新頻度にもよるでしょうが、1キーや2キー索引くらいでは SQL*Loader 等で大量のデータをロードしたりするような処理がない限り、たかが100万件程度で極端な性能劣化が起こるということはまずありません。
ただし、SELECT 時に作成した索引が効率的に使用されるかどうかも含めて、検証環境などで性能試験をされることを強くお勧めします。
statspack ユーティリティなどもインストールして、ディスク I/O 等にも注目してみてください。
No.1
- 回答日時:
この実行計画の結果からではないのですが、
インデックスの作成前と作成後のSELECTとINSERTの
ベンチマークを実施(もちろんテスト環境で)して
INSERTでの時間差がそれほど無い事、SELECTを実行したときのパフォーマンスの改善したことを提示してみてはいかがでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- その他(ブラウザ) python から COBOL を呼び出すことは可能でしょうか。 1 2023/04/21 21:03
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
likeとsubstrの使いわけについて
-
DATE型カラムのインデックスが...
-
SQL ORDER BYにおける条件について
-
キャッシュを使わずにSELECTを...
-
ヒント句が無効になります
-
あいまい検索のパフォーマンス...
-
【チューニング】インデックス...
-
外部結合と等価結合のパフォー...
-
WHERE句の実行順序
-
Like文の速度について教えてく...
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
Statement ignored というエラー
-
エクセルVBAでUserFormを起動し...
-
SQL*Loaderでのsysdate使用
-
今日の日付が入った行のデータ...
-
SQL*Plusの終了はquit?exit?
-
sqlplusでヘッダーが付かない
-
時間項目を60進数から10進数へ...
-
OSのシステム日付を変更して...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
likeとsubstrの使いわけについて
-
キャッシュを使わずにSELECTを...
-
WHERE句の実行順序
-
Like文の速度について教えてく...
-
WHERE句はJOIN結合前結合後どち...
-
ヒント句が無効になります
-
あいまい検索のパフォーマンス...
-
アナライズでほとんどの処理が...
-
問題解決のストーリーにて PDCA...
-
oracleのanalyzeと処理時間につ...
-
DATE型カラムのインデックスが...
-
JOINの時のONとWHEREの違いにつ...
-
SQL ORDER BYにおける条件について
-
【チューニング】インデックス...
-
INDEX作成による更新系の影響範囲
-
Analyzeとは?
-
Oracleで検索すると、フリーズ...
-
Selectの処理速度改善について
-
PDCAを回すって?
-
前方一致で索引(インデックス...
おすすめ情報