パーティションオプションとOracle Server SE One

実際、 SE OneにDBA_TAB_PARTITIONSと他の辞書オブジェクトがありますか? 質問の理由は簡単です。コードはOracle EEに基づいており、これらのビューを使用します。 インストール後、これらのオブジェクトは存在するだけでなく、空ではないことがわかりました。 それらは空ではないので、これからセグメント化されたテーブルを作成することが可能であり、もしそうなら、これがどのように起こるかを見るといいでしょう。



declare v_cnt pls_integer; begin for rec in (select distinct table_owner, table_name from dba_tab_partitions) loop execute immediate 'select count(1) from "'||rec.table_owner||'"."'||rec.table_name||'"' into v_cnt; if v_cnt > 0 then dbms_output.put_line('"'||rec.table_owner||'"."'||rec.table_name||'" - '||v_cnt); end if; end loop; end; / "SYS"."WRH$_SEG_STAT" – 3138
      
      





どうやら、セクションを持つオブジェクトがあるだけでなく、空でもありません...



セグメント化されたテーブルの通常の作成中はどうなりますか? 試してみましょう:



 SQL> create table t (n number) partition by hash(n) partitions 16; create table t (n number) partition by hash(n) partitions 16 * ERROR at line 1: ORA-00439: feature not enabled: Partitioning
      
      





ここで、 WRH $ _SEG_STATオブジェクトが作成されるファイルを見てください。

これはファイルですか?/Rdbms/admin/catawrtb.sql



最初に次の行があります。



 -- Turn ON the event to disable the partition check alter session set events '14524 trace name context forever, level 1';
      
      





それでは、適用しましょう:



 SQL> connect usr/password@database Connected. SQL> alter session set events '14524 trace name context forever, level 1'; Session altered. SQL> create table t (n number) partition by hash(n) partitions 16; Table created. SQL>
      
      





したがって、 Oracle SE Oneにセグメント化されたテーブルを作成しました。 ただし、BUTは1つだけです。これは、この製品のOracleライセンスに違反します



なぜこれが便利なのですか?



セグメント化されたテーブルを作成して、 Oracle EEにスキーマをインストールするスクリプトがあると想像してください。 パーティションオプションの存在を必要とします

つまり あなたは

  1. Partition Optionのテストをオフにします。
     alter system set events '14524 trace name context forever, level 1';
          
          



  2. 独自のスキームを作成する
  3. dbms_redefinitionにより、セグメント化されたテーブルを通常のテーブルに再編成します。
  4. イベント状態を戻す:
     alter system set events '14524 trace name context off';
          
          





そして最後に、私は要求を満たそうとしました:



 select name ,version ,detected_usages ,total_samples ,currently_used ,first_usage_date ,last_usage_date ,aux_count ,last_sample_period from dba_feature_usage_statistics where last_usage_date is not null and name like '%Part%' ; NAME VERSION DETECTED_USAGES TOTAL_SAMPLES CURRE FIRST_US LAST_USA AUX_COUNT LAST_SAMPLE_PERIOD --------------------- ----------- --------------- ------------- ----- -------- -------- - --------- ------------------ Partitioning (system) 11.2.0.3.0 1 1 TRUE 28.11.12 28.11.12 2,74 0
      
      





dba_feature_usage_statisticsテーブルには、ユーザー(つまり、 パーティショニングuser )のある行)のパーティションオプションの使用に関するデータはありません。 正式に-痕跡は残っていません。



その結果、 Oracle Partition Optionを使用し、 Oracle RDBMSライセンスに違反しないようにそれらを通常のテーブルに再編成する場合でも、 Oracle EEに焦点を当てたスクリプトを使用してデータベースオブジェクトをデプロイする機会があります。



All Articles