• 締切済み

SQL Server 2000 クエリ応答時間の削減方法について

SQL server 2000を使用しています。クエリアナライザから、あるユーザ定義関数を使用すると、処理時間が不必要にかかってしまっているので、なんとか処理速度を向上させたいのですが、解決方法が見出せません。ユーザ定義関数のロジックは最適なもので間違いは無い事を大前提として、処理速度を向上させたい場合の調査方法、および解決方法等をご教示頂ければ幸いです。どんな些細な事でも結構ですので、ご回答お願い致します。

みんなの回答

回答No.2

クエリアナライザの実行計画は確認しました? その関数の中で使われてるSQLを段毒で実行するとどうです? >のマスタ系テーブルの列データとコンペア そこでテーブルスキャンが発生しているとすごいことになりますよね。

jkoume6
質問者

お礼

クエリアナライザから関数のロジックをそのまま実行すると、 関数を使用する時よりも処理速度が速かったです。。 インデックスを貼っているので、テーブルスキャンは発生していない と思いますが、念の為、確認しておきます。 ご丁寧にご回答いただき、ありがとうございました!

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

副問い合わせの中でユーザー定義関数を何度も呼び出ししてませんか? 検索の条件で利用するなら、条件判断そのものを見直しては?

jkoume6
質問者

補足

ご回答いただき、ありがとうございます。 ご指摘いただいた通り、たしかにユーザ定義関数の中でさらに別のユーザ定義関数を呼び出していますが、一回だけです。内容としては、あるテーブルの列データを引数として、別のマスタ系テーブルの列データとコンペアして、判定結果を返すだけの関数です。そこまで複雑なロジックではないので、個人的にはロジックの見直しはこれ以上できないと勝手に思って困っています。。

関連するQ&A