Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. DROP TABLE child purge
  2. ;
  3. DROP TABLE mother purge
  4. ;
  5. DROP SEQUENCE sqMother
  6. ;
  7. DROP SEQUENCE sqChild
  8. ;
  9. CREATE TABLE mother
  10. (
  11.     id       NUMBER(10,0)
  12.              NOT NULL
  13.              CONSTRAINT coPKMother
  14.                PRIMARY KEY
  15.                USING INDEX
  16.                
  17.   , firstName VARCHAR(50)
  18.               NOT NULL
  19.              
  20.   , lastName  VARCHAR(50)
  21.               NOT NULL
  22.              
  23.   , gender    CHAR(01)
  24.               NOT NULL
  25.               CONSTRAINT coCHMotherGender
  26.                 CHECK (gender = 'F')
  27.                
  28.   , dateBorn  DATE
  29.               NOT NULL
  30.              
  31.  , hairColor   VARCHAR2(20)
  32.                NOT NULL
  33.                
  34.  , meaninglessData CHAR(100)
  35.                    NOT NULL
  36. )
  37. ;
  38.  
  39. CREATE TABLE child
  40.  (
  41.      id      NUMBER(10,0)
  42.              NOT NULL
  43.              CONSTRAINT coPKChild
  44.                PRIMARY KEY
  45.                USING INDEX
  46.                
  47.   , firstName VARCHAR(50)
  48.               NOT NULL
  49.              
  50.   , lastName  VARCHAR(50)
  51.               NOT NULL
  52.              
  53.   , gender    CHAR(01)
  54.               NOT NULL
  55.               CONSTRAINT coCHChildGender
  56.                 CHECK (gender IN ('F','M'))
  57.              
  58.   , yearBorn  NUMBER(4,0)
  59.              
  60.   , motherId  NUMBER(10,0)
  61.               NOT NULL
  62.               CONSTRAINT coFKChildMother
  63.                 references mother
  64.              
  65.   , meaninglessData CHAR(100)
  66.                     NOT NULL
  67.    )
  68. ;
  69.  
  70. CREATE SEQUENCE sqMother
  71.   START WITH 1
  72.   INCREMENT BY 1
  73.   noMaxValue
  74.   cache 20
  75. ;
  76.  
  77. CREATE SEQUENCE sqChild
  78.   START WITH 1
  79.   INCREMENT BY 1
  80.   noMaxValue
  81.   cache 20
  82. ;
  83. COMMIT
  84. ;
  85. /
  86. DECLARE
  87.  
  88.   noOfMothers           CONSTANT int := 50000;
  89.   noOfChildrenPerMother CONSTANT int := 5;
  90.  
  91. BEGIN
  92.  
  93.   FOR m IN 1..noOfMothers LOOP
  94.  
  95.      INSERT
  96.        INTO mother (id, firstname, lastname, gender, dateBorn, hairColor, meaninglessData)
  97.        VALUES      (  sqMother.NEXTVAL
  98.                     , 'First name ' || TO_CHAR(sqMother.CURRVAL)
  99.                     , 'Last Name ' || TO_CHAR(sqMother.CURRVAL)
  100.                     , 'F'
  101.                     , TO_DATE('1980-01-01 00:00:00','YYYY-MM-DD hh24:mi:ss')
  102.                        + TO_YMINTERVAL(TO_CHAR(FLOOR(dbms_random.VALUE(1,30))) || '-' || TO_CHAR(FLOOR(dbms_random.VALUE(1,12))) )
  103.                     ,  CASE MOD(m,100)
  104.                           WHEN 0 THEN 'blond'
  105.                           ELSE        'brown'
  106.                        END
  107.                     , 'x');
  108.                
  109.   END LOOP;
  110.  
  111.     FOR c IN 1..noOfChildrenPerMother LOOP
  112.        FOR m IN (SELECT id FROM mother) LOOP
  113.  
  114.          INSERT
  115.          INTO child (id, firstname, lastname, gender, yearBorn, motherID, meaninglessdata)
  116.          VALUES     (sqChild.NEXTVAL, 'Child first ' || TO_CHAR(sqChild.CURRVAL) ,
  117.                      'Child no ' || TO_CHAR(c) || 'of mother ' || TO_CHAR(m.id),
  118.                      'M'
  119.                      , (EXTRACT(YEAR FROM (ADD_MONTHS(SYSDATE, -12 * c))) - 1), m.id, 'y' );
  120.    
  121.     END LOOP;
  122.  
  123.   END LOOP;
  124.  
  125.   COMMIT;
  126.  
  127. END;
  128. /
  129. -- -------------------------------------------------------
  130. EXECUTE DBMS_STATS.GATHER_TABLE_STATS ('mircea','MOTHER');
  131. /
  132. EXECUTE DBMS_STATS.GATHER_TABLE_STATS ('mircea','CHILD');
  133. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement