ORACLEデータベースの中で最も高速なものは何ですか?SQLクエリを最適化する:関数を呼び出すか、結合を行うか?
コール簡単な関数で、各行
SELECT field1, field2, F_GET_LIBELLE_STATUT(field2) FROM table1 WHERE ...
のための単一の値をretriveするselect文の内部機能:
create or replace
FUNCTION "F_GET_LIBELLE_STATUT" (v_statut NUMBER) RETURN VARCHAR2 IS
tmpVar VARCHAR2(40);
BEGIN
select libelle into tmpVar from t_statut_ope where id_statut = v_statut;
RETURN tmpVar;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN '';
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END f_get_libelle_statut;
またはSELECT文の参加をしていますか?
selectと節の条件でたくさんの関数(10個以上)を呼び出すと同じ答えですか?
ご回答ありがとうございます。
を平野が参加をアウトパフォームしますそれはそれがいつも意味するものではありません。常にソリューションの実行計画を見て、そこからあなたの結論を引き出すべきです。 –
@Lieven - 私は、それぞれの場合をそのメリットで扱う必要性に同意します。しかし、ジョインは、ここに掲示された種類のルックアップ機能よりも常に速くなります。それは公理です。 – APC
@APC - 私は同意する傾向がありますが、私は常に*や*決して*のような絶対的なステートメントについては注意しています。 –