以下は私のクエリです。4 つの結合を使用して 3 つの異なるテーブルからデータにアクセスします。現在、1000 レコードを検索する場合、約 5.5 秒かかりますが、100,000 まで増幅すると、無限の時間のように見えます (最後の7時間でキャンセル..)
私が間違っていることを誰かが知っていますか?または、クエリを高速化するにはどうすればよいでしょうか?
このクエリは、おそらく数百万のレコードを返すために実行する必要があります。クエリをテストする目的で 100,000 に制限しただけで、この少量でも失敗するようです。
oracle 8の記録のために
CREATE TABLE co_tenancyind_batch01 AS
SELECT /*+ CHOOSE */ ou_num,
x_addr_relat,
x_mastership_flag,
x_ten_3rd_party_source
FROM s_org_ext,
s_con_addr,
s_per_org_unit,
s_contact
WHERE s_org_ext.row_id = s_con_addr.accnt_id
AND s_org_ext.row_id = s_per_org_unit.ou_id
AND s_per_org_unit.per_id = s_contact.row_id
AND x_addr_relat IS NOT NULL
AND rownum < 100000
写真でプランを説明 : http://imgur.com/Xw9x4BA (読みやすい)