No.3ベストアンサー
- 回答日時:
Extentが増えると、データが断片化されるため、当然、スピードは低下します。
検索スピードを上げる方法としては、大きく次のようになります。
索引のチューニング
SQL文のチューニング
ディスクI/Oのチューニング
メモリーのチューニング
OSのチューニング
となります。(上に行くほど効果が大きい)
基本は、索引とSQL文のチューニングになりますが、3番目のディスクI/OのチューニングがExtentの問題になります。
特に、全件検索が多く(索引を使えない検索)削除などが多い場合に有効になります。その場合は、基本的には、テーブルの再作成(テンポラリテーブルを使ってする方法)があります。
私も、削除が非常に多いテーブルに対し、これを行うことで10倍ぐらいのパフォーマンスを得ることができました。
No.2
- 回答日時:
バージョン8以上のことは分からないのですが、一番始め
に考えるのは、やはりインデックスをはることでしょう。
うまくやれば、検索時間を数分の1から数十分の1に縮め
ることができます。
RDBに精通した人がやるのが望ましいのですが、原始的
(?)には、速くしたいSQL文のWHERE句にでてくる項目
を、上から順にインデックスのCREATE文に書いてしまえ
ばいいでしょう。
あまり多くの項目にインデックスの項目をはると、insert
文が遅くなるかもしれませんが、その時はあまり値の変化
しない項目(例えば「性別」のような)をインデックスか
ら外していけばいいと思います。
インデックスの効果があまりないような場合は、専門家に
依頼するのが一番でしょう。
副問い合わせを使いたくなるような複雑な検索では、SQL
文の巧拙によっても検索時間がまったく変わりますが、
書き直すと再テストが必要になってしまいますので、これ
は質問の範囲外でしょうね。
No.1
- 回答日時:
一般的な傾向として、レコード数が増加すればする程、検索のレスポンスは
悪化する傾向があります。これはExtentが増加しないように大きめの
テーブルスペースを確保していても発生する現象です。
Oracleのバージョンが書かれていないので、Oracle8以上を前提にコメント
しますが、データ量が非常に大きいテーブルをアクセスする場合、データを
複数のテーブルスペースに分割して格納する方法(パーティションテーブル)
が一番効果があります。
もちろん、それ以前に最適なインデックスを作成するなどの一般的なチュー
ニングも必要です。
Oracleのチューニングのスキルがある人がOracleのログを解析すれば、
どういうチューニングが効果的かはだいたい判別できます。
ご自分でスキルが足りなければ、Oracleに精通したSI会社にチューニング
の部分を外注することをオススメします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ブラウザ) スマホのブラウザを選択する時に何を基準に選びますか? 検索スピードか?音声検索の有無か?等。 5 2022/08/02 16:14
- Access(アクセス) AccessVBAで任意の複数リンクテーブルをAccessVBAを動かす際に削除したいと考えておりま 1 2022/11/17 15:45
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
- その他(SNS・コミュニケーションサービス) Yahoo!とGoogle検索のしくみの違いを教えてください 2 2022/08/14 01:53
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Google Maps iPhoneのGoogle検索窓を通常の大きさに 戻す方法を教えて頂けませんか?(切実) 日本全国の 2 2022/10/02 02:08
- Excel(エクセル) SUMIF関数で検索列のトリミングについて 4 2023/04/13 16:40
- Visual Basic(VBA) VBA チェックボックスの設定について 1 2022/10/24 10:27
- Excel(エクセル) セルの値をグーグルで検索するエクセルVBAについて! 2 2022/08/01 21:41
- その他(インターネット接続・インフラ) 電話番号についてわかる方 1 2022/05/30 20:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[ BETWEEN ] vs [ >= AND <= ]
-
インデックスの再構築の意味っ...
-
主キーにインデックスは貼らな...
-
【SQLServer】IS NULLのパフォ...
-
mysql IN句に1データだけ指定...
-
インデックスがすぐに壊れます…
-
キーワード検索の方法
-
サーバ負荷を抑える大量データ...
-
indexの使用頻度を調べる方法
-
MySQLとSQLServerの性能の違い...
-
インデックスが無効になっている
-
「マスタ」と「テーブル」の違...
-
ACCESSのSQLで、NULLかNULLでな...
-
2つのテーブルから条件に一致...
-
3つ以上のテーブルをUNIONする...
-
重複するキーから一番古い年月...
-
ACCESS 一番最新の日付の金額...
-
ACCESS2007 フォーム 「バリア...
-
Access VBA Me.Requery レコー...
-
accessテーブル作成クエリを実...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[ BETWEEN ] vs [ >= AND <= ]
-
主キーにインデックスは貼らな...
-
【SQLServer】IS NULLのパフォ...
-
インデックスの再構築の意味っ...
-
mysql IN句に1データだけ指定...
-
ビューにインデックスを設定で...
-
年と月が別カラムの場合のSQL
-
サーバ負荷を抑える大量データ...
-
outlook2007 検索できないんです
-
コクヨ タイトルブレーンでイ...
-
ホームページがGOOGLEにインデ...
-
画像の赤丸で囲っている、角丸...
-
MS-DOS時代のデーターベ...
-
Google検索はなぜ早い?
-
複数のDBでjoinする場合のindex...
-
テキスト項目255ケタのメリット...
-
数学でunprimedとは何を意味し...
-
『ラミネートインデックスシー...
-
SQLiteで... like を早くする
-
SQL関数とレスポンスについて
おすすめ情報