select a.id, a.wlbm, a.wlpm, a.jb, b.gysmc, b.mdm, b.ly
from gwdc_wgzx_wldwz a,
(select t.gysmc, t.mdm, t.ly, t.wlz || '%' as wlzwhere
from gwdc_wgzx_query t
where t.wlz is not null
and t.wlbm is null
and t.ly != '市场准入'
and nvl(t.qyxq, 0) <= '20121017'
and nvl(t.zyxq, 0) >= '20121017') b
where a.wlpm like b.wlzwhere
sql优化 两个表连接 怎么优化?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- jinnianshilongnian 2012-10-17 21:02关注
1、is null / is not null 在有些情况即使建索引 也是不能走索引的 可以通过一些技术解决这个
1) 不保存null 2)建伪符合索引 如(wlz, '0')2、 t.ly != '市场准入' 也是不走索引的
3、只能靠如下:
and nvl(t.qyxq, 0) <= '20121017'
and nvl(t.zyxq, 0) >= '20121017'
但是你在需要处理的列上使用了函数 如果没有函数索引也是不走索引的。可以考虑直接(此处建议存数字 而不是字符串) 不用考虑null(走索引时 默认null是不建索引的)
t.qyxq <='20121017'
and t.zyxq>= '20121017'本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 回答4f系统的像差计算
- ¥15 java如何提取出pdf里的文字?
- ¥100 求三轴之间相互配合画圆以及直线的算法
- ¥100 c语言,请帮蒟蒻写一个题的范例作参考
- ¥15 名为“Product”的列已属于此 DataTable
- ¥15 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 自己瞎改改,结果现在又运行不了了