• ベストアンサー

インデックスの領域について

インデックスの領域について教えてください。 オラクルDBを使用しているのですが、インデックスを作成した場合、何も指定しなければ、エクステントサイズ、エクステント数、はデフォルト値になると思うのですが、 追加の数や、最大数はテーブルの何を元に決定すればいいのでしょうか? テーブルの項目数などを元に決定すればいいのでしょうか? インデックスの領域についてあまり良く理解していないのが原因ではあるのですが ...勉強不足です。 インデックスの領域についても、お教え願えないでしょうか 宜しくお願い致します。

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

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

追加の数や最大数ってExtentのですか? テーブルと同じ考え方でいいのですが。 詳しい情報は http://otn.oracle.co.jp/ にいろいろあります。 領域管理についての資料を見てください。 http://otn.oracle.co.jp/idba/availability/techlisting.html ただし、ドキュメントを見るためにはOTNに入会する必要があります(無料です)。

参考URL:
http://otn.oracle.co.jp/,http://otn.oracle.co.jp/idba/availability/techlisting.html

その他の回答 (1)

  • vient
  • ベストアンサー率28% (2/7)
回答No.2

インデックスに使われている項目のサイズとカーディナリティーで決まります。項目のサイズは、一目瞭然なのですが、カーディナリティ-は実際にデータを分析把握していないと分かりません。

関連するQ&A

  • 表領域の使用量が知りたい。

    各テーブルごとのエクステント回数及び、表領域の使用量(最大値に対しての)が知る方法はありませんでしょうか。できれば一覧で見れるとよいです。

  • ORA-01630の対応方法について

    テーブル更新時にORA-01631(最大エクステント数に達した・・)というエラーがでました。 該当のテーブルに対して、データを削除しましたが (1)最大エクステント数の広げる方法 (2)エクステント数が最大に近づいているテーブルの調べ方 を教えて下さい。 よろしくお願いします の対応方法について

  • オラクルのテーブルの領域について

    色々と探してみたのですが、オラクルのDB全体の大きさとか未使用領域を見ることは解ったのですが、個々のテーブルの領域や未使用領域を見る手段があれば教えてください。データを格納している個別テーブルです。 よろしくお願いします。

  • DBに新しいTBLを作成した際に初期エクステントサイズ(いわゆるIni

    DBに新しいTBLを作成した際に初期エクステントサイズ(いわゆるInitial)を指定しますが、明示的にサイズを指定しない場合、自動的にサイズが付与されるのですが、Oracleは何を元にその値を決定しているのでしょうか??

  • テーブルの拡張

    オラクル8で、テーブルのエクステントが最大に達してしまいました。 そこで、拡張するにはどうすればよいですか? データをエクスポートで退避して、テーブルの拡張、インポートしないとできないですか? また、拡張のSQL文を教えていただけると助かりますが?

  • インデックスについて

    オラクルのインデックスについて教えてください。 ObjectBrowserというソフトでオラクルDBを管理しているのですが、 インデックスとCONSTRAINTというものの違いが良くわかりません。 現在ObjectBrowserで、インデックスを重複不可にすることで、そのテーブルの 主キーとしています。しかし、CONSTRAINTでPRIMARYKEYも設定できることに 最近気づきました。 ObjectBrowserに限らず、この違いについて教えてもらえないでしょうか? どのような時にインデックスを使い、CONSTRAINTのPRIMARYKEYはこのような時に 使用するという風にお教えていただければ幸いです。 何分、データベース初心者なもので... 宜しくお願い致します。

  • 表領域のパーティション分割時のINDEXについて

    表領域のパーティション分割時のINDEXについて質問があります。 下記の様な構成の時、グローバルINDEXとローカルINDEXはどの様に張るべきでしょうか。 今現在は、下記の<現状の構想>の通りにINDEXを作成しようかと考えています。 しかしながら、検索時に項目B&項目Cのwhere句で効率よく領域を選択(検索)できるのか悩んでいます。 機器の問題で実際に試す事ができず、悶々としています。 情報の不足がございましたら、ご指摘下しさい。 ご回答お待ちしています。 <前提> ・表Aへのアクセス:where 項目B = n and 項目C = m ・表Aのレコード数は8000万程度 <現状での構想> ・表Aの領域をパーティション分割(項目Bのハッシュ) ・グローバルINDEXは項目B&項目C ・ローカルINDEXはなし

  • countのスピード

    DBはMySQL/PostgreSQLがメインで、はじめてOracleを触っています。 現在、70万件のデータのあるテーブルを select count(*) from テーブル名 と SQL*Plusで実行してみたところ、結果がかえってくるまで 7秒近くかかってしまいました。 (*)が悪いのかな、と思って count(hoge) にしてみましたが、 大差がありません。。。。 テーブルは、number型の項目が10個、varchar型の項目が2個と それほど大きくはなく、そのうち5つのnumber型の項目に インデックスが貼られています。 count(hoge)で、hogeにインデックスの貼られている項目、貼られていない項目をそれぞれ試してみましたが、これも大差のない時間がかかっていました。このDBはもちろん、オラクルに接続しているのは私1人のみ、という状況です。 70万件というデータ数は決して多い数字ではないと思うのですけれど、オラクルだとこんなものなのでしょうか?オラクルは始めてで、びくびく触っていることもあって、何から手を付けていいのかもさっぱりです。どんな点を見直せばいいのか、教えてください(_ _)

  • エクステント数

    Oracle10gにて表領域Aを1GBで作りました。 そのあとにテーブルBを表領域AにStorageのInitialを10MB、 テーブルBを同じく表領域Aに30MBでつくりました。 そしてテーブルB,テーブルCにそれぞれ1MBほどのデータをいれました。 テーブルB,テーブルCのセグメントのエクステント数は1になるはずなの ですが、なぜかエクステント数が50とか30になってしまいます。 Storage句に大きめのInitialをCreate Table文でしていするだけでは Initialが1にならないのでしょうか?

  • Oracle8で表領域の現在のエクステント数を知る方法

    NT版Oracle8.0.5で表領域の現在のエクステント数を知る方法(SQL)を教えて下さい。