教えて!gooにおける不適切な投稿への対応について

件名の通りなのですが、作成したViewが遅くて困っています。
改善方法としてはViewを作成しないで従来のSQLにインデックスを張って取得する方法にしようかなと考えています。
なにかいい方法はありますか?

gooドクター

A 回答 (3件)

Viewの元テーブルに適切なIndexを貼る、ではいけないのですか?

この回答への補足

元テーブルにIndexを張ればViewも速くなるのですね。
ありがとうございます。確認してみます。

補足日時:2005/06/08 13:29
    • good
    • 1

すでに回答が出ていますが、Viewには


INDEXは張れません。

ViewでもINDEXを使用したい場合は、
元の表にINDEXを張ります。

従来のSQLとViewのスピードが同じくらい
であれば、効果があがると思います。

INDEXが有効に使われない場合は、HINT分なども
効果があります。

ただ、パフォーマンスの道は、奥が深いです。
SQL Traceを取得して、ボトルネックに
なっている部分を見つけると、効果的な
チューニングが出来ます。
    • good
    • 2
この回答へのお礼

そうですね。今では全体のインデックスの見直しが必要になっています。
なかなか有効にインデックスが使用されないのでヒントも多用しています。
実行計画を見ていろいろ試してみます。
ありがとうございました。

お礼日時:2005/06/16 13:56

Viewは所詮、複数のテーブル内の情報を結合表示する一種のエイリアスのようなものですので、実体であるテーブルのネックとなっている項目にインデックスを張ることが最善だと思います。

    • good
    • 0
この回答へのお礼

やはりそうですよね。
実体のテーブルの見直しを行います。
ありがとうございました。

お礼日時:2005/06/16 13:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング