Améliorations des fonctionnalités de programmation (moteur de base de données)

Les améliorations de programmabilité dans le Moteur de base de données incluent de nouvelles fonctionnalités de stockage des données, de nouveaux types de données, une nouvelle architecture de recherche en texte intégral et de nombreuses améliorations et ajouts à Transact-SQL.

Stockage de données

Stockage compressé des tables et des index

SQL Server 2008 prend en charge la compression de stockage sur disque dans les formats de ligne et de page pour les tables, les index et les vues indexées. La compression des tables partitionnées et des index peut être configurée indépendamment pour chaque partition. Pour plus d'informations, consultez Création de tables et d'index compressés.

Stockage FILESTREAM

Le stockage FILESTREAM permet aux applications SQL Server de stocker des données non structurées, telles que des documents et des images, dans le système de fichiers. Cela permet aux applications clientes de tirer parti des API de diffusion et des performances du système de fichiers, tout en maintenant la cohérence transactionnelle entre les données non structurées et les données structurées correspondantes. Pour plus d'informations, consultez Conception et implémentation du stockage FILESTREAM.

Nouveaux classements

SQL Server 2008 introduit de nouveaux classements qui sont en alignement complet avec les classements que fournit Windows Server 2008. Ces 80 nouveaux classements sont dénotés par des références de version *_100. Ils offrent aux utilisateurs les conventions de tri culturelles les plus exactes linguistiquement et les plus récentes. Pour plus d'informations, consultez Prise en charge d'Unicode et du classement et Utilisation des classements.

Basculement de partition sur les tables partitionnées et les index

Le partitionnement des données permet de gérer des sous-ensembles de données et d'y accéder facilement et efficacement, tout en conservant l'intégrité de la collecte de données au complet. Vous pouvez maintenant utiliser le basculement de partition pour transférer rapidement et efficacement des sous-ensembles de vos données en basculant une partition d'une table vers une autre.

Pour plus d'informations sur les concepts liés au basculement de partition et pour obtenir un exemple de code mettant en œuvre le basculement de partition, consultez Transfert efficace de données à l'aide du commutateur de partitionnement et Commutation de partitions lors de la définition de vues indexées.

Colonnes fragmentées et jeux de colonnes

Les colonnes fragmentées sont des colonnes ordinaires qui ont un format de stockage optimisé pour les valeurs NULL. Envisagez d'utiliser des colonnes fragmentées lorsque au moins 20 à 40 pour cent des valeurs dans une colonne seront NULL. Pour plus d'informations, consultez Utilisation de colonnes fragmentées.

Les tables qui utilisent des colonnes fragmentées peuvent désigner un jeu de colonnes pour retourner toutes les colonnes fragmentées dans la table. Un jeu de colonnes est une représentation XML non typée qui combine toutes les colonnes fragmentées d'une table dans une sortie structurée. Pour plus d'informations, consultez Utilisation de jeux de colonnes.

Stockage, méthodes et indexation des données spatiales

Les données spatiales représentent des informations relatives à l'emplacement physique et à la forme d'objets géométriques. Ces objets peuvent être des emplacements de points ou des objets plus complexes tels que des pays, des routes ou des lacs.

Pour plus d'informations, consultez Utilisation de données spatiales (moteur de base de données), Référence de méthodes de type de données geometry et Référence de méthodes de type de données geography.

Les index spatiaux améliorent le rendement de certaines opérations basées sur les ensembles exécutées sur les objets spatiaux (données spatiales). Un index spatial réduit le nombre d'objets sur lesquels des opérations spatiales relativement coûteuses doivent être appliquées. Pour plus d'informations, consultez Utilisation d'index spatiaux (moteur de base de données).

Tableaux larges

Les tableaux larges sont des tableaux qui contiennent un ou plusieurs jeux de colonnes. Un tableau large peut contenir jusqu'à 30 000 colonnes, 1 000 index et 30 000 statistiques. Pour plus d'informations, consultez Types de table spéciaux.

Types de données

Types de données de date et d'heure

