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

Les améliorations de la programmabilité dans le Moteur de base de données incluent les FileTables, la recherche sémantique de statistiques, la recherche en texte intégral de portée propriété et la recherche de proximité personnalisable, la pagination de requête ad hoc, la prise en charge de segments d'arc de cercle pour les types spatiaux, la prise en charge des objets séquence, la prise en charge par défaut de 15 000 partitions et un grand nombre d'améliorations et d'ajouts apportés à Transact-SQL.

Les services Web XML natifs (points de terminaison SOAP/HTTP) sont supprimés.

À compter de SQL Server 2012, vous ne pouvez plus utiliser l'instruction CREATE ENDPOINT ou ALTER ENDPOINT pour ajouter ou modifier des points de terminaison SOAP/HTTP.

FileTables

La fonctionnalité FileTable s'appuie sur la technologie SQL Server FILESTREAM pour apporter une prise en charge de l'espace de noms de fichier Windows et la compatibilité des applications Windows avec les données de fichier stockées dans SQL Server. Cela permet à une application d'intégrer ses composants de stockage et de gestion des données, et fournit des services SQL Server intégrés (notamment la recherche sémantique et en texte intégral) sur des données et des métadonnées non structurées, ainsi qu'une administration et une gestion simples de la stratégie.

En résumé, vous pouvez maintenant stocker des fichiers et des documents dans des tables spéciales dans SQL Server, mais y accéder à partir d'applications Windows comme si ils avaient été stockés dans le système de fichiers, sans apporter de modifications aux applications Windows.

Pour plus d'informations sur les fonctionnalités FileTable, consultez FileTables (SQL Server).

Recherche sémantique de statistiques

La recherche sémantique statistique donne un éclairage sur des documents non structurés stockés dans les bases de données SQL Server en extrayant des expressions clés statistiquement pertinentes, puis en identifiant des documents similaires d'après ces expressions. Ces résultats sont mis à disposition sous forme de données structurées via trois fonctions d'ensemble de lignes Transact-SQL.

La recherche sémantique s'appuie sur la fonctionnalité de recherche en texte intégral existante dans SQL Server mais permet de nouveaux scénarios qui vont au-delà des recherches par mot clé syntactiques. Tandis que la recherche en texte intégral vous permet d'interroger des mots dans un document, la recherche sémantique porte sur la signification du document. Les nouveaux scénarios incluent l'extraction automatique de balises, la découverte de contenu connexe et la navigation hiérarchique à travers du contenu similaire. Par exemple, vous pouvez interroger l'index de ressemblance de document pour identifier des curriculum vitae qui correspondent à une description de poste. Vous pouvez également interroger l'index d'expressions clés pour générer la taxonomie d'une organisation ou d'un corpus de documents.

Pour plus d'informations, consultez Recherche sémantique (SQL Server).

Avant de pouvoir utiliser la recherche sémantique, vous devez installer, attacher et inscrire une base de données supplémentaire. Pour plus d'informations, consultez Installer et configurer la recherche sémantique.

Recherche en texte intégral

Recherche de propriétés

À compter de SQL Server 2012, vous pouvez configurer un index de recherche en texte intégral pour prendre en charge la recherche portant sur des propriétés, telles que les propriétés Auteur et Titre, émises par des IFilters. Cette forme de recherche s'appelle recherche de propriétés. La possibilité d'utiliser la recherche de propriétés sur un type donné de document dépend de l'extraction des propriétés de recherche par le filtre (IFilter) correspondant, lors de l'indexation de texte intégral. Parmi les IFilters qui extraient plusieurs propriétés de document, il existe des IFilters pour les types de fichier document Microsoft Office 2007, tels que .docx, .xlsx et .pptx. Pour plus d'informations, consultez Rechercher les propriétés du document à l'aide des listes de propriétés de recherche.

NEAR personnalisable

