随着业务的不断扩展,对数据的分析、抽取、转换等操作越来越多,对TB级ORACLE数据库的性能依赖越来越高,请各们同仁说说如何解决数据库查询性能的问题?以及通常有哪些优化手段?
对于oracle而言
从软件上讲,使用最新的版本,补丁,新特性。毕竟新的东西是在完善老的数据库系统,更优的执行计划,更优的算法等等诸如此类,
然后就是使用数据的集群缓存,比如和nosql数据库配合使用,
硬件上面的话使用固态硬盘,闪存阵列卡,运行速度更快更好的cpu,或者直接使用成熟的一体机exdata。
下面说下具体的解决方案,没有什么业务是不可拆分的,而且拆分的效率往往是巨大的,或许前期的时间耗费的比较多,不过收获大部分是可观的,说说索引,提前过滤好结果集,对于海量的数据作用是很明显的,对于建立什么样的索引,每个业务场景都是不同的,不能一概而论,有些时候使用索引的性能并不怎么好。下面说些笼统查询优化技术的分区,分表,临时表,中间表,历史表,虚拟列等等,最后一句话,减少结果集,因为往往很多时候展现的数据并不需要那么多,合理使用索引,因为一个索引可能产品蝴蝶效应。