2017-03-03 13 views
-2

いずれか1つは、INFORMIXの既存のテーブルにFRAGMENT BY RANGE(GENERATED_DATE)を作成するのに役立ちますか?範囲によってフラグメントを作成

私が試みたが、私はない

ALTER FRAGMENT ON TABLE neura_biahmis_prod.episode_service_rendered_tbl INIT 
    FRAGMENT BY RANGE(GENERATED_DATE) 
     INTERVAL (NUMTOYMINTERVAL(6,'MONTH')) 
PARTITION Q1_EPSIODE_SERVICES VALUES > DATE('2016-01-01') AND VALUES <= DATE('2016-06-01') IN datadbs1, 
PARTITION Q2_EPSIODE_SERVICES VALUES > DATE('2016-06-01') AND VALUES <= DATE('2016-12-01') IN datadbs2, 
PARTITION Q3_EPSIODE_SERVICES VALUES > DATE('2016-12-01') AND VALUES <= DATE('2017-01-01') IN datadbs3; 
+3

なぜあなたは恋をしていますか?また、何か試してみましたか?あなたの質問を改善するために[ASK]と[MCVE]を見てください。また、なぜOracleタグですか?ありがとう@luis。 – Aleksej

答えて

0

PARTITION句のみ1つの不等式演算子、すなわちより少ないオペレータ(<)を含むことができます。 (FRAGMENT BY clause)マニュアルを1として

.-,-----------------------------------------------------------. 
    V                | 
>----PARTITION--partition--+-VALUES < range_expr-+--IN--dbspace-+--| 
          | (2)     |     
          '-------VALUES IS NULL-'     

ですから、このような何かにあなたのパーティションの条項を変更する必要があります。

PARTITION Q1_EPISODE_SERVICES VALUES < DATE('2016-07-01') IN datadbs1, 
PARTITION Q2_EPISODE_SERVICES VALUES < DATE('2017-01-01') IN datadbs2, 
PARTITION Q3_EPISODE_SERVICES VALUES < DATE('2017-07-01') IN datadbs3; 

INIT句、テーブルの意志を持つことに注意してください再構築する。十分なディスク容量があることを確認してください(データベースがログに記録されている場合、これは単一のトランザクションになります)、長いトランザクションを実行する可能性があります。

+0

制約やテーブルを落とすことなくテーブルを断片化することは可能でしょうか? –

関連する問題