私はこのテーブルを持っています:
CREATE TABLE TBIGP
(
IDPER NUMBER(6),
DESCRIZIONE VARCHAR2(50),
DINS DATE
)
PARTITION BY LIST (IDPER)
(
PARTITION P201201 VALUES(201201),
PARTITION P201202 VALUES(201202),
PARTITION P201203 VALUES(201203),
PARTITION P201204 VALUES(201204),
PARTITION P201205 VALUES(201205),
PARTITION P201206 VALUES(201206),
PARTITION P201207 VALUES(201207),
PARTITION P201208 VALUES(201208),
PARTITION P201209 VALUES(201209),
PARTITION P201210 VALUES(201210),
PARTITION P201211 VALUES(201211),
PARTITION P201212 VALUES(201212),
PARTITION P201301 VALUES(201301),
PARTITION P201302 VALUES(201302),
PARTITION P201303 VALUES(201303),
PARTITION P201304 VALUES(201304),
PARTITION P201305 VALUES(201305),
PARTITION P201306 VALUES(201306),
PARTITION P201307 VALUES(201307),
PARTITION P201308 VALUES(201308),
PARTITION P201309 VALUES(201309),
PARTITION P201310 VALUES(201310),
PARTITION P201311 VALUES(201311),
PARTITION P201312 VALUES(201312),
PARTITION OTHER VALUES(DEFAULT)
);
今、この方法でテーブルにデータを入力したいと思います。for、while、loopなどの反復手順を使用して、すべてのパーティションが 500000 レコードで構成されるようにします。精度のために、すべてのパーティションには 1 から 450000 から 500000 のレコードがあり、レコードの数はランダムです (1 つのパーティションには 480000 レコードを含めることができ、別のパーティションには 490000 または 450000 または 467890 レコードを含めることができます....)。
生成される 1000 レコードごとに、 commitを実行したいと考えています。
それが明らかかどうかはわかりません。英語で説明するのは私には難しいです。ありがとうございました。
編集
このようなもの:
BEGIN
FOR i IN 1..24
LOOP
j:=1
z:=dbms_random.value(450000,500000)
WHILE j<=z
INSERT INTO T_BIG_P_1
VALUES (i, 'description', TRUNC(SYSDATE + DBMS_RANDOM.value(0,366))
IF MOD (j, 1000) = 0 THEN
COMMIT;
END IF;
j:=j+1;
END LOOP;
END;
exec DBMS_STATS.GATHER_TABLE_STATS('SH','T_BIG_P_1');