> 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

Comment sécuriser une PME avec l’approche par les risques ?

Comment sécuriser une PME avec l’approche par les risques ?

Disposant de moyens financiers et humains contraints, les PME éprouvent des difficultés à mettre en place une véritable stratégie de cybersécurité. Opérateur de services et d’infrastructures, Naitways leur propose une approche pragmatique de sécurité « by design » en priorisant les risques auxquelles elles sont confrontées.

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

A lire aussi sur le site

Revue Smart DSI

La Revue du Décideur IT