表領域のパーティション分割時のINDEXについて質問があります。
下記の様な構成の時、グローバルINDEXとローカルINDEXはどの様に張るべきでしょうか。
今現在は、下記の<現状の構想>の通りにINDEXを作成しようかと考えています。
しかしながら、検索時に項目B&項目Cのwhere句で効率よく領域を選択(検索)できるのか悩んでいます。
機器の問題で実際に試す事ができず、悶々としています。
情報の不足がございましたら、ご指摘下しさい。
ご回答お待ちしています。
<前提>
・表Aへのアクセス:where 項目B = n and 項目C = m
・表Aのレコード数は8000万程度
<現状での構想>
・表Aの領域をパーティション分割(項目Bのハッシュ)
・グローバルINDEXは項目B&項目C
・ローカルINDEXはなし
No.1ベストアンサー
- 回答日時:
項目Bがパーティションキーなので、パーティションプルーニングによる絞込みが効きますね。
よって、項目Cのローカルインデックスが一番効率が良くなると思います。
B+Cのグローバルインデックスでも遜色ないアクセス速度が出ますが、インデックス長が大きくなる分データサイズがより大きくなって、キャッシュもより多く消費するのと、パーティション削除などのパーティションメンテナンスをする場合にグローバルインデックスだとインデックスリビルドが必要となるので、この場合、Cローカルが勝ります。
しかし、試せないというのはよろしくないですね。
本番環境以外は貧弱すぎてデータが入らない、などでしょうか?
Oracleはパフォーマンス面では理論やサポートの回答だけではなかなか判断がつかないことが多いため、かならず実践での裏づけを得て対処を選択すべきと考えています。
サーバに入れられないのであれば、開発用PCにエクスプレスエディションを入れるなりして、トレースをかけて実際のブロックアクセス数を確認したいですね。
ご回答およびデータサイズ・キャッシュに関するご指摘ありがとうございます。
確かにメンテナンスなどを考えると、ローカルインデックス:項目Cとした方が良さそうです。
>開発用PCにエクスプレスエディションを入れるなりして、
その手がありましたね。
頭からすっぽり抜けていました。
どこまで擬似環境が作成できるかわかりませんが、
ご回答のパターン等を擬似環境で実測してみます。
助かりました。
本当にありがとうござます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Excel(エクセル) エクセルでエラーを無視して一番左側のセルの値を返したい 2 2023/07/27 13:06
- ドライブ・ストレージ Win10を再インストールしたら、HDDの一部に未割り当て領域ができ何の操作もできません。 4 2023/05/19 05:31
- ドライブ・ストレージ HDDの未割り当て領域が認識されない 7 2022/11/27 18:51
- Visual Basic(VBA) RemoveDuplicatesメソッドについて教えてください。 シート1にシート2から値をもってく 1 2023/02/28 22:43
- その他(Microsoft Office) Excel 2列の値を返す数式についてです 1 2022/11/23 22:59
- Windows 10 ms imeのバーを通知領域に入れる方法(windows11) 4 2023/01/01 10:11
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- UNIX・Linux Linux(Fedora30)のブートディスクの交換について 2 2023/05/16 13:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Viewにインデックスは張れ...
-
SQL*Loaderで、データを加工し...
-
INDEXの無効化
-
論理読み込みブロック数とは?
-
SQL*LoaderとInsertの違いについて
-
オラクル クラサバ環境で動作...
-
【ANALYZE】 テーブル・インデ...
-
可変個数のデータはどう納める?
-
Oracle Databaseのインデックス...
-
Wordで複数の索引を作りたい
-
データを削除しても表領域の使...
-
CLOB型へのINSERT
-
異なるスキーマからデータを抽...
-
datapumpの実行方法について
-
ORA-00959: 表領域'****'は...
-
postgreSQLのint型は桁数指定が...
-
Access レコードを追加できませ...
-
count(1)とcount(*)の違い
-
エクセルからアクセスにインポ...
-
ACCESS 複数テーブル・複数フィ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Viewにインデックスは張れ...
-
INDEXの無効化
-
SQL*Loaderで、データを加工し...
-
アナライズとインデックス作成...
-
可変個数のデータはどう納める?
-
SQL*LoaderとInsertの違いについて
-
インデックス作成後アナライズ...
-
主キー以外の項目にNotNull制約...
-
文字列中のスペースを排除する...
-
テスト環境と本番環境で、DBか...
-
OracleTextの索引再構築について
-
データ表示順序
-
統計情報について
-
SQLの処理速度改善にむけて
-
論理読み込みブロック数とは?
-
Wordで複数の索引を作りたい
-
索引の再構築をすべき?
-
IN 句ではインデックスが使用さ...
-
該当データが存在しないときに...
-
PervasiveSQL (Btrieve) で、デ...
おすすめ情報