重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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

A 回答 (2件)

クエリアナライザの実行計画は確認しました?


その関数の中で使われてるSQLを段毒で実行するとどうです?
>のマスタ系テーブルの列データとコンペア
そこでテーブルスキャンが発生しているとすごいことになりますよね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/07/26 22:29

副問い合わせの中でユーザー定義関数を何度も呼び出ししてませんか?


検索の条件で利用するなら、条件判断そのものを見直しては?

この回答への補足

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

補足日時:2007/07/24 21:33
    • good
    • 0

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

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