SQL文の書き方による性能の違いについて
- 以下の2種類のSQL文のうち、どちらの性能がよいですか?
[SQL文1]
SELECT.....
FROM TBL_A,TBL_B
WHERE TBL_A.基準日 = TBL_B.基準日
AND TBL_A.店番 = TBL_B.店番
AND TBL_A.取引先番号 = TBL_B.取引先番号
AND TBL_A.基準日 = 19990930
AND TBL_B.基準日 = 19990930
[SQL文2]
SELECT.....
FROM TBL_A,TBL_B
WHERE TBL_A.基準日 = TBL_B.基準日
AND TBL_A.店番 = TBL_B.店番
AND TBL_A.取引先番号 = TBL_B.取引先番号
AND TBL_A.基準日 = 19990930 - 「SQL文1」と「SQL文2」は、同じ性能となります。
なぜなら、Symfowareでは、抽出条件(TBL_A.基準日=19990930)と結合条件(TBL_A.基準日=TBL_B.基準日)を使って、TBL_Bの検索範囲を狭めているからです。すなわち、「SQL文2」は、まるでTBL_B.基準日=19990930がWHERE条件に指定されたかのごとく処理されるからです。
ただし、SQL文の見易さの観点からは「SQL文1」の記述の仕方を推奨します。
製品・サービス区分 | Symfoware | ||||
---|---|---|---|---|---|
製品・サービス情報 |
|
||||
アンサー種別 | 設計/開発 |