
Uso de Include en Indices SQL Server
El uso de include en los índices permite ampliar la funcionalidad de los índices no agrupados. Para más información de índices Ver Indices en SQL Server.
Beneficios del uso de Include
- Se pueden usar tipos de datos no permitidos en índices
- No son considerados como una columna mas en la cantidad de columnas del índice o en el tamaño del índice. La cantidad de columnas máxima en un índice es 32.
- Recuerde que el tamaño máximo del índice es de 1,700 bytes.
- Aumenta la efectividad de las consultas
Limitaciones
- Se usan en sólo índices no agrupados
- Se pueden usar todos los tipos de datos excepto text, ntext, and image
- No se pueden eliminar las columnas incluidas con Include salvo que se elimine primero el índice.
Ejercicios
Usando la base de datos Northwind
use Northwind
go
Ejercicio 1
Crear un índice para la tabla productos por la descripción, incluir
los campos Unidad y Precio
Create index ProductosDescripcionIDXinUnidadPrecio on
Products (ProductName)
Include ([QuantityPerUnit],[UnitPrice])
go
Ejercicio 2
Crear un índice para Empleados por LastName y FirstName,
incluir Title y Address
Create index EmpleadosCargoDireccionIDXi on
Employees (LastName, FirstName)
Include (Title , Address)
go


Ver los índices creados
select * from sys.indexes where name like ‘Empleados%’
or name like ‘Productos%’
go
Ejercicio 3
Crear un índice para Clientes (Customers) para el campo
ContactName, incluir Country, Region y City
Asignar factor de relleno de 70 y dar consistencia si existe.
if not exists
(select * from sys.indexes where name = ‘ClientesContactoIDX’)
Begin
Create index ClientesContactoIDX
on Customers([ContactName])
include (Country, Region , City)
with fillfactor = 70
End
Else
Begin
Create index ClientesContactoIDX
on Customers([ContactName])
include (Country, Region , City)
with (fillfactor = 70, drop_existing = on)
End
go
Cambiar el nombre al índice
Para cambiar el nombre de un objeto en la base de datos se utiliza el procedimiento almacenado sp_rename, especìficamente para cambiar el nombre a un índice la sintaxis es como sigue
Execute sp_rename ‘Tabla.NombreIndiceOriginal’, ‘NuevoNombre’, ‘INDEX’
go
Ejercicio 4
Cambiar el nombre del índice ProductosDescripcionIDXinUnidadPrecio
por ProductosNombreUnidadPrecioIDX
Execute sp_rename ‘Products.ProductosDescripcionIDXinUnidadPrecio’,
‘ProductosNombreUnidadPrecioIDX’, ‘Index’
go
Resultado
Precaución: al cambiar cualquier parte del nombre de un objeto pueden dejar de ser scripts válidos y procedimientos almacenados.