"Campaign"というフィールドを持つテーブル(200K行)があります。私は追加の情報とキャンペーンの別のテーブルのリストを持っています。 where (campaign_id = campaign) OR (cid.spend_source = a.Traffic_Source AND a.Campaign = cid.Campaign_Name)
に参加したいです。OR非効率でクエリを左に結合
私が直面している問題は、OR文が4億行のネストループを引き起こして効率が低下していることです。
もっと良い方法はありますか?
UPDATE a
SET a.campaign_name = cid.Campaign_Name,
a.Campaign_ID = cid.Campaign_ID
FROM database.dbo.table a
LEFT JOIN carb.dbo.carb_lookup_campaignid cid
ON cid.Campaign_ID = a.Campaign
OR (cid.spend_source = a.Traffic_Source
AND a.Campaign = cid.Campaign_Name)
を更新分離を2つ使用
– scaisEdgeパフォーマンス質問には、 'EXPLAIN ANALYZE'とテーブルサイズ、インデックス、現在の時間パフォーマンス、欲求時間などの情報が含まれています。'スロー 'は相対的な用語であり、比較のためには本当の値が必要です。 –
これは非標準SQLです。どのDBMSを使用していますか? –