SQL Server 2008 introduit quatre nouveaux types de données de date et d'heure. Ces types permettent aux applications d'avoir des types séparés pour la date ou l'heure, une plage d'années augmentée, une précision à la fraction de seconde augmentée et une prise en charge du décalage de fuseau horaire. Pour plus d'informations, consultez Utilisation des données de date et d'heure.

Type de données hierarchyid

SQL Server 2008 introduit un nouveau type de données fourni par le système pour encapsuler des relations hiérarchiques. Le type de données hierarchyid permet de créer des tables avec une structure hiérarchique ou de référencer la structure hiérarchique de données à un autre emplacement. Utilisez des méthodes hiérarchiques pour interroger des données hiérarchiques et effectuer un travail sur celles-ci en utilisant Transact-SQL.

Voici quelques exemples où le type hierarchyid simplifie le stockage et l'interrogation de données hiérarchiques :

  • Structure d'organisation

  • Système de fichiers

  • Ensemble de tâches dans un projet

  • Taxonomie de termes langagiers

  • Graphique de liens entre pages Web

Le type de données CLR SqlHierarchyId connexe est disponible pour les applications clientes. Pour plus d'informations, consultez Utilisation des types de données hierarchyid (moteur de base de données).

Types de données spatiales

SQL Server 2008 introduit deux types de données spatiales : geometry et geography. Le type de données geometry prend en charge les données planaires, ou Euclidiennes (monde en deux dimensions). Le type de données geography stocke des données ellipsoïdales, telles que des coordonnées de latitude et de longitude GPS. Ces nouveaux types de données prennent en charge le stockage et la manipulation d'objets de données spatiales tels que les linestrings, les points et les polygones. Pour plus d'informations, consultez Utilisation de données spatiales (moteur de base de données).

Type de table défini par l'utilisateur

Le Moteur de base de données introduit un nouveau type de table défini par l'utilisateur qui prend en charge la représentation de structures de table pour une utilisation en tant que paramètres dans des procédures stockées et des fonctions, ou dans un lot ou le corps d'une procédure stockée ou fonction. Vous pouvez créer des contraintes et des clés primaires uniques sur les types de table définis par l'utilisateur.

Pour plus d'informations, consultez Types de tables définis par l'utilisateur.

Types définis par l'utilisateur (UDT)

La taille maximale d'un UDT a été augmentée à 2 147 483 647 octets.

Recherche en texte intégral

La recherche en texte intégral SQL Server 2008 Enterprise introduit une nouvelle architecture de texte intégral. La recherche en texte intégral est maintenant une fonctionnalité complètement intégrée d'une base de données. En conséquence, la recherche en texte intégral a été améliorée considérablement dans les domaines suivants :

  • Les catalogues de texte intégral sont intégrés dans la base de données plutôt que stockés dans le système de fichiers ; par conséquent, le déplacement d'une base de données déplace maintenant automatiquement les catalogues de texte intégral.

  • Les mots parasites SQL Server 2005 ont été remplacés par les mots vides. La configuration des mots vides est gérée par un nouveau jeu d'objets de liste de mots vides. Ces objets sont associés à la base de données et déplacés avec elle. Cela maintient intacte la configuration de mot vide pendant les opérations de facilité de gestion telles que la sauvegarde et la restauration, le détachement et l'attachement, ainsi que la copie d'une base de données avec l'Assistant Copie de base de données. Pour plus d'informations, consultez Mots vides et listes de mots vides.

  • Les performances d'interrogation et d'indexation ont été améliorées considérablement dans certains scénarios spécifiques suite à l'intégration avec d'autres composants de requête importants tels que l'optimiseur de requête. Pour plus d'informations, consultez Paramétrage et optimisation des performances des index de recherche en texte intégral.

  • Les nouveaux outils vous aident à comprendre le contenu brut d'un index de recherche en texte intégral et le comportement d'un analyseur lexical spécifique dans un terme de requête ou une expression donné(e). Pour plus d'informations, consultez sys.dm_fts_index_keywords (Transact-SQL), sys.dm_fts_index_keywords_by_document (Transact-SQL) et sys.dm_fts_parser (Transact-SQL). Celles-ci et d'autres nouvelles vue de gestion dynamique et procédures stockées facilitent la résolution des problèmes de recherche en texte intégral. Pour plus d'informations sur ces ressources de dépannage, consultez Dépannage de la recherche en texte intégral.

  • Une nouvelle famille d'analyseurs lexicaux améliore l'exactitude de l'analyse lexicale et étend le jeu de langues disponibles pour la recherche en texte intégral. Pour plus d'informations, consultez Analyseurs lexicaux et générateurs de formes dérivées.