À compter de SQL Server 2012, vous pouvez personnaliser une recherche de proximité à l'aide de la nouvelle option personnalisée NEAR du prédicat CONTAINS ou de la fonction CONTAINSTABLE. L'option NEAR personnalisée vous permet d'éventuellement spécifier le nombre maximal de termes de non-recherche qui séparent le premier et le dernier terme de recherche dans une correspondance. NEAR personnalisé vous permet également de spécifier que les mots et expressions soient mis en correspondance uniquement s'ils apparaissent dans un ordre spécifié. Pour plus d'informations, consultez Recherche de mots dans le voisinage d'autres mots avec NEAR.

Nouveaux analyseurs lexicaux et générateurs de formes dérivées

Tous les analyseurs lexicaux et générateurs de formes dérivées utilisés par la recherche en texte intégral et la recherche sémantique, à l'exception de la langue coréenne, sont mis à jour dans cette version. Pour des raisons de cohérence entre le contenu des index et les résultats des requêtes, nous vous recommandons de réalimenter les index de recherche en texte intégral existants après la mise à niveau.

  1. Les analyseurs lexicaux tiers pour l'anglais qui étaient inclus avec les versions antérieures de SQL Server ont été remplacés par les composants Microsoft. Si vous devez conserver le comportement antérieur, consultez Modifier l'analyseur lexical utilisé pour l'anglais des États-Unis et l'anglais du Royaume-Uni.

  2. Les analyseurs lexicaux tiers pour le danois, le polonais et le turc qui étaient inclus avec les versions antérieures de SQL Server ont été remplacés par les composants Microsoft. Les nouveaux composants sont activés par défaut.

  3. Il existe de nouveaux analyseurs lexicaux pour le tchèque et le grec. Les versions antérieures de la recherche en texte intégral de SQL Server ne prenaient pas en charge ces deux langues.

  4. Le comportement des nouveaux analyseurs lexicaux a changé. Pour plus d'informations, consultez Changements de comportement de la recherche en texte intégral. Si vous devez conserver le comportement antérieur, consultez Rétablir la version précédente des analyseurs lexicaux utilisés par la recherche.

  5. Cette version installe les analyseurs lexicaux et les générateurs de formes dérivées Microsoft les plus récents, mais n'installe pas les filtres Microsoft les plus récents. Pour télécharger les filtres les plus récents, consultez Microsoft Office 2010 Filter Packs.

Nouvelles fonctionnalités spatiales améliorées

Les nouvelles fonctionnalités spatiales dans SQL Server 2012 sont une étape importante dans l'évolution de la prise en charge des données spatiales dans SQL Server. La prise en charge des objets spatiaux de globe complet et des arcs de cercle sur l'ellipsoïde est indispensable pour les systèmes de bases de données relationnelles. Le type de données geography a atteint la parité avec le type de données geometry au niveau de sa fonctionnalité et des diverses méthodes prises en charge. Les performances globales, des index spatiaux aux méthodes, se sont considérablement améliorées. Celles-ci et d'autres améliorations apportées à la prise en charge des données spatiales représentent un progrès important pour les fonctions spatiales de SQL Server.

Pour obtenir une description détaillée et des exemples de ces nouvelles fonctionnalités spatiales, téléchargez le livre blanc, New Spatial Features in SQL 2012 (en anglais).

Optimisation des types de données spatiales

Nouveaux arcs de cercle et méthodes associées

  • Nouveaux sous-types. Il existe 3 nouveaux sous-types d'arcs de cercle :

    • CircularString

    • CompoundCurve

    • CurvePolygon

  • Nouvelles méthodes. Toutes les méthodes existantes reposent sur ces objets circulaires. Voici les nouvelles méthodes introduites :

    • BufferWithCurves() utilise des arcs de cercle pour construire un objet mis en mémoire tampon avec un nombre de points considérablement réduit par rapport à STBuffer().

    • STNumCurves() et STCurveN() sont utilisés pour l'itération via la liste des bords d'arc de cercle.

    • STCurveToLine() et CurveToLineWithTolerance() sont utilisés pour ajuster des arcs de cercle avec des segments de ligne dans la plage de tolérance par défaut spécifiée par l'utilisateur.

