我们将要做的项目数据量(千万级)比较大,为了提高性能,准备将主要的业务表建立成分区表。
  现在有几个问题不清楚:
  1.我们打算将一个表的数据存储在多个物理硬盘上,需要给每个硬盘都建立不同的表空间嘛?
  2.多个物理硬盘存储 是建一个表空间然后添加不同的数据文件到不同的硬盘?还是给这个表指定多个表空间?
  3.我们要做全文检索 文件的索引准备单独建一个表空间存储的话 在进行索引更新的时候会不会更方便?
  我本身是搞JAVA的,数据库这方面知道的比较少,希望大家帮忙提供点意见。

解决方案 »

  1.   

     CREATE INDEX test_space_index ON mydocs(thefile) INDEXTYPE IS ctxsys.context 
        PARAMETERS('datastore my_datastore_prefs filter cs_filter Lexer my_chinese_lexer'); 
    如上全文索引 建立时 怎么指定 表空间呢?具体全文索引需要建立的如下:
    BEGIN
       ctx_ddl.create_preference ('my_datastore_prefs', 'FILE_DATASTORE');
       ctx_ddl.set_attribute ('my_datastore_prefs', 'path', 'd:\file');
    END;begin
     ctx_ddl.create_preference('cs_filter', 'CHARSET_FILTER');
     ctx_ddl.set_attribute('cs_filter', 'charset', 'UTF8');
    end;BEGIN
      ctx_ddl.create_preference ('my_chinese_lexer', 'CHINESE_VGRAM_LEXER');
    END;CREATE TABLE mydocs( id NUMBER PRIMARY KEY, title VARCHAR2(255), thefile 
    VARCHAR2(255) );
      

  2.   

    全文检索在建立索引时在默认表空间,不能直接为索引指定表空间
    Oracle全文索引的STORAGE属性是为了给全文索引生成的辅助表设置存储参数的。
    有兴趣的可以看下 下面的帖子
    http://yangtingkun.itpub.net/post/468/190627