SQLの疑問

オ○○ルとかだとSQLでヒント句ってのを書けばインデックスとか選択や順番をかなり細かく指定できる。現場では結構便利だし、使っているけど、ふと、疑問に思う。だって、ほかのRDBMS*1には、ヒント句なんてない。統計情報を取得して・・・後は、SQLの実行順序でチューニングするのよね、テーブル結合の数が増えるとエンジンが正しく判断できないからヒント句を入れるといわれると「そうなんだぁ」と思うんだけど、本来は別の方法で解決して、できなかったものにはヒント句をつけるのが本筋だと思う。
で、テーブル結合が多くてもヒント句を必要としない、エンジンが解釈しやすいSQLの記述法ってのをまず、身につける必要があるのではないか。例えば、外部結合の簡易表記がエンジンに負担になるのなら、結合数がいくつかを超えるなら、簡易表記をやめましょうとか、同列にせずに結合単位で副問い合わせにしましょうとか。データの性質に合わせて組む技を身につけてから、RDBMS固有のチューニング方法を使ってほしいと思う。

*1:本格的なRDBMSはPostgresSQLと商用を4種類知っているくらいだけど