> Mobilite > INLINE INDEX CREATION et variables table

INLINE INDEX CREATION et variables table

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

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 gratuitement cette ressource

Découvrir DevOps, l’essentiel pour tous les métiers

Découvrir DevOps, l’essentiel pour tous les métiers

Vous vous intéressez aux systèmes d’informations innovants ainsi qu’aux notions d’agilité dans le monde de IT ?DevOps est une démarche qui permet aux équipes de développement et d’infrastructure de collaborer plus efficacement face à ces nouvelles exigences du mode logiciel. À l’ère du continuous delivery et du cloud, DevOps s’inscrit dans le prolongement des méthodes agiles et s’inspire d’autres expériences telles que Lean Startup, Scrum… L’originalité de ce livre est d’aborder le sujet sous différents points de vue pour répondre au mieux aux problématiques de tous les métiers concernés qu’il s’agisse des développeurs, des opérationnels, mais aussi du management de la DSI et des acteurs métiers. Cet ouvrage offre ainsi une vision à 360° de la démarche DevOps.

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