FI 10 – 16 décembre 2008 – page 14
colonne est de type SPARSE permet de récupérer l’espace
occupé normalement par les valeurs NULL. Ce gain permet
d’optimiser aussi bien le stockage que la manipulation de
données, il y a moins d’octets à lire:
CREATE TABLE PRODUITS (
ID_PRODUIT INT NOT NULL IDENTITY (1,1),
DESIGNATION NVARCHAR(50) NOT NULL,
PRIX FLOAT NOT NULL,
REMARQUES NVARCHAR(100) SPARSE NULL)@
;@
fi l e S t r e a M
On peut depuis longtemps stocker des fichiers ou des
objets binaires (BLOB). Depuis 2005, on les stocke dans un
champ du type VARBINARY(max). Les options de stockage
des tables permettent sans problème de stocker de très grosses
quantités de données avec un bon niveau de performances,
cependant, il y avait un cas où SQL Server n’était pas très à
l’aise: celui de fichiers (champs) contenant un stream continu
de données (par exemple un fichier vidéo ). En effet dans ce
cas il monopolise beaucoup de ressources, car il doit placer
la totalité du contenu du champ dans un buffer de transfert.
FILESTREAM permet de contourner ce problème en stockant
la donnée sous la forme d’un fichier NTFS classique, ce qui
permet de récupérer simplement un pointeur sur le fichier
et de lire les données sous la forme d’un stream:
CREATE TABLE VIDEODATA (
ID_VIDEO INT PRIMARY KEY,
VIDEO VARBINARY(MAX) FILESTREAM NULL);@
De s n o u V e a u t é s D a n s l e s
P e r F o r m a n c e s
Co M p r e S S i o n d e S d o n n é e S
SQL Server 2008 supporte la compression à tous les
niveaux, le plus évident et le plus utilisé est dans les backups.
Mais il est également possible de compresser directement
les données d’une table, d’un index ou d’une partition. Il
est évident que la compression apporte son lot d’avantages
comme une utilisation optimale de l’espace disque et une
diminution du volume de données transférées lors d’une
requête, mais cela se fait au prix d’une charge CPU plus
élevée. Pour une bonne utilisation de la compression, il est
indispensable d’effectuer une batterie de tests avec le profiler
par exemple.
CREATE TABLE UTILISATEURS (
IDUTILISATEUR INT PRIMARY KEY NOT NULL
IDENTITY(1,1),
NOM NVARCHAR(50) NULL,
PRENOM NVARCHAR(50) NULL)@
WITH (DATA_COMPRESSION = PAGE)@
re S o u r C e go V e r n o r
Cette fonctionnalité est l’une des plus attendues de SQL
Server. Il permet de gérer exactement les ressources du serveur
(CPU, Mémoire). Fini les transactions lourdes qui vampi-
risent le serveur, ne laissant quasiment rien pour d’autres
clients. Il est maintenant possible de définir des limitations
et plans de charge par connexion ou par application. Cela
permet également de définir des priorités entre différentes
applications.
et e n C o r e …
Il serait possible de citer encore beaucoup d’améliora-
tions dans le cadre des processus d’optimisation, des plans
d’exécution, du parallélisme, etc.
De s n o u V e a u t é s D a n s l a s é c u r i t é
Ch i f f r e M e n t t r a n S p a r e n t
Il existe déjà des API permettant de chiffrer des champs et
toute une hiérarchie de gestion des clés et des certificats pour
gérer la sécurité des données. Cependant, le chiffrement et
le décodage devaient se faire au moment de l’utilisation des
données en T-SQL, ce qui avait pour conséquence d’alourdir
le code. Il est maintenant possible de chiffrer directement
toute une base de données, et ce, de manière totalement
transparente pour tous les utilisateurs:
ALTER DATABASE DBO.PASSWORD
SET ENCRYPTION ON
ut i l i S a t i o n d e C l é S e x t e r n e S
Il est maintenant possible d’utiliser une gestion centralisée
des clés de chiffrement (PKI).
De s n o u V e a u t é s P o u r l e s
a D m i n i s t r a t e u r s
po l i C y fr a M e w o r k (Administration
par Règles)
Cette fonctionnalité permet – enfin – aux administra-
teurs d’édicter des règles de gestion et de nommage pour les
bases de données et de les faire respecter ! Cela est réalisé en
définissant des conditions, par exemple que toutes les tables
doivent faire partie d’un schéma spécifique autre que DBO.
On définit ensuite une règle de gestion et on peut évaluer le
résultat sur les bases déjà existantes. Il est également possible
de forcer une règle à tout moment et ainsi interdire l’exé-
cution d’un script ou d’une requête qui ne s’y conformerait
pas. Attention cependant au syndrome Je comprends pas,
tout fonctionnait parfaitement avant et maintenant y’a tout
qui plante !!!
fo n C t i o n S d’a u d i t
Cette fonctionnalité ressemble beaucoup au TRACE déjà
existant, mais elle s’adresse plus aux administrateurs qu’aux
développeurs. Elle permet d’auditer certaines opérations et
d’enregistrer des informations dans un fichier de log ou dans
le journal des évènements:
CREATE SERVER AUDIT AuditEffacement TO
APPLICATION LOG@
CREATE DATABASE AUDIT SPECIFICATION AUDIT
SUPPRESSION UTILISATEURS@
FOR SERVER AUDIT AuditEffacement@
ADD (DELETE ON DBO.UTILISATEURS)@
SQL Server 2008 – le fin du fin pour vos données