Skip to content

Instantly share code, notes, and snippets.

@64lines
Last active August 5, 2016 05:20
Show Gist options
  • Select an option

  • Save 64lines/fe2b630ed8612d2f70b5 to your computer and use it in GitHub Desktop.

Select an option

Save 64lines/fe2b630ed8612d2f70b5 to your computer and use it in GitHub Desktop.
CREATE TABLE LLAMADAS_PARTICIONADA(
ID NUMBER(8),
FECHA_INICIO DATE,
DURACION NUMBER(8)
)
PARTITION BY RANGE("FECHA_INICIO")
(
PARTITION llamadas_enero2014 VALUES LESS THAN (TO_DATE('02/01/2014', 'MM/DD/YYYY')) TABLESPACE USERS,
PARTITION llamadas_febrero2014 VALUES LESS THAN (TO_DATE('03/01/2014', 'MM/DD/YYYY')) TABLESPACE USERS,
PARTITION llamadas_marzo2014 VALUES LESS THAN (TO_DATE('04/01/2014', 'MM/DD/YYYY')) TABLESPACE USERS,
PARTITION llamadas_abril2014 VALUES LESS THAN (TO_DATE('05/01/2014', 'MM/DD/YYYY')) TABLESPACE USERS,
PARTITION llamadas_mayo2014 VALUES LESS THAN (TO_DATE('06/01/2014', 'MM/DD/YYYY')) TABLESPACE USERS,
PARTITION llamadas_junio2014 VALUES LESS THAN (TO_DATE('07/01/2014', 'MM/DD/YYYY')) TABLESPACE USERS
);
-- Bulk con 20000 inserts (Cargar en memoria y luego cargar en la tabla)
DECLARE
TYPE tytabla IS TABLE OF LLAMADAS_REGULAR%ROWTYPE INDEX BY BINARY_INTEGER;
tbLlamadas tytabla;
counter number := 1 ;
BEGIN
FOR i IN 1..1200000 LOOP
tbLlamadas(i).id := i;
tbLlamadas(i).fecha_inicio := TO_DATE('01/0' || counter || '/2014', 'DD/MM/YYYY');
tbLlamadas(i).duracion := dbms_random.value(1,1000);
if i mod 200000 then
counter := counter + 1;
end if;
END LOOP;
FORALL j IN 1..tbLlamadas.COUNT
INSERT INTO LLAMADAS_REGULAR VALUES tbLlamadas(j);
END;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment