Vous utilisez l'INCLURE pour ajouter une ou plusieurs colonnes à niveau de la feuille d'un index non-cluster, si ce faisant, vous pouvez couvrir vos requêtes.
Imaginez que vous ayez besoin d'effectuer des requêtes pour un ID d'employé, ministère de l'ID, et lastname.
SELECT EmployeeID, DepartmentID, LastName
FROM Employee
WHERE DepartmentID = 5
Si vous avez un index non-cluster (Employé, DepartmentID), une fois que vous trouver les employés pour un département donné, vous avez maintenant à faire "recherche de signet" pour obtenir la pleine réelle enregistrement de l'employé, juste pour obtenir le nom de la colonne. Qui peut être assez coûteux en termes de performances, si vous trouvez un grand nombre de salariés.
Si vous aviez compris que le nom dans l'index:
CREATE NONCLUSTERED INDEX NC_EmpDep
ON Employee(EmployeeID, DepartmentID)
INCLUDE (Lastname)
alors toutes les informations dont vous avez besoin est disponible au niveau de la feuille de l'index non cluster. Juste en cherchant dans l'index non cluster et de trouver vos employés pour un département donné, vous avez toutes les informations nécessaires, et la recherche de signet pour chaque employé dans l'index n'est plus nécessaire --> vous économisez beaucoup de temps.
Évidemment, vous ne pouvez pas inclure chaque colonne, dans chaque index non-cluster - mais si vous avez des requêtes qui sont en manque juste une ou deux colonnes d'être "couvert" (et qui a beaucoup), il peut être très utile d'INCLURE dans un adapté index non ordonné en clusters.
Marc