SQL语句,where (字段值 Like %子串%) 或者 (atcc(子串, 字段值)>0),该如何尽量地Rushmore优化呢?
比方说:update 地址汇总表 SET 已处理 = .t. , 联系地址 = strtran(联系地址, trim(地址更新表.旧串), trim(地址更新表.新串)) from 地址更新表 WHERE 联系地址 like "%"+trim(地址更新表.旧串)+"%" .and. ! 已处理
大意是,地址定期更新时,凡带有“向阳西路”的,统一更换为“爱麦斯西路”,“明水区”的,统一更换为“高新区”。“地址更新表.dbf”中保存对应表:
旧串, 新串
"向阳西路", "爱麦斯西路"
"明水区", "高新区"
...
where条件若为like、like()或者atcc(),当数据表较大,达到10W+甚至更多记录时,运行起来会狠慢。
索引“联系地址”、“旧串”等字段,好像并不管用。