Optimization
在 DB2 中,如何禁用 NLJOIN?
我想通過 SET 或優化配置文件向優化器表明,在優化查詢時根本不應該使用 NLJOIN。
我一直在尋找這個有一段時間沒有任何成功。我尋找可以通過
db2set
命令設置的屬性,但唯一引用 NLJ 的屬性是DB2_INLIST_TO_NLJN
.我發現最接近的是通過使用優化配置文件,但這些配置文件非常具體,我需要的是適用於任何正在優化的語句的一般設置。
您可能希望查看這篇關於連接方法以及 DB2 如何在何時選擇哪個方法的文章。
根據這個文件(它適用於 DB2 8,我假設它與 9+ 類似,但不一定),嵌套循環連接始終可供優化器使用。DB2 可以選擇歸併排序和散列,因為優化器級別從 1 開始上升並且存在其他內容(閱讀文章以了解哪些內容)。
他
您可以更改優化類,以便有可能選擇合併掃描或散列連接而不是嵌套循環。但是,優化器將決定哪種方法是最好的。
第二個選項是使用優化器的配置文件:http: //publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.perf.doc/doc/c0024530。 html