求助:Oracle数据库多个大数据表查询慢的问题

0
Oracle数据库中须实时查询多个表的关联数据,多个表都是百万级的数据,现在是通过试图Union起来再查询,发现查询很慢,满足不了应用的要求,请问各个大侠有没有好的办法,感激不尽!
已邀请:
0

gogodiy - 天善智能数据库专家、Tableau爱好者 2015-10-27 回答

Oracle用的不多,根据MSSQL和MYSQL的优化经验,无非从几个方面入手:
1.硬件是否有升级的可能。很多时候升级硬件能解决不少问题。
2.分析需求,是否需要那么多的数据量。比如常见的分页,其实看的也就是前10页比较多,那重点就放在前10页数据的提取上。
3.看执行计划,找到瓶颈所在,分析原因是没有索引、索引使用不当、索引列统计信息未更新,或是和其他查询阻塞甚至导致死锁。
4.分析可能的结果集,尽量将减少结果集的表关联放在最前面,提供附属信息的表关联放到后面。
5.个人一家之言——坚决不用视图。Oracle除了物化视图,其他类型的都是虚拟表,就是保存了一段事先准备好的查询代码,而且你还无法确定查询条件,只能提供一个大而全的功能。你查询视图,本质是转化为对这段代码的查询,查询性能根本没什么提高。还不如直接表关联,还能控制代码。你用物化视图的话,刷新视图的开销又吃不消。
 
 
0

老头子 - 专注是唯一的捷径 2015-10-26 回答

什么系统? olap还是oltp? 现在要多久? 期望是多久? SQL大概是什么样的?还有执行计划 这些信息最好都发出来 不然不好给你准确定位问题所在

要回复问题请先登录注册