Oracle测试常用表BIG_TABLE(二)

2014-11-24 15:53:17 · 作者: · 浏览: 1
&1;
BEGIN
INSERT /*+ append */
INTO big_table
SELECT rownum, a.*
FROM all_objects a;
l_cnt := SQL%ROWCOUNT;
COMMIT;
WHILE (l_cnt < l_rows)
LOOP
INSERT /*+ APPEND */
INTO big_table
SELECT rownum + l_cnt
,owner
,object_name
,subobject_name
,object_id
,data_object_id
,object_type
,created
,last_ddl_time
,TIMESTAMP
,status
,temporary
,generated
,secondary
,namespace
,edition_name
FROM big_table
WHERE rownum <= l_rows - l_cnt;
l_cnt := l_cnt + SQL%ROWCOUNT;
COMMIT;
END LOOP;
END;
/
prompt
prompt Add primary key for big table
prompt =====================================
ALTER TABLE big_table ADD CONSTRAINT
big_table_pk PRIMARY KEY (id);
prompt
prompt Gather statistics for big_table
prompt =====================================
BEGIN
dbms_stats.gather_table_stats(ownname => USER,
tabname => 'BIG_TABLE',
method_opt => 'for all indexed columns',
cascade => TRUE);
END;
/
prompt
prompt check total rows for big_table
prompt ====================================
SELECT COUNT(*)
FROM big_table;
三、说明
1、该校本根据Tom大师的原big_table整理而成。
2、Oracle 11g all_objects 比Oracle 10g 多出两列,因此使用了2个不同的版本。
3、big_table的id列为唯一值,并在之上创建了primary key。
4、对于该表测试redo等相关信息是应启用logging模式。