关于这个SQL帮忙给点建议 创建一个这样的索引试试create index idx_name tbname(SubStr(UserNumber,3,1)); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在数据更新时,可能是新增时把SubStr(UserNumber,3,1),先生成保存在一个字段中可能速度会有所提高 建议表建立在2个分区上,数据插入时把SubStr(UserNumber,3,1)为('5','6','7','8','9'))的数据存储在一个分区(partion yidong),其他的存储在另外一个分区(partion liantong)。这样统计会快很多。 谢谢楼上各位了,除了数据库本身的调整,SQL上有没有什么优化?我非常同意beckhambobo(beckham) 的意见,分表是肯定的,只是现在用户量不会太大,所以不想把系统搞得很复杂。 条件有了,还要看一下泥提取的内容是怎样的?单从泥的条件语句来看,可以用DECODE来对移动和联通用户进行区分,通过减少对数据库的访问次数,从而使条件进行优化,不过还不大清楚泥提取的内容是否利用了汇总函数? 简单来说,把移动数据列为一分区,联通数据分为一区。局部采用细分区(散列、范围等)详情参考:http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96524/c12parti.htm#464767 条件可以这样写:联通的 where UserNumber between '13000000000' and '13399999999';移动的 where UserNumber between '13500000000' and '13999999999';where条件中对字段最好别用函数像你上面的SubStr(UserNumber,3,1)对字段用函数处理的话,你对这个字段健的索引就起不到作用了 数据库中to_dec()函数 请教:存储过程中如何定义表变量? oracle 使用RMAN这么复杂? ORACLE简单问题 sql语句过长,求能分词处理的查询语句 oracle8i下使用DBA studio工具无法将用户下的表导出,用户以DBA身份登陆。提示如下: 怎么恢复表空间 请教一个sql输出问题 我的一个可能是回滚段的问题!error03232! 谢谢!!!!!! 存储过程问题 哪里有下载toad的网址?
把SubStr(UserNumber,3,1),先生成保存在一个字段中
可能速度会有所提高
局部采用细分区(散列、范围等)
详情参考:
http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96524/c12parti.htm#464767
联通的 where UserNumber between '13000000000' and '13399999999';
移动的 where UserNumber between '13500000000' and '13999999999';
where条件中对字段最好别用函数像你上面的SubStr(UserNumber,3,1)对字段用函数处理的话,你对这个字段健的索引就起不到作用了