表中有50多万数据 查询速度极慢 请oracle高手帮忙解决下, 哪种方案比较合理 空间/时间的问题 lazy 机制 就可以了.. 同意楼上的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select /*+first_rows*/ a,b,c,d from (select a,b,c,d from abcd order by updatetime desc) where rownum <=16这样有时候可以快一些 你试一试把50万条数据变成List,占用的内存有多大,跟踪一下就明白我们说什么了 String sql = "select top 16 a,b,c,d from abcd order by updatetime desc"就取前16条最新的! Sorry,忘了是oracle ! top 不行! 根据updatetime 建立倒序索引然后再用方案二如果分页的话,也最好伪列rownum 来进行分页。效率不慢,我们公司200万条大表也是按照这样的方式的。 楼主,求求你饶了我把,把50万条纪录一次拿出来然后显示在HTML里,这个HTML要多大知道吗?第2,如果你是指把50万条ITEM拿出来,没页显示10/20/30条,那你如果为了分页而分页,就算在CLIENT端控制没页显示10/20/30条这和一次取50万条有什么区别?一般一页要看多少就取多少(这个问题去看看ORACLE分页语句的应用)就是你自己写得解决方案2拉8楼的多加了/*+first_rows*/,这里用到了ORACLE的内部“解释器”相应的还有/*+all_rows*/这些用法请参照ORACLE的相关资料终结:一次拿出50万显示在CLIENT端和一次拿50万每次显示10条给CLIENT段都属于URGLY做法最好是显示多少相应的你要去取多少,这是基本原则试想有50个人用你的系统50个人里如果有25个人是并发,那就是25*50万在内存,HOHO,到时就是OUT OF MEMORY你不要用我的系统CLIENT端少做理由也不要告诉我你查询一次把DATARESULT放到SESSION里(真有公司这么干,很垃圾的公司)这是基本,显示多少相应的你要去取多少 /*+first_rows*//*+all_rows*/ 这些属于ORACLE性能优化知识领域可以去钻们看看,相应的还有好几个/*+这样开头的咚咚呢 ORACLE性能优化 不妨给推荐几本好书呗 ? 谢了 给你推荐一本 就是《ORACLE SQL性能优化》 我的资源里有 我感觉还不错 order by updatetime desc如果没有做反向索引,会造成全表扫描 写ora视图或是存储过程要比在java程序里面写 sql 语句好吧 ?? DTD跟XSD 关于weblogic8.1预编译的问题? 高手请帮帮忙.select问题 关于list的问题 MySQL5.0兼容MySQL4.0吗? eclipse下怎么配置Tomcat插件? 50分,weblogic服务器数据库连接池不够用怎么办? JAVA程序错误(急) 用java+XML做网站的问题? 在JBUILDER中啟動WLS服務出錯?????? 配置Quartz问题:Unconvertible UTF-8 character begin... 关于java String.matches方法的疑惑?
就取前16条最新的!
50个人里如果有25个人是并发,那就是25*50万在内存,HOHO,到时就是OUT OF MEMORY
你不要用我的系统CLIENT端少做理由
也不要告诉我你查询一次把DATARESULT放到SESSION里(真有公司这么干,很垃圾的公司)
这是基本,显示多少相应的你要去取多少
/*+all_rows*/
这些属于ORACLE性能优化知识领域
可以去钻们看看,相应的还有好几个/*+这样开头的咚咚呢
如果没有做反向索引,会造成全表扫描