
環境: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の使いわけについて
-
キャッシュを使わずにSELECTを...
-
WHERE句の実行順序
-
WHERE句はJOIN結合前結合後どち...
-
SQL ORDER BYにおける条件について
-
アナライズでほとんどの処理が...
-
Like文の速度について教えてく...
-
JOINの時のONとWHEREの違いにつ...
-
Accessのマクロでモジュールを...
-
Statement ignored というエラー
-
sqlplusでヘッダーが付かない
-
重複するIDのデータを1行にま...
-
Access VBAで行ラベルが定義さ...
-
ODBCリンクの際にACCESSでは読...
-
callで順に実行されるプロシー...
-
INSERT文の書式
-
エクセルVBAでUserFormを起動し...
-
カーソル定義での条件分岐
-
PL/SQLカーソルの2重FORループ...
-
SQLで部分的にGROUP BYしたいとき
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キャッシュを使わずにSELECTを...
-
WHERE句の実行順序
-
likeとsubstrの使いわけについて
-
Like文の速度について教えてく...
-
ヒント句が無効になります
-
WHERE句はJOIN結合前結合後どち...
-
INDEX作成による更新系の影響範囲
-
実行計画HASH JOIN RIGHT OUTER
-
あいまい検索のパフォーマンス...
-
Oracleでデータ取得処理を高速...
-
アナライズでほとんどの処理が...
-
SQL ORDER BYにおける条件について
-
oracleのanalyzeと処理時間につ...
-
PDCAを回すって?
-
Oracleで検索すると、フリーズ...
-
800万件のテーブル読み込み...
-
処理速度の改善について
-
OEMで負荷の少ないSQLの実行計...
-
oracle(SQL)のHINT指定について
-
ORACLEでwhere句の検索順序
おすすめ情報