Nouvelles méthodes et agrégats mis à jour pour geometry et geography

  • Nouvelles méthodes.

    • IsValidDetailed() retourne un message qui peut permettre de déterminer pourquoi un objet spatial n'est pas valide.

    • HasZ renvoie 1 (true) si un objet spatial contient au moins une valeur z.

    • HasM renvoie 1 (true) si un objet spatial contient au moins une valeur M.

    • AsBinaryZM() ajoute la prise en charge des valeurs Z et M au format OGC WKB.

    • ShortestLineTo() retourne un LineString qui représente la distance la plus courte entre deux objets.

    • STLength() a été mis à jour et fonctionne maintenant à la fois sur les LineStrings valides et non valides.

    • MinDbCompatibilityLevel() est une nouvelle méthode utilisée pour la compatibilité descendante. Il indique si les objets spatiaux peuvent être identifiés par SQL Server 2008 et SQL Server 2008 R2.

  • Nouveaux agrégats. Les agrégats ne sont disponibles que dans Transact-SQL, et non dans la bibliothèque de programmation côté client.

    • UnionAggregate

    • EnvelopeAggregate

    • CollectionAggregate

    • ConvexHullAggregate

Précision améliorée.

Toutes les constructions et relations sont maintenant effectuées avec une précision de 48 bits et non de 27 bits seulement comme dans SQL Server 2008 et SQL Server 2008 R2. Cela permet de réduire les erreurs causées par un arrondi des coordonnées à virgule flottante.

Optimisation du type geography

  • Le globe complet SQL Server prend désormais en charge les objets spatiaux qui sont plus grands qu'un hémisphère logique. Dans SQL Server 2008, les fonctionnalités geography étaient limitées à légèrement moins qu'un hémisphère logique. Dans SQL Server 2012, elles peuvent maintenant être aussi volumineuses que le globe entier. Un nouveau type d'objet, FULLGLOBE, peut être construit ou reçu comme résultat d'une opération.

  • Nouvelles méthodes.

    • Pour les objets non valides. Le type geography permet maintenant l'insertion d'objets non valides dans une table. STIsValid() et MakeValid() autorisent la détection d'objets geography non valides et leur correction similairement au type geometry.

    • Pour l'orientation de boucle. Les polygones geography peuvent maintenant être adaptés sans tenir compte de l'orientation de la boucle. Cela peut provoquer un comportement inattendu. ReorientObject() peut être utilisé pour réorienter les boucles de polygone dans les cas où elles sont construites selon une orientation incorrecte.

    • Méthodes geometry ajoutées au type geography. Les méthodes STWithin(), STContains(), STOverlaps() et STConvexHull() étaient précédemment disponibles uniquement pour le type geometry, mais sont maintenant incluses pour le type geography. À l'exception de STConvexHull(), elles sont prises en charge par les index spatiaux.

  • Nouveau SRID. Un nouvel ID de référence spatial (SRID), 104001, a été ajouté à la liste des systèmes de référence spatiaux pris en charge. Ce nouveau SRID est une sphère d'unité de la terre (une sphère de rayon 1) et peut être utilisé avec le type geography pour effectuer des calculs numériques optimisés lorsque des mathématiques ellipsoïdes plus précises ne sont pas requises.

Optimisation des performances spatiales

Optimisation des index spatiaux

  • Nouvelle grille automatique. Un index spatial de grille automatique est disponible pour les deux types spatiaux (geometry_auto_grid et geography_auto_grid). La nouvelle grille automatique utilise une stratégie différente pour choisir le bon compromis entre performances et efficacité. Pour plus d'informations, consultez CREATE SPATIAL INDEX (Transact-SQL).

  • Nouvel indicateur d'index spatial, SPATIAL_WINDOW_MAX_CELLS. Ce nouvel indicateur spatial est essentiel pour optimiser les performances des requêtes utilisant un index spatial. Les données spatiales denses requièrent souvent un SPATIAL_WINDOW_MAX_CELLS plus élevé, alors que les données spatiales éparses requièrent un SPATIAL_WINDOW_MAX_CELLS inférieur pour des performances optimales. Cet indicateur ne garantit pas qu'un index spatial est utilisé dans le plan de requête. Toutefois, s'il est utilisé, il remplace le paramètre de la valeur par défaut WINDOW_MAX_CELLS.

  • Compression des index spatiaux. Pour plus d'informations, consultez CREATE SPATIAL INDEX (Transact-SQL).

