怎么高效查询一个表中相同字段的条数

如何高效查询一个表中相同字段的条数1.select (select count(1)from address c where c.alladdresst.alla

如何高效查询一个表中相同字段的条数
1.select (select count(1) from address c where c.alladdress=t.alladdress) AS REPEATERCOUNT ,
 t.* from address;
数据量有5W多条,这样查询用时0.89s,放在另外一台机器上用了2秒左右,用函数查询重复的条数速度也不是很理想 
2.
select t.*,
CASE when REGEXP_INSTR(T.road,'[[:punct:]|[:digit:]|[a-z]|[A-Z]]')>0
  then 1 else 0 END)as ISDIST
from address
用正则判断road是否符合要求,在自己机器上用时0.5秒,放在另外一台机器上用时0.5-5s之间,不稳定
(注:另外一台机器性能和我的机器差不多!)
请指点一下,先谢谢了!

[解决办法]
不懂,但也想知道,所以帮顶!~~
[解决办法]
学习ing 坐等高手
[解决办法]
这个问题很复杂的
机器性能和你差不多只是你认为,或者你看到的全新机器参数,实际上由于使用维护的区别或许还是有很大区别的;
抛开机器不说,你的数据库和他的数据库也不一样,我指的是你内部结构,比如你的表空间不足了,buffer不够大了,数据块随着使用不连续了等等;
再还有建表的时候是不是他有索引而你没有之类的细节


[解决办法]
即使2台同样的电脑 连接一个库运行一个sql也会有时间差距 和我昨天一样 查询几百条数据 差距可能会达到几毫秒
[解决办法]
其实这个还要看你机子是否有你这个SQL的缓存查询,如果有的话,速度会快点。。
[解决办法]
oracle的参数配置,数据的存储结构,统计信息是否准确,这些都会影响执行效率
[解决办法]
经过测试这样写,效率要高很多
select c.cnt ,t.*
from t_01 t,
(select colname,count(1) as cnt from t_01 group by colname) c
 where t.colname= c.colname;