ORACLE数据库select * from tabname时特别慢,怎么回事? 最近遇到一个很郁闷的问题,我查一张特别常用的表,该表的数据量是百万量级的,之前select * from tabname(pl/sql工具)很快,最近特别慢。我表分析也做了,索引也重建了,可是还是很慢,不知道怎么回事?哪位大侠指点一二? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select * from tabname这样查询,是不会用到索引的。tabname表有几百万的数据,用的时候,不会全部用吧。select * from tabname where rownum < 10 ;这样会比较快。如果有查询条件,在查询条件上加上索引,就ok了。如果查询结果集>全部结果的30%,就没有必要加索引列。 pl/sql工具 中执行计划。一般pl/sql工具 中不会全部查询出来的,只是返回一小部分, 首先没有任何条件的查询,跟你前面所做的那些分析可能没有什么关系我觉得如果是因为前几天快,这几天不行,那就不是你sql的问题了,而是你的服务器或数据库的问题了,或者有人在操作表这个,你可以重启下服务器和数据库再试下。同样一个sql语句执行也可能不同的时间,何况你的数据量很大呢 hebeishimeng where条件加rownum更慢,不行。lxyzxq2008 PL/SQL工具是只返回一小部分,关键是这一小部分都需要很长时间。 不过where条件如果有用到索引的查询,是很快的。有些表是千万量级的数据,但是select * from tabname时很快就能出来,而这张表就特别慢。但是如果该表where条件有用到索引的,查询是很快的。我不知道是不是这表有问题还是数据库服务器有问题 achilles12345大侠,这张表的确是频繁进行插入、删除操作,很可能是你说的这种情况,你说的重构是如何操作,之前没有这样做过,谢谢指点!!! 别用客气都是技术交流。重构是很普通的东西,你上王搜索“Oracle表重构”会有很多资料的。我也是用的时候才去查,具体记不住,你看看这个http://wenku.baidu.com/view/074b0903e87101f69e319516.html,不过建议你现在实验系统上试试,没有问题后再整理好语句文档,然后再到生产机上试下。 好的,谢谢啊,achilles12345!!! 不要客气,建议你参照下:http://blog.csdn.net/sdxrh2005/article/details/4183470。一定要仔细写下语句。 关于ORACLE数据库备份恢复的问题 oc4j 配置的问题 一个小小的问题 从表中筛选记录 并按物料号分类,分析 ant脚本导入mysql存储过程、函数,delimiter参数报错 请教关于ORACLE连接DB2的问题 删除表的外键与主键的顺序 英文oracle如何支持中文? 关于Oracle安装的问题(安装界面为乱码!)解决问题后另夫100分! oracle12c,想在相关表里面找含有某个值的记录,为啥没有返回值 求组:不同sid下表内数据的比较 关于windows下ORALCE用RMAN恢复的问题
这样查询,是不会用到索引的。
tabname表有几百万的数据,用的时候,不会全部用吧。
select * from tabname where rownum < 10 ;
这样会比较快。
如果有查询条件,在查询条件上加上索引,就ok了。
如果查询结果集>全部结果的30%,就没有必要加索引列。
一般pl/sql工具 中不会全部查询出来的,只是返回一小部分,
我觉得如果是因为前几天快,这几天不行,
那就不是你sql的问题了,而是你的服务器或数据库的问题了,或者有人在操作表
这个,你可以重启下服务器和数据库再试下。
同样一个sql语句执行也可能不同的时间,何况你的数据量很大呢
lxyzxq2008 PL/SQL工具是只返回一小部分,关键是这一小部分都需要很长时间。
有些表是千万量级的数据,但是select * from tabname时很快就能出来,而这张表就特别慢。但是如果该表where条件有用到索引的,查询是很快的。
我不知道是不是这表有问题还是数据库服务器有问题