oracle 中 select count(id) 速度很慢 要17秒 表数据量100万 在oracle数据库中执行 select count(*) from J2210000JB2005XBM where substr(C_XIAN,1,4) = '2101'语句 速度非常慢 要17秒 表的数据有100万 请问是怎么回事 该如何优化 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 让查询走索引..substr(C_XIAN,1,4) = '2101' 这种写法会限制索引.. 能否通过其他字段来判断?Oracle 索引 详解http://blog.csdn.net/tianlesoftware/archive/2010/03/04/5347098.aspx------------------------------------------------------------------------------ Blog: http://blog.csdn.net/tianlesoftware 网上资源: http://tianlesoftware.download.csdn.net 相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx Q Q 群:62697716 select count(索引字段) from J2210000JB2005XBM where substr(C_XIAN,1,4) = '2101'试试,会提升速度? 不论是substr() instr() 还是 like 都是一样的问题 ,一样的慢,select count(索引字段) 已经试过了 没用的 select 在执行查询数据的时候是很快的1、2秒就出来了,但是就是在count的时候会非常的慢期待高手 你查询当然了,一般默认是first_rows,返回一部分数据,当然快了,count()的时候要走全表扫描.建立函数索引试试 既然你说selec 的时候快 ,那你试试这样会回好些。select count(0) from (select * from J2210000JB2005XBM where substr(C_XIAN,1,4) = '2101') 或者直接见个索引:create index idx on J2210000JB2005XBM substr(C_XIAN,1,4); 谢谢你的回答 在建立函数索引后 速度提高了 现在 还有个问题 如果我的count语句 是这样的 应该如何创建函数索引 select count(*) from J2210000JB2005XBM where substr(C_XIAN,1,4) = '2101' and C_YSSZ='121' 一样的,创建substr(C_XIAN,1,4)索引,和C_YSSZ索引就可以了 select count(*) from J2210000JB2005XBM where C_XIAN LIKE '2101%' oracle的安装 ASP.NET Oracle问题 怎么样在oracle中开始事务,回滚事务? 如何使计数器(序列)自动重置?? 有什么标准的sql语句来insert ,update lob对象? 请推存 几本书 (pl/sql)的,还看看问题 我想问一个关于用户和密码的问题。 这句话是什么意思?知道的请告知,up也有分 关于primary key 和 index的问题 oracle存储过程中使用游标问题 怎么在过程中调用其他过程? recomplie & execute
让查询走索引..
substr(C_XIAN,1,4) = '2101' 这种写法会限制索引.. 能否通过其他字段来判断?Oracle 索引 详解
http://blog.csdn.net/tianlesoftware/archive/2010/03/04/5347098.aspx
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
Q Q 群:62697716
试试,会提升速度?
select count(索引字段) 已经试过了 没用的 select 在执行查询数据的时候是很快的1、2秒就出来了,但是就是在count的时候会非常的慢期待高手
你查询当然了,一般默认是first_rows,返回一部分数据,当然快了,count()的时候要走全表扫描.建立函数索引试试
select count(0) from (select * from J2210000JB2005XBM where substr(C_XIAN,1,4) = '2101')
select count(*) from J2210000JB2005XBM where substr(C_XIAN,1,4) = '2101' and C_YSSZ='121'