Pour plus d'informations, consultez Modifications du comportement de la recherche en texte intégral dans SQL Server 2008, Fonctionnalités de la recherche en texte intégral désapprouvées dans SQL Server 2008, Modifications importantes apportées à la recherche en texte intégral dans SQL Server 2008 et Architecture de la recherche en texte intégral.

Transact-SQL

Niveau de compatibilité

ALTER DATABASE SET COMPATIBILITY_LEVEL remplace sp_dbcmptlevel pour définir le niveau de compatibilité de la base de données. Pour plus d'informations, consultez Niveau de compatibilité ALTER DATABASE (Transact-SQL).

Opérateurs composés

Des opérateurs qui effectuent une opération et définissent une variable sur le résultat, par exemple SET @x += 2, sont disponibles. Pour plus d'informations, consultez Opérateurs composés (Transact-SQL).

Fonction CONVERT

La fonction CONVERT a été améliorée afin d'autoriser les conversions entre les valeurs hexadécimales binaires et caractères. Pour plus d'informations, consultez CAST et CONVERT (Transact-SQL).

Fonctionnalité de date et d'heure

SQL Server 2008 inclut la prise en charge du système ISO de date-semaine. Pour plus d'informations, consultez DATEPART (Transact-SQL).

GROUPING SETS

Les opérateurs GROUPING SETS, ROLLUP et CUBE sont ajoutés à la clause GROUP BY. Il existe une nouvelle fonction, GROUPING_ID(), qui retourne davantage d'informations au niveau du regroupement que la fonction GROUPING() existante. La syntaxe WITH ROLLUP, WITH CUBE et ALL non conforme aux normes ISO est désapprouvée. Pour plus d'informations, consultez Utilisation de GROUP BY avec ROLLUP, CUBE et GROUPING SETS.

Instruction MERGE

Cette nouvelle instruction Transact-SQL effectue des opérations INSERT, UPDATE ou DELETE sur une table cible selon les résultats d'une jointure avec une table source. La syntaxe vous permet de joindre une source de données à une table ou une vue cible et d'effectuer plusieurs actions sur la base des résultats de cette jointure. Pour plus d'informations, consultez MERGE (Transact-SQL).

Signalement des dépendances SQL

SQL Server 2008 introduit un nouvel affichage catalogue et des fonctions système pour fournir une création de rapports d'interdépendance SQL cohérente et fiable. Vous pouvez utiliser sys.sql_expression_dependencies, sys.dm_sql_referencing_entities et sys.dm_sql_referenced_entities pour créer des rapports sur les interdépendances de bases de données, entre serveurs et entre bases de données SQL pour les objets liés au schéma et non liés au schéma. Pour plus d'informations, consultez Signalement des dépendances SQL.

Paramètres table

Le Moteur de base de données introduit un nouveau type de paramètre qui peut faire référence à des types de table définis par l'utilisateur. Les paramètres table peuvent envoyer plusieurs lignes de données à une instruction SQL Server (telle qu'une procédure stockée ou une fonction) sans créer de table temporaire. Pour plus d'informations, consultez Paramètres table (Moteur de base de données).

Constructeurs ROW Transact-SQL

Transact-SQL a été amélioré de façon à autoriser plusieurs insertions de valeurs dans une instruction INSERT unique. Pour plus d'informations, consultez INSERT (Transact-SQL).