如何优化查询?一个一千多万行记录的表!在ORACLE8i的一个表,大约有8个G,请问有什么好的解决方法或方案?
  如果想从程序中动态(运行时)的新建立一个表空间,而将数据写入这个表空间,有办法么?

解决方案 »

  1.   

    根据你表中的某个字段进行分区,partition,进行查询的时候,可根据partition_name指定在哪个区查询,如果加上索引,则速度则更快!
      

  2.   

    我刚学Oracle8i,请问mfc168(闶阆)、高手能否给我具体些的回复?谢谢!
      

  3.   

    比如:我们以前做过一个某省的人口系统,人口数据近一亿,根据行政区划来进行分区,按照此字段建立分区,即partition,属于该区的数据都存入该区,进行查询的时候,指定partition_name 就只在该去查询,还有就是如果你们的数据库server是多CPU的,就可以采用并行parallel进行处理,在进行模糊查询的时候最有效,如果不能并行处理,你要建立合理的索引,通过索引来提高检索速度
      

  4.   

    谢谢mfc168(闶阆)!我大概知道解决的方向了。
      另外还有一个问题,就是Oracle8i里有没有一个好的帮助,主要是关于PL/SQL的帮助,例如像MS SQL SERVER2000里的那么好的帮助有么?
      我刚接触Oracle8i,很需要这方面的资料!谢谢!
      

  5.   

    到ORACLE网站注册一下
    然后从http://otn.oracle.com/pls/db92/db92.homepage
    基本上可以解决所有问题
      

  6.   

    分区表对大表比较优化,详细参考以下:
    http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96524/c12parti.htm#464767
      

  7.   

    根据查询条件加入相应字段上的index非常重要!我在一张3000多万的数据表中查找有index的条件速度飞快。
      

  8.   

    注意在select 时打开autotrace 看看语句执行情况