
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