Oracle 测试常用表BIG_TABLE
2013-03-01 14:16:25 来源:WEB开发网核心提示: 创建测试用表,DBA经常用到,Oracle 测试常用表BIG_TABLE,通常都是基于dba_objects来创建的比较多,本文根据Tom大师的big_table进行了整理
创建测试用表,DBA经常用到,通常都是基于dba_objects来创建的比较多。本文根据Tom大师的big_table进行了整理,供大家参考。
一、基于Oracle 10g下的big_table
--============================================== -- Create a test table for Oracle 10g -- File : cr_big_tb_10g.sql -- Author : Robinson -- Blog : http://blog.csdn.net/robinson_0612 --============================================== prompt prompt Create a big table from all_objects prompt ====================================== CREATE TABLE big_table AS SELECT ROWNUM id, a.* FROM all_objects a WHERE 1=0; prompt prompt Modify table to nologgming mode prompt ========================== ALTER TABLE big_table NOLOGGING; prompt prompt Please input rows number to fill into big_table prompt ============================================ DECLARE l_cnt NUMBER; l_rows NUMBER := &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 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;
二、基于Oracle 11g下的big_table
--============================================== -- Create a test table for Oracle 11g -- File : cr_big_tb_11g.sql -- Author : Robinson -- Blog : http://blog.csdn.net/robinson_0612 --============================================== prompt prompt Create a big table from all_objects prompt ====================================== CREATE TABLE big_table AS SELECT ROWNUM id, a.* FROM all_objects a WHERE 1=0; prompt prompt Modify table to nologgming mode prompt ========================== ALTER TABLE big_table NOLOGGING; prompt prompt Please input rows number to fill into big_table prompt ============================================ DECLARE l_cnt NUMBER; l_rows NUMBER := &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;
- ››oracle 恢复误删除的表和误更新的表
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
- ››常用的Windows 7操作系统实用技巧
- ››Oracle 11g必须开启的服务及服务详细介绍
- ››oracle性能34条优化技巧
- ››oracle数据库生成随机数的函数
- ››Oracle 数据库表空间容量调整脚本
- ››oracle单库彻底删除干净的方法
- ››Oracle创建表空间、创建用户以及授权、查看权限
更多精彩
赞助商链接