一个100万条记录表,目前查询速度过慢,让你给出5条优化措施 
请高手给出多点答案

解决方案 »

  1.   

    1,指定临时表空间,默认是system表空间
    2,采用表分区
    3,根据查询组合条件建立适当索引
    4,确定一次性提取数据的数量,用rownum实现翻页
    5,查询语句放在服务器端执行(视图,或ref游标)
      

  2.   

    100万条记录。
    看你的查询条件。
    看sql的执行计划。
      

  3.   

    建索引hoho
    看执行计划hoho
    通过hint提示干扰执行计划测试hoho
    ora9之下重新计算统计信息hoho
    最根本的还是优化sqlhoho
    比如少用in  如果用了not in 那就等吧您
      

  4.   

    增加或修改索引
    优化SQL
    加内存
    换更快的磁盘
    换更快的网络
      

  5.   

    我也遇到这样的问题:
    1、将数据分区放在不同的表分区,同时放在多个数据文件上;
    2、表分析和建立索引是非常必要的,根据不同的要求还可以建立一些可读写的VIEW来分类查询;建立位索引对条件的提取数据非常有效。
    3、换更快的磁盘阵列或换更快的网络,或加内存,是根本上解决性能问题;
    4、优化ORACLE的配置,可以根据实际情况修改共享内存等
    5、用适当的语句,尽量少用IN ,NOT IN 等语句,减少不必要的计算
      

  6.   

    1、从数据的存储结构上,提高读写磁盘的效率
    2、从ORACLE上的对象管理来解决数据的读写效率
    3、从硬件上,来提高计算机的性能和网络性能,也是成本最高的
    4、从环境上来提高ORACLE的处理能力
    5、从逻辑上的脚本来减少数据的检索范围
    这就是我解决这个问题的方法
    我开发的是GIS项目,在第二点中,表分析我还没做,听说表分析做完后,性能大大的提高。
      

  7.   

    1. 做statspack, 找出最耗资源的sql
    2. 查询这些sql 的执行计划
    3. 确定正确的执行路径和join方式, 必要时用hint
    4. 建立适当的索引
    5. 对于100万的小表以上手段足够了