Optimisation supplémentaires des performances

  • Un plan optimisé de requête plus proche est disponible lorsque une certaine syntaxe est utilisée.

  • Plusieurs autres méthodes ont été optimisées pour les scénarios courants.

  • Les agrégats spatiaux ont des meilleures performances en raison des améliorations qui affectent tous les agrégats CLR UDT.

Autres optimisations spatiales

Procédures stockées spatiales auxiliaires

Deux nouvelles procédures stockées auxiliaires sont disponibles. Ces procédures peuvent être utilisées pour évaluer la distribution des données spatiales d'une table sur une colonne spatiale donnée.

Prise en charge des colonnes calculées persistantes

Les UDT et les types spatiaux peuvent maintenant être rendus persistants dans les colonnes calculées.

Modifications apportées à la bibliothèque de programmation spatiale côté client

Découverte des métadonnées

L'option SET FMTONLY pour déterminer le format d'une réponse sans exécuter la requête est remplacée par sp_describe_first_result_set, sp_describe_undeclared_parameters, sys.dm_exec_describe_first_result_set et sys.dm_exec_describe_first_result_set_for_object.

Instruction EXECUTE

L'instruction EXECUTE peut désormais spécifier les métadonnées retournées par l'instruction à l'aide de l'argument WITH RESULT SETS. Pour plus d'informations, consultez EXECUTE (Transact-SQL).

Prise en charge UTF-16

Classements de caractères supplémentaires UTF-16

Une nouvelle famille de classements de caractères supplémentaires (SC) peut être utilisée avec les types de données nchar, nvarchar et sql_variant. Par exemple : Latin1_General_100_CI_AS_SC ou, en cas d'utilisation d'un classement japonais, Japanese_Bushu_Kakusu_100_CI_AS_SC. Ces classements encodent des caractères Unicode au format UTF-16. Les caractères avec des valeurs de codepoint supérieures à 0xFFFF requièrent deux mots de 16 bits consécutifs. Ces caractères s'appellent des caractères supplémentaires et les deux mots de 16 bits consécutifs s'appellent des paires de substitution. Les classements SC permettent d'améliorer la recherche et le tri effectués par des fonctions qui utilisent les types Unicode nchar et nvarchar. Pour plus d'informations, consultez Prise en charge d'Unicode et du classement.

Option de classement de caractères supplémentaires (SC) UTF-16 pour XML

SQL Server 2012 ajoute une nouvelle option de classement, « SC » ou « caractères supplémentaires », qui identifie si un classement prend en charge UTF-16. Pour plus d'informations, consultez Prise en charge d'Unicode et du classement. SQL Server 2012 ajoute également la prise en charge de cette option de classement dans le schéma XML de types SQL et dans d'autres emplacements où SQL Server expose ou consomme ces informations dans un contexte XML. Les emplacements concernés sont les suivants :

  • Schéma XML de types SQL. La version de schéma est maintenant 1.2. Le schéma est à compatibilité descendante et l'espace de noms cible n'a pas changé. Le schéma expose maintenant l'attribut global supplementaryCharacters.

  • Directive XMLSCHEMA avec FOR XML. Le nouvel attribut global est exposé dans les schémas insérés et les annotations d'instance générés par la directive XMLSCHEMA, avec des attributs similaires tels que localeId et sqlCompareOptions. Cette directive est prise en charge avec FOR XML dans les modes RAW et AUTO, mais pas dans les modes EXPLICIT ou PATH.

  • Collection de schémas XML sys.sys. Le nouvel attribut global est prérempli dans la collection de schémas XML sys.sys intégrée et est rendu disponible implicitement dans toutes les autres collections de schémas XML qui importent le schéma XML de types SQL.

  • Affichages catalogue. Le nouvel attribut global est maintenant répertorié dans les affichages catalogue suivants :

    • sys.xml_schema_components

    • sys.xml_schema_attributes

    • sys.xml_schema_component_placements

  • Collections de schémas XML mises à niveau. Après la mise à niveau à partir d'une version antérieure de SQL Server, le nouvel attribut global est exposé dans toutes les collections de schémas XML qui importent le schéma XML de types SQL.

  • Jeux de colonnes XML. Le nouvel attribut global est ajouté aux valeurs de jeu de colonnes XML qui représentent les chaînes sql_variant qui utilisent les nouveaux classements UTF-16. Il peut également être appliqué pendant les insertions et les mises à jour pour définir des valeurs de chaîne de type sql_variant dans les colonnes éparses pour utiliser le classement prenant en charge UTF-16.

