Uso de Include en indices SQL Server

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

Campos LastName y FirstName para el índice creado
Campos Title y Address incluidos en el índice con Include

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.