当前位置:数据库 > Oracle >>

Oracle测试常用表BIG_TABLE

Oracle测试常用表BIG_TABLE
 
创建测试用表,DBA经常用到,通常都是基于dba_objects来创建的比较多。
本文根据Tom大师的big_table进行了整理,供大家参考。 www.zzzyk.com  
一、基于Oracle 10g下的big_table
[sql] 
--==============================================  
-- Create a test table for Oracle 10g  
-- File   : cr_big_tb_10g.sql  
-- Author : Robinson 
--==============================================  
  
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  www.zzzyk.com  
[sql] 
--==============================================  
-- Create a test table for Oracle 11g  
-- File   : cr_big_tb_11g.sql  
-- Author : Robinson  
--==============================================  
  
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;  
    &
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,