Implémentation de la pagination de requête ad hoc

Vous pouvez spécifier une plage de lignes retournées par une instruction SELECT en fonction des valeurs de décalage de ligne et de nombre de lignes que vous fournissez. Ceci est utile lorsque vous voulez contrôler le nombre de lignes envoyées à une application cliente pour une requête donnée. Pour plus d'informations, consultez Clause ORDER BY (Transact-SQL).

Objets séquence

Un objet séquence est un objet lié par schéma défini par l'utilisateur qui génère une séquence de valeurs numériques d'après la spécification avec laquelle la séquence a été créée. Il opère de la même façon qu'une colonne d'identité, mais les numéros de séquence ne sont pas limités à une utilisation dans une table individuelle. Pour plus d'informations, consultez Numéros de séquence.

Instruction THROW

L'instruction THROW peut être utilisée pour lever une exception et transférer l'exécution à un bloc CATCH d'une construction TRY…CATCH. Pour plus d'informations, consultez THROW (Transact-SQL).

14 nouvelles fonctions et 1 fonction modifiée

SQL Server 2012 introduit 14 nouvelles fonctions intégrées. Ces fonctions simplifient le chemin de migration pour les travailleurs de l'information par l'émulation de la fonctionnalité qui se trouve dans les langages d'expressions de nombreuses applications bureautiques. Toutefois, ces fonctions sont également utiles aux utilisateurs expérimentés de SQL Server.

Les nouvelles fonctions sont les suivantes :

Fonctions de conversion

Fonctions de date et d'heure

Fonctions logiques

Fonctions de chaînes

En plus des 14 nouvelles fonctions, une fonction existante a été modifiée. La fonction LOG (Transact-SQL) existante a maintenant un deuxième paramètre base facultatif.

SQL Server Express LocalDB

SQL Server Express LocalDB est une nouvelle édition allégée d'Express qui conserve toutes les fonctions de programmabilité de ce dernier, s'exécute en mode utilisateur, s'installe rapidement sans aucune configuration et n'exige que peu de conditions préalables. L'édition LocalDB de SQL Server est destinée aux développeurs de programme. L'installation de LocalDB copie l'ensemble minimal des fichiers nécessaires pour démarrer le Moteur de base de données SQL Server. Une fois que LocalDB est installé, les développeurs initient une connexion à l'aide d'une chaîne de connexion particulière. Lors de la connexion, l'infrastructure SQL Server nécessaire est automatiquement créée et démarrée, ce qui permet à l'application d'utiliser la base de données sans tâches de configuration complexes ou longues. Les outils de développement incluent un Moteur de base de données SQL Server qui permet aux développeurs d'écrire et de tester le code Transact-SQL sans devoir gérer une instance de serveur SQL Server complète. Une instance de SQL Server Express LocalDB peut être gérée à l'aide de l'utilitaire SqlLocalDB.exe. SQL Server Express LocalDB doit être utilisé à la place de la fonctionnalité d'instance utilisateur SQL Server Express qui est déconseillée. Pour plus d'informations, consultez SQL Server 2012 Express LocalDB.

Indicateurs d'optimiseur de requête nouveaux et améliorés

La syntaxe de l'indicateur de table FORCESEEK a été modifiée. Vous pouvez maintenant spécifier un index et les colonnes d'index pour contrôler davantage la méthode d'accès sur l'index. La syntaxe FORCESEEK existante demeure inchangée et fonctionne comme avant. Aucune modification des applications n'est nécessaire si vous ne prévoyez pas d'utiliser la nouvelle fonctionnalité.

L'indicateur de table FORCESCAN a été ajouté. Il complète l'indicateur FORCESEEK en spécifiant que l'optimiseur de requête doit utiliser uniquement une opération d'analyse d'index comme chemin d'accès à la table ou la vue référencée dans la requête. L'indicateur FORCESCAN peut être utile pour les requêtes dans lesquelles l'optimiseur sous-estime le nombre de lignes affectées et choisit une opération de recherche plutôt qu'une opération d'analyse. FORCESCAN peut être spécifié avec ou sans indicateur INDEX. Pour plus d'informations, consultez Indicateurs de table (Transact-SQL).

Améliorations des événements étendus

Les nouveaux événements étendus suivants sont disponibles.

page_allocated :

  • Champs : worker_address, number_pages, page_size, page_location, allocator_type, page_allocator_type, pool_id

page_freed :

  • Champs : worker_address, number_pages, page_size, page_location, allocator_type, page_allocator_type, pool_id

allocation_failure :

  • Champs : worker_address, failure_type, allocation_failure_type, resource_size, pool_id, factor

Les événements étendus suivants ont été modifiés.

resource_monitor_ring_buffer_record :

  • Champs supprimés : single_pages_kb, multiple_pages_kb

  • Champs ajoutés : target_kb, pages_kb

memory_node_oom_ring_buffer_recorded :

  • Champs supprimés : single_pages_kb, multiple_pages_kb

  • Champs ajoutés : target_kb, pages_kb

Prise en charge améliorée de la clause OVER

La clause OVER a été étendue pour prendre en charge les fonctions de fenêtre. Les fonctions de fenêtre effectuent un calcul sur un ensemble de lignes qui sont liées à la ligne actuelle. Par exemple, vous pouvez utiliser la clause ROWS ou RANGE sur un ensemble de lignes pour calculer une moyenne mobile ou un total cumulatif. Pour plus d'informations, consultez Clause OVER (Transact-SQL).

En outre, l'organisation des lignes d'une partition est maintenant prise en charge dans les fonctions d'agrégation qui permettent de spécifier la clause OVER.

Fonctions analytiques

Les fonctions analytiques suivantes ont été ajoutées.

CUME_DIST (Transact-SQL)

LAST_VALUE (Transact-SQL)

PERCENTILE_DISC (Transact-SQL)

FIRST_VALUE (Transact-SQL)

LEAD (Transact-SQL)

PERCENT_RANK (Transact-SQL)

LAG (Transact-SQL)

PERCENTILE_CONT (Transact-SQL)

Les fonctions XQuery prennent en charge la substitution

La recommandation du W3C pour les fonctions et les opérateurs XQuery exigent qu'ils prennent en charge une paire de substitution qui représente un caractère Unicode à plage élevée en tant que glyphe unique dans l'encodage UTF-16. Toutefois, dans les versions de SQL Server antérieures à SQL Server 2012, les fonctions de chaîne ne reconnaissaient pas les paires de substitution comme caractère unique. Certaines opérations de chaîne, telles que les calculs de longueur de chaîne et les extractions de sous-chaîne, retournaient des résultats incorrects. SQL Server 2012 prend désormais entièrement en charge UTF-16 et la gestion correcte des paires de substitution. Pour plus d'informations, consultez la section « Les fonctions XQuery prennent en charge la substitution » dans la rubrique Changements essentiels dans les fonctionnalités du moteur de base de données de SQL Server 2012.

Voir aussi

Concepts

Nouveautés (moteur de base de données)