-- 問題SQL(前提:ia_ledger_b表存在src_bill_row_id索引,欄位型別為字串; voucher_saleinvoicedetail為整形)
uorders.voucher_saleinvoicedetail a
left join fieia.ia_ledger_b d on
-- a.id = d.src_bill_row_id 調整前
-- 調整後
cast(a.id as varchar(66)) = d.src_bill_row_id (保持欄位型別一致)
-- 調整之前的計劃
#CSCN2: [22, 143667, 236]; INDEX33608843(ia_ledger_b as d)
-- 調整後的計劃
#BLKUP2: [1, 1, 0]; I_IA_LEDGER_B_SRC_BILL_ROW(d)
#SSEK2: [1, 1, 0]; scan_type(ASC), I_IA_LEDGER_B_SRC_BILL_ROW(ia_ledger_b as d), scan_range[(exp_cast(a.id),min,min),(exp_cast(a.id),max,max));
總結: 因兩張表欄位型別不一致導致沒有走索引,處理方式,在join 裡轉換欄位型別為一致