> Mobilité > INLINE INDEX CREATION et variables table

INLINE INDEX CREATION et variables table

Mobilité - Par Olivier Maître - Publié le 12 mai 2015
email

SQL 2014 est disponible, depuis le 1er avril 2014, avec son lot de nouveautés.

INLINE INDEX CREATION et variables table

Beaucoup d’articles et de posts ont été écrits sur les améliorations majeures telles que le In Memory ou encore l’ « Updatable clustered column stored index », tandis que d’autres, plus discrètes, moins impressionnantes demeurent moins connues. Le « Inline Index Creation » fait partie de cette deuxième catégorie, et sera l’objet de notre article aujourd’hui.

Présentation de la création d’index en ligne

L’idée est fort simple : nous avons dorénavant, avec SQL Server 2014, la possibilité de créer des index directement dans la commande CREATE TABLE. Par exemple, l’instruction suivante crée une table nommée table_1 avec un index clustered sur la colonne 1 col1 et un index non clustered sur les colonnes 2 et 3 col2 et col3 : voir listing 1.

CREATE TABLE Table_1
(
Col1 int INDEX IDX_NCL_Col1 CLUSTERED (Col1),
Col2 varchar(255) INDEX IDX_NCL_Col2Col3
NONCLUSTERED (Col2, Col3),
Col3 int
)

Vérification :

(((IMG7597)))

Petite remarque au passage sur la syntaxe de création de l’index INLINE SQL Server 2014. J’ai choisi de placer ma création d’index au niveau de la déclaration de chaque colonne, mais j’aurai très bien pu la spécifier à la fin, après avoir spécifié les colonnes de ma table, comme suit :

CREATE TABLE Table_1
(
Col1 int,
Col2 varchar(255),
Col3 int,
INDEX IDX_NCL_Col1 CLUSTERED (Col1),
INDEX IDX_NCL_Col2Col3 NONCLUSTERED (Col2, Col3)
)

Les deux écritures sont équivalentes.

Pratique non ? Certes, mais cette syntaxe comporte des restrictions : il est malheureusement impossible de créer des index avec une clause INCLUDE, de même, il est impossible de créer des index en ligne filtrés.

En revanche, nous pouvons nous intéresser à son application dans le cadre des variables temporaires.

En effet, il était alors impossible de créer un index autre qu’au travers d’une clé primaire sur une variable de type table. Voyons ce qu’il est possible de faire maintenant, et rouvrons le débat : variables table @table VS table temporaire #table.


Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

Mobilité - Par Olivier Maître - Publié le 12 mai 2015