SQL语句优化(续)
select * from (select mobileNo,...,rownumber() over(order by id) as m from tbizdetail where cast(optTime as varchar(10)) between '2007-07-13 ' and '2007-07-13 ' and (branchName = ' ' or branchName = '广州 ' or branchName = '深圳 ') and (bizName = '套餐办理情况查询 ' or bizName = '开通国际长途情况查询 ') and (brandName = '动感地带 ' or brandName = '神州行 ' or brandName = '全球通 ')) as a where a.m between 1 and 30
上面是后台打印的SQL语句,tbizdetail表已经有1亿条记录。
or条件中,branchName最多有21个,brandName最多有5个,bizName有三、四百个
用的是db2,分页是这样子吧?都是Varchar类型
请问上面的语句会导致索引失效吗?各位有没有什么好的解决方案啊?投入运行的时候,效率实在太慢了,难以忍受
------解决方案--------------------MS第1句就用不到索引了
cast(optTime as varchar(10)) between '2007-07-13 ' and '2007-07-13 '
bizName有三、四百个
这個強悍.....
------解决方案--------------------上面是后台打印的SQL语句,tbizdetail表已经有1亿条记录。
or条件中,branchName最多有21个,brandName最多有5个,bizName有三、四百个
用的是db2,分页是这样子吧?都是Varchar类型
把这三个内容放到三个表里,然后用IN试试
branchName
brandName
bizName
------解决方案--------------------问题没有解决,分数回收