Indices en SQL Server – ejercicios

Indices en SQL Server

Los índices permiten ordenar los registros de una tabla o vista de acuerdo a uno a mas campos en orden ascendente o descendente. (Ver índices)

Al crear tablas particionadas es recomendable crear índices particionados.

Ejercicios

Usando la base de datos Northwind

use Northwind
go

Crear INDICES

Create index NombreIndice
on Tabla/Vista (Campo1 ASC|DESC [, Campo2 Asc|Desc])
with (fillfactor = Valor , drop_existing = on) */

Crear índice para la tabla Categories, campo CategoryName

create index CategoriaNombreIDXa on Categories(Categoryname)
go

Listar los índices

Select * from sys.indexes
go

Buscar un índice específico

Select * from sys.indexes where name = ‘CategoriaNombreIDXa’
go

Script para crear el índice sólo si el índice no existe

if not exists (Select * from sys.indexes where name = ‘CategoriaNombreIDXa’)
Begin
create index CategoriaNombreIDXa on Categories(Categoryname)
End
go

RECOMENDACION: Usar un factor de relleno (fillfactor) de 80

Índice para la tabla Empleados

select * from Employees order by LastName, FirstName
go

Índice para LastName + FirstName

if not exists (Select * from sys.indexes where name = ‘EmpleadosApellidosNombresIDXa’)
Begin
Create index EmpleadosApellidosNombresIDXa on Employees (LastName, FirstName)
with (fillfactor = 80)
End
else — índice ya existe
Begin
Create index EmpleadosApellidosNombresIDXa on Employees (LastName, FirstName)
with (fillfactor = 80, drop_existing = on)
End
go

Eliminar un índice:

Drop Index NombreIndice on Tabla/Vista

Eliminar el índice CategoriaNombreIDXa de la tabla Categories

Drop index CategoriaNombreIDXa on Categories
go