Download Creacion - WordPress.com

Document related concepts

SQL wikipedia , lookup

Lenguaje de definición de datos wikipedia , lookup

Transcript
ÍNDICES
Investigar sobre bases de datos:
¿Qué es un índice?
Definición de Índices
Un índice es una estructura de datos que permite acceder a diferentes filas de una misma
tabla a través de un campo (o campos clave).
Los índices se actualizan automáticamente cuando realizamos operaciones de escritura en
la base de datos. Este es un aspecto
muy
importante de cara al rendimiento de las operaciones de escritura, ya que además de
escribir los datos en la tabla se escribiran también en el índice. Un número elevado de
índices hará más lentas estas operaciones. Sin embargo, salvo casos excepcionales, el
beneficio que aportan los indices compensa (de largo) esta penalización.
¿Para qué se utilizan los índices en bd?
Un índice permite un acceso mucho más rápido a los datos.
¿Cuál es la sintaxis de un índice en bd?
CREATE [UNIQUE] INDEX <nombre_indice>ON <nombre_tabla>(
<nombre_campo> [ASC | DESC]
{,<nombre_campo> [ASC | DESC]})
);
La pálabra clave UNIQUE especifica que que no pueden existir claves duplicadas en el
índice.
ASC | DESC especifican el criterio de ordenación elegido, ascendente o descendente, por
defecto es ascendente.
Ejemplo: En el apartado dedicado a la definición de tablas creamos la tabla tClientes, este
ejmplo crea un índice único en el campo NIF. Esto nos permitirá buscar mucho mas
rápido por el campo NIF y nos asegurará que no tengamos dos NIF iguales.
CREATE UNIQUE INDEX UIX_CLIENTES_NIFON tCLIENTES (NIF);
Elabora un script para la creación, actualización, y eliminación de un
índice en una base de datos.
Creación del índice
CREATE
INDEX indice1
ON dbo.spt_values (number DESC, name DESC );
Actualizacion del indice
update statistics dbo.spt_values with fullscan
Eliminacion de del indice
DROP INDEX indice1
ON dbo.spt_values;
Menciona 3 ventajas y desventajas de los índices en las bases de datos.
Ventajas
Una de las mayores ventajas es que cuando Mysql se encuentra un índice evitamos un “escaneo
completo de la tabla” lo que hace que cuando tenemos grandes cantidades de datos en nuestras tablas,
la mejora puede ser muy importante.
Muy relacionado con el anterior… al evitar “escaneos completos de las tablas”, evitamos los siguientes
problemas: Sobrecarga de CPU, sobrecarga de disco y concurrencia.
Con los índices evitamos que Mysql tenga que hacer lecturas secuenciales.
Los índices nos permiten una mayor rápidez en la ejecución de las consultas tipo SELECT lo que sea
WHERE …
Y por último será una ventaja para aquellos campos que no tengan datos duplicados, sin embargo si es
un campo con valores que se repiten continuamente (Ej. Masculino/Femenino) no es aconsejable.
Desventajas
Pero a pesar de sus grandes ventajas no debemos abusar de ellos puesto que en determinadas
situaciones no supondrá una mejora:
Los índices son una desventaja en aquellas tablas las que se utiliza frecuentemente operaciones de
escritura (Insert, Delete, Update), esto es porque los índices se actualizan cada vez que se modifica una
columna.
Los índices tambien suponen una desventaja en tablas demasiado pequeñas puesto que no
necesitaremos ganar tiempo
en las consultas.
Tampoco son muy aconsejables cuando pretendemos que la tabla sobre la que se aplica devuelva una
gran cantidad de datos en cada consulta.
Por último hay que tener en cuenta que ocupan espacio y en determinadas ocasiones incluso más
espacio que los propios datos.
FORMATO DE ENTREGA
PRÁCTICA DE ÍNDICES
NOMBRE DEL ALUMNO:
ACTIVIDAD
CÓDIGO SQL
Seleccionar la base
de datos Master.
USE master
Seleccionar todos los
registros de la tabla
dbo.spt_values.
select * from dbo.spt_values
Crear un índice
llamado indice1 para
los campos name y
number de manera
descendente.
CREATE INDEX indice1
ON dbo.spt_values (number DESC, name DESC );
Explica la manera en
como un índice
mejora el rendimiento
de las bases de datos.
Para que las consultas sean más rápidas y de una forma más ordenada
para poder encontrar o saber ubicar lo que buscamos.
Eliminar el índice
llamado indice1.
DROP INDEX indice1
ON dbo.spt_values;
Crear un índice único
para el campo type de
CREATE unique INDEX unico
ON dbo.spt_values (type);
la tabla
dbo.spt_values.
delete dbo.spt_values where [type]='V'
NOMBRE DEL ALUMNO:
Sirve para identificar de forma única cada registro de una tabla
¿Para que utilizas el
UNIQUE en la
creación de un índice?
Anota el script para
habilitar y deshabilitar
un índice en
sqlServer.
Alter index indice1
ON dbo.spt_values
Disable
Alter index indice1
ON dbo.spt_values
REBUILD
Explica el
funcionamiento de los
comandos DISABLE y
REBUILD.
Anota tus referencias
de las investigaciones
que realizaste
Disable sirve para deshabilitar
Y rebuid se usa para reparar la base de
datos master o cambiarle la collation.
http://sql.1keydata.com/es/sql-create-index.php
http://www.devjoker.com/contenidos/Tutorial-SQL-/12/Indices.aspx
http://msdn.microsoft.com/es-es/library/ms190691.aspx