2016-03-25 17 views
0

Ich muss mehr als 500 Tabellen mit den gleichen Spalten, Indizes und Einschränkungen erstellen.Wie kann die Geschwindigkeit der Tabellenerstellung mit Index und Einschränkungen erhöht werden?

in folgenden Code I Tabelle namens table_1 erstellt haben wie weise ich Tabellen von table_1 zu TABLE_500 erstellen müssen ....

Es dauert für die Erstellung von 500 Tabellen und Indizes mehr Zeit.

Gibt es eine Möglichkeit, die Geschwindigkeit der Tabellenerstellung zu erhöhen?

CREATE TABLE TABLE_1 (FEATURE_ID NUMBER(*,0) NOT NULL ENABLE, 
         COL_1 VARCHAR2(3 CHAR), 
         COL_2 VARCHAR2(5 CHAR), 
         COL_3 NUMBER(*,0), 
         COL_4 NUMBER(*,0), 
         COL_5 VARCHAR2(5 CHAR), 
         COL_6 CHAR(5 BYTE), 
         COL_7 NUMBER(*,0), 
         COL_8 VARCHAR2(50 CHAR), 
         COL_9 NUMBER(*,0), 
         COL_10 VARCHAR2(20 CHAR), 
         GEOMETRY SDO_GEOMETRY);     

CREATE BITMAP INDEX TABLE_1_DM_IDX ON TABLE_1(COL_3); 

CREATE BITMAP INDEX TABLE_1_ATR_IDX ON TABLE_1(COL_4); 

CREATE INDEX TABLE_1_SPATIAL_IDX ON TABLE_1(GEOMETRY) 
INDEXTYPE IS MDSYS.SPATIAL_INDEX; 

ALTER TABLE TABLE_1 ADD CONSTRAINT TABLE_1_PK PRIMARY KEY (FEATURE_ID);  


ALTER TABLE TABLE_1 ADD CONSTRAINT TABLE_1_PK PRIMARY KEY (FEATURE_ID); 

Antwort

2

Erstellen Sie ein PLSQL-Skript, das die Namen für Sie erstellt.

begin 
     for i in 1..500 loop 
     execute immediate 'CREATE TABLE TABLE_'||i|| ' 
          (FEATURE_ID NUMBER(*,0) NOT NULL ENABLE, 
          COL_1 VARCHAR2(3 CHAR), 
          COL_2 VARCHAR2(5 CHAR), 
          ... '; 
     execute immediate 'CREATE BITMAP INDEX TABLE_'||i||'_DM_IDX ON TABLE_'||i||'(COL_3)'; 

     ... etc. 

     end loop; 
    end; 
/
Verwandte Themen