SQL Server 2016 : Les nouveautés

Découvrir les nouvelles syntaxes Transact-SQL

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Faites le tour des nouveautés de syntaxe du langage Transact-SQL. Voyez notamment Drop if exists, ainsi que le contexte de session.
05:30

Transcription

Il est temps d'aborder les nouveautés en matière de code et d'optimisation. Mais d'abord de code : il y a quelques changements assez petits, assez fins sur Transact SQL, sur le langage lui-même. D'abord quelque chose qu'on pouvait déjà faire depuis SQL server 2012, mais qui s'est légèrement amélioré. C'est ici, voyez, je fais un « Create table » et à l'intérieur je définis un index. C'est quelque chose de relativement nouveau en SQL server de pouvoir créer comme ça un index « in line » en même temps qu'on définit la structure d'une table. Donc, ça, ce n'est pas forcément nouveau, mais ce qui est nouveau, comme vous pouvez le voir, c'est ici, le fait de pouvoir faire un index filtré. Donc, de rajouter la « close where » du filtre de la création de l'index dans une création d'index in line. Il y a une autre nouveauté qui touche aux index Columnstore mais dont je vais vous parler dans une vidéo dédiée. Autre nouveauté mais qui n'est plus une surprise maintenant, à ce stade de la formation puisqu'on l'a vu déjà beaucoup de fois, c'est le « Drop », « Drop » quelque chose, « Drop table », « Drop index », « Drop procédure IF exists». Ça, c'est très pratique parce que, bien entendu, on va pouvoir le lancer autant de fois qu'on veut, sans aucune erreur, que la table existe ou n'existe pas. Ça nous simplifie vraiment beaucoup la vie parce qu'auparavant il n'y avait qu'une seule solution : tester d'abord si la table existe avec « If exists» ou « If select from sys.tables » etc. Ou bien « If obbjectID » de la table n'est pas nul, bref, tout ça, c'est fini. On a cette syntaxe qui est très clean. Ça remplace également avantageusement la syntaxe de création d'index qui dit « Create index » quelque chose « With drop existing », qui est pratique encore dans certains cas mais qui a un défaut, c'est que lorsque je veux créer un index, s'il existe, je supprime l'existant, mais s'il n'existe pas, je vais avoir une erreur avec cette syntaxe parce qu'ici le « With drop existing » reclame réellement que l'index existe déjà pour pouvoir le supprimer. Ce « Drop index », par exemple, « If exists » permettrait de préfixer la création d'un index, et puis on n'aurait plus besoin de faire le « Drop exisitng ». Et bien sûr, le « Drop existing » reste pratique dans les cas où on veut simplement toujours refaire un index et on sait qu'il existe. Alors, une petite nouveauté intéressente pour les gens qui partitionnent leur table, en édition entreprise, c'est le « Truncate table» vous connaissez une syntaxe très ancienne qui permet de supprimer très rapidement le contenu d'une table. Rapidement parce que c'est logger dans le journal de transaction de facçon minimale. Mais c'est une syntaxe qui ne peut pas être utilisée lorsque la table a des clés etrangères, etc. Et on ne peut pas poser de « Close where », bien sûr. Donc, c'est toute la table. Mais il y a eu un ajout, c'est simple. C'est-à-dire qu'on peut lister les partitions sur lesquelles on veut faire le « Truncate table » si on a une table partitionnée, qui est très pratique pour vider complètement les partitions dans une stratégie de partition glissante. Vous videz complètement les partitions que vous définissez. C'est facile à comprendre et une fois de plus, très pratique. Un autre ajout intéressant pour pouvoir gérer des informations dans une session utilisateur, par exemple, à travers un programme « Client » qui va connecter un utilisateur et puis ensuite maintenir des informations dans la session. Ça peut être intéressant parce qu'on peut les récupérer dans un trigger ou aussi dans un prédicat de filtre pour la sécurité au niveau ligne qu'on vient de voir. C'est le fait d'avoir des « pères clés valeurs » stockés dans un contexte de session. J'ai pour cela une procédure stockée « sp_set_session_context ». Je lui dis quelle est la clé, je vais créer une clé, et puis je vais attribuer une valeur à cette clé. Je vais dire également est-ce que c'est du « read only » ou pas. Est-ce que je vais pouvoir modifier ensuite la valeur de la clé ou non ? Donc, je crée simplement ici une Clé1 et puis je mets une valeur. Alors j'ai mis exprès ici, vous voyez, un entier parce que le type de donnée de value c'est un SQL variante. Donc, vous pouvez mettre un entier ou bien une chaîne de caractère. Donc, c'est assez souple. J'y vais, et maintenant, à tout moment, j'ai une fonction « Session context » à laquelle je passe un paramètre, le nom d'une clé et elle me retourne, bien entendu, la valeur. Normalement on ne va stocker que quelques informations. Il ne faut pas prendre ça comme un entrepot de père clé valeur dans lequel on va stocker pratiquement une base de données toute entière. Pour surveiller le stockage en mémoire de ces clés valeurs vous avez dans « sys.dm_os_memory _cash_counters » une vue de gestion dynamique qui vous montre les cash en mémoire. Eh bien un type qui s'appelle « Cashestore_session_context ». Et en faisant cette requête vous pouvez voir à tout moment quel est l'espace mémoire occupé par ces informations de context de session.

SQL Server 2016 : Les nouveautés

Découvrez les nouveautés de SQL Server 2016. Voyez les options de configuration limitées aux bases de données, le chiffrage de données à partir des applications clientes, etc.

2h26 (27 vidéos)
Aucun commentaire n´est disponible actuellement

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !