1

Oracle 用にかなり複雑な SQL を作成する場合、遅かれ早かれ、奇妙な実行ヒントを適用する必要があります。これは、Oracle が「最適な」実行計画自体を把握できないように見えるためです。

http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/hintsref.htm

これは確かに SQL 標準ではありません。しかし、それでも、これらの種類のヒントをサポートする RDBMS は他にあるのでしょうか? SQL に「埋め込まれた」ヒントを本当に意味しているのでしょうか? それらは構文的に似ていますか (つまり、SELECTキーワードと最初に選択された の間に配置されていCOLUMNますか)? さまざまな RDBMS のヒントを比較する一般的なドキュメント ページを知っていますか?

注: 主に次の RDBMS に興味があります: Postgres、MySQL、HSQLDB、H2、Derby、SQLite、DB2、Sybase、SQL Server

4

3 に答える 3

2

db2 では、どのようにではなく、何らかの方法で計画が修正されることを知っています。Oracle 11g には、クエリにヒントを追加する以外のオプションがあります。これらは SQLProfiles と SQLPlan Baselines で、どちらも非常に強力です。それどころか、コードにヒントを 1 つも追加していないパフォーマンス チューニング プロジェクトを終えたところです。

于 2011-03-10T18:46:59.800 に答える
1

Oprimizer ヒントを任意の SQL Server クエリに追加できます

PLAN 句を使用すると、Firebird のクエリに特定のプランを定義できます。

私の知る限り、標準もそれに近いものもありませんが、一般的に、多くの RDBM でこれを行うことができますが、すべてではありません。

于 2011-03-10T18:52:33.323 に答える
1

また、他の DB プラットフォームと何らかの比較を行う場合、Oracle のヒントはまったく拘束力がないことを思い出してください。つまり、オラクルが選択した場合、オラクルはあなたのヒントを自由に無視できるということです。

ヒントは役に立ちますが、少なくとも以前のバージョンの Oracle で古いオプティマイザを使用していたときとは比べ物になりません。当時のヒントは、現在よりもパフォーマンス チューニングの重要な要素でした。

于 2011-03-10T19:11:18.567 に答える