多表聯合查詢是如何使用索引的?民工10242017-02-14 21:36:38

臨時表沒有索引,只是存放資料,所以原表的索引,約束等都是不起作用的…

多表聯合查詢是如何使用索引的?成都朗沃教育2017-11-14 16:40:01

表結構如下:

t_goods_decl(decl_no,orgcode,valid, 。。。。)

t_goods_decl_msg(decl_no,status,valid, 。。。。)

列出了主要欄位,其他的暫時省去。兩張表的關係是1對1,msg表存的是decl表的狀態及附加資訊。

查詢語句:

SELECT COUNT(decl。decl_no)

FROM T_GOODS_DECL decl,

T_GOODS_DECL_MSG msg

WHERE (decl。VALID=‘1’ )

AND(((msg。STATUS=‘1’ OR msg。STATUS=‘2’ )

AND decl。DECL_NO=msg。DECL_NO))

索引情況:

1。 兩張表的decl_no欄位建立唯一索引

2。 msg表的status欄位,及decl表的valid欄位分建立點陣圖索引

資料庫情況:

oracle 9i

執行計劃:

SELECT STATEMENT Optimizer Mode=CHOOSE

1 3550

SORT AGGREGATE 1 20

HASH JOIN 47 K 926 K 3550

TABLE ACCESS FULL CSUSR。T_GOODS_DECL 129 K 1 M 2661 TABLE ACCESS FULL CSUSR。T_GOODS_DECL_MSG 200 K 1 M 595