一个100万条记录表,目前查询速度过慢,让你给出5条优化措施
请高手给出多点答案
请高手给出多点答案
解决方案 »
- 问一个oracle中建立表空间的问题。
- 如何获取ORACLE存储过程的参数个数
- BI和Oracle EBS比较如何?
- c语言访问oracle数据库有几种方式,哪种最好?
- 怎样在存储过程中调用另一存储过程?急
- 控制某用户不能用select语句查看某些表?如果赋权限?
- 快救命啊!oracle817在win2000 server服务器中起不来了,怎么回事啊,操作系统完好
- 急!!!关于报错“在其上下文中,该请求的地址无效”问题。超难!!!,非“大虾”,勿入。(重分酬谢)
- 急!在oracle8.1.6的oracle enterprise manager中利用向导进行数据导出时,作业显示已调度、已启动、已失败,错误提示是'cant open d:\ex
- oracle的密码问题
- 急!!高手请进!!求优化语句!!!
- 如何将数据从USER1复制到?USER2?
2,采用表分区
3,根据查询组合条件建立适当索引
4,确定一次性提取数据的数量,用rownum实现翻页
5,查询语句放在服务器端执行(视图,或ref游标)
看你的查询条件。
看sql的执行计划。
看执行计划hoho
通过hint提示干扰执行计划测试hoho
ora9之下重新计算统计信息hoho
最根本的还是优化sqlhoho
比如少用in 如果用了not in 那就等吧您
优化SQL
加内存
换更快的磁盘
换更快的网络
1、将数据分区放在不同的表分区,同时放在多个数据文件上;
2、表分析和建立索引是非常必要的,根据不同的要求还可以建立一些可读写的VIEW来分类查询;建立位索引对条件的提取数据非常有效。
3、换更快的磁盘阵列或换更快的网络,或加内存,是根本上解决性能问题;
4、优化ORACLE的配置,可以根据实际情况修改共享内存等
5、用适当的语句,尽量少用IN ,NOT IN 等语句,减少不必要的计算
2、从ORACLE上的对象管理来解决数据的读写效率
3、从硬件上,来提高计算机的性能和网络性能,也是成本最高的
4、从环境上来提高ORACLE的处理能力
5、从逻辑上的脚本来减少数据的检索范围
这就是我解决这个问题的方法
我开发的是GIS项目,在第二点中,表分析我还没做,听说表分析做完后,性能大大的提高。
2. 查询这些sql 的执行计划
3. 确定正确的执行路径和join方式, 必要时用hint
4. 建立适当的索引
5. 对于100万的小表以上手段足够了