Indices
Como se crean los índices?
Automáticamente: un índice único es creado automáticamente cuando se define una restricción primary key o unique en la definición de una tabla.
Manualmente: los usuarios pueden crear índices no únicos sobre columnas para acelerar el tiempo de acceso a las filas.
Crear indices sobre una o más columnas
CREATE INDEX emp_ename_idx
ON emp(ename);
Guía para la creación de un índice:
La columna es usada frecuentemente en una cláusula WHERE o en una condición JOIN.
La columna tiene un rango muy amplio de valores.
La columna contiene un gran número de valores nulos.
Dos o más columnas son usadas juntas con frecuencia en una cláusula WHERE o en una condición join.
La tabla es grande y se espera que la mayoría de las consultas recuperen menos del 2 al 4 % de las filas.
Verificación de índices:
SELECT ic.index_name, ic.column_name, ic.column_position col_pos, ix.uniqueness
FROM user_indexes ix, user_ind_columns ic
WHERE ic.index_name = ix.index_name
AND ic.table_name = “EMP”;
Eliminación de un índice;
DROP INDEX emp_ename_idx;
martes, 17 de febrero de 2009
Sequence
Create sequence
Defina una secuencia para generar números secuenciales automáticamente
CREATE SEQUENCE dept_deptno
Increment by 1
Start with 91
Maxvalue 100
Nocache
Nocycle;
Sequence es el nombre del generador de secuencia
Increment by n especifica el intervalo entre los números de la secuencia donde n es un entero. Si la cláusula es omitida, la secuencia se incrementará en 1.
Start with n especifica el valor máximo que la secuencia puede generar.
Maxvalue n especifica el valor máximo que la secuencia puede generar
Nomaxvalue especifica un valor máximo de 10^27 para una secuencia ascendente y -1 para una secuencia descendente .esta es la opción por defecto
Minvalue n especifica el valor mínimo de la secuencia.
Nominvalue especifica un valor mínimo de 1 para una secuencia ascendente y para una secuencia descendente. Esta es la opción por defecto
Cycle | nocycle especifica que la secuencia continua generando valores después de haber alcanzado su valor máximo o su valor mínimo, o bien no genera valore adicionales. La opción por defecto es NOCYCLE
Cache n | nocache especifica cuantos valores serán preasignados y mantenidos en la memoria del servidor oracle. Poro defecto, esta cantidad será igual a 20 valores.
Verificación de secuencias
SELECT sequence_name, min_value, max_value, increment_by, last_number
From user_sequences;
Modificación de una secuencia
Alter sequence dept_deptno
Increment by 1
Maxvalue 90
Nocache
Nocycle;
Eliminación de una secuencia:
Drop sequence dept_depto;
Nextval retorna el próximo valor disponible de la secuencia. Devuelve un valor único cada vez que es referenciada, aún por diferentes usuarios.
Ejemplo:
Insertar un nuevo departamento llamado “MARKETING” en san diego.
INSERT INTO dept(deptno, dname, loc)
VALUES (dept_deptno.NEXTVAL, ‘MARKETING’, ‘SAN DIEGO’);
Defina una secuencia para generar números secuenciales automáticamente
CREATE SEQUENCE dept_deptno
Increment by 1
Start with 91
Maxvalue 100
Nocache
Nocycle;
Sequence es el nombre del generador de secuencia
Increment by n especifica el intervalo entre los números de la secuencia donde n es un entero. Si la cláusula es omitida, la secuencia se incrementará en 1.
Start with n especifica el valor máximo que la secuencia puede generar.
Maxvalue n especifica el valor máximo que la secuencia puede generar
Nomaxvalue especifica un valor máximo de 10^27 para una secuencia ascendente y -1 para una secuencia descendente .esta es la opción por defecto
Minvalue n especifica el valor mínimo de la secuencia.
Nominvalue especifica un valor mínimo de 1 para una secuencia ascendente y para una secuencia descendente. Esta es la opción por defecto
Cycle | nocycle especifica que la secuencia continua generando valores después de haber alcanzado su valor máximo o su valor mínimo, o bien no genera valore adicionales. La opción por defecto es NOCYCLE
Cache n | nocache especifica cuantos valores serán preasignados y mantenidos en la memoria del servidor oracle. Poro defecto, esta cantidad será igual a 20 valores.
Verificación de secuencias
SELECT sequence_name, min_value, max_value, increment_by, last_number
From user_sequences;
Modificación de una secuencia
Alter sequence dept_deptno
Increment by 1
Maxvalue 90
Nocache
Nocycle;
Eliminación de una secuencia:
Drop sequence dept_depto;
Nextval retorna el próximo valor disponible de la secuencia. Devuelve un valor único cada vez que es referenciada, aún por diferentes usuarios.
Ejemplo:
Insertar un nuevo departamento llamado “MARKETING” en san diego.
INSERT INTO dept(deptno, dname, loc)
VALUES (dept_deptno.NEXTVAL, ‘MARKETING’, ‘SAN DIEGO’);
check y constraints
CHECK
Comprueba que se cumpla una condición determinada al rellenar esa columna. Esta condición sólo debe estar construida con columnas de esta misma tabla.
CONSTRAINT emp_deptno_ck
CHECK (DEPTNO BETWEEN 10 AND 99), ….
Eliminación de una constraint:
Alter table emp
Drop constraint nombre de la constriaint;
Otro ejemplo:
ALTER TABLE Dept
DROP PRIMARY KEY CASCADE;
Desactivar constraints:
Utilice la opción CASCADE para desactivar constraints dependientes.
Alter table emp
Disable constraint emp_empno_pk CASCADE;
Activar constraints:
Alter table emp
Enable constraint emp_empno_pk;
Comprueba que se cumpla una condición determinada al rellenar esa columna. Esta condición sólo debe estar construida con columnas de esta misma tabla.
CONSTRAINT emp_deptno_ck
CHECK (DEPTNO BETWEEN 10 AND 99), ….
Eliminación de una constraint:
Alter table emp
Drop constraint nombre de la constriaint;
Otro ejemplo:
ALTER TABLE Dept
DROP PRIMARY KEY CASCADE;
Desactivar constraints:
Utilice la opción CASCADE para desactivar constraints dependientes.
Alter table emp
Disable constraint emp_empno_pk CASCADE;
Activar constraints:
Alter table emp
Enable constraint emp_empno_pk;
Suscribirse a:
Entradas (Atom)