web-dev-qa-db-fra.com

Quelles sont les raisons objectives de préférer SQL Server 2016 aux versions antérieures?

Comme Microsoft effectue des mises à niveau de version de SQL Server plus fréquemment depuis les jours SQL Server 2005 ou 2008, de nombreuses entreprises ont du mal à déterminer quand une mise à niveau est un "must have"! et quand une mise à niveau est un "Agréable à avoir"

Dans l'esprit de quelques questions précédentes sur les raisons de préférer diverses versions plus récentes de SQL Server aux précédentes, quelles sont les raisons techniques ou commerciales objectives qu'une entreprise pourrait envisager pour une mise à niveau vers SQL Server 2016 par rapport à une version antérieure, voire plus tard version telle que SQL Server 2014?

(Cette question à propos de SQL Server 2012 par rapport à SQL Server 2008, Ou celle-ci à propos de SQL Server 2012 par rapport à SQL Server 2005 viennent à l'esprit comme des exemples de l'esprit de cette question Les réponses à ces questions développent également certaines des raisons pour lesquelles les entreprises démarrent sur SQL Server 2008 ou SQL Server 2005)

29
Mike Walsh

Il existe de nombreuses raisons d'envisager une mise à niveau vers SQL Server 2016. La plupart du temps, ces raisons varient en fonction de la version de SQL Server dont vous venez. Ce ne sera pas une liste exhaustive, mais je donnerai quelques raisons qui me viennent à l'esprit. Y compris une très grande raison que nous venons d'apprendre avec la sortie de SQL Server 2016 SP1 en novembre 2016. Dans l'attente de voir d'autres réponses pour l'expansion ou les fonctionnalités que j'ai manquées.

Grande raison: de nombreuses fonctionnalités disponibles dans l'édition standard maintenant

Le 16 novembre 2016, Microsoft a annoncé la sortie du Service Pack 1 pour SQL Server 2016. Parallèlement à cette annonce, ils ont également annoncé que de nombreuses fonctionnalités précédemment réservées aux clients Enterprise Edition seraient disponibles dans tous éditions de SQL Server - Standard, Express (à quelques exceptions près), Web en plus d'Enterprise Edition.

Cela devrait être une raison très convaincante pour la mise à niveau pour les éditeurs de logiciels qui développent et vendent des logiciels dotés d'un serveur SQL Server - de nombreuses fonctionnalités peuvent désormais être disponibles pour leurs clients quelle que soit leur édition sous licence de SQL Server. Cela est également convaincant pour les entreprises des secteurs qui doivent maintenir l'audit ou d'autres améliorations de sécurité qui ont été ajoutées au produit au fil du temps.

À mon humble avis, en plus de 17 ans de travail avec SQL Server, SQL Server 2016 SP1 est probablement la mise à niveau la plus convaincante à ce jour depuis que j'ai commencé à travailler avec SQL Server dans la version 6.5. (Ne vous méprenez pas, les 2000, 2005 et 2012 avaient aussi leurs avantages pour leur temps!)

Regardez la liste ci-dessous, mais comme exemple rapide de certaines des fonctionnalités que vous pouvez désormais utiliser dans Standard Edition, vous disposez des éléments suivants: compression, capture de données modifiées, audit fin, sécurité au niveau des lignes, toujours crypté, partitionnement, base de données Instantanés, OLTP en mémoire, Columnstore.

Raisons spécifiques des nouvelles fonctionnalités de SQL Server 2016

J'essaie de garder les raisons ici dans cette section pour les fonctionnalités introduites dans SQL Server 2016 uniquement. Je ne décris également que les principales améliorations du moteur dans cette réponse, pas les rapports, les analyses, l'intégration des données, etc.

Liés à la sécurité

Sécurité au niveau des lignes - De nombreux clients cherchent à pouvoir implémenter la sécurité ligne par ligne. "L'utilisateur x peut afficher les données sur cette ligne, mais pas sur cette ligne". Beaucoup de ces clients ont créé des fonctions et/ou des structures basées sur des vues compliquées pour y parvenir. Dans SQL Server 2016, des prédicats et des politiques de sécurité intégrés sont disponibles pour vous aider ici. Vous pouvez en savoir plus sur RLS ici .

Masquage dynamique des données - Celui-ci sonne bien sur le papier, mais je me demande s'il s'avérera moins utile que les deux autres changements dans le domaine de la sécurité. Fondamentalement, vous pouvez masquer dynamiquement ou masquer des données au moment de la requête en fonction des autorisations de l'appelant. La quantité de données à masquer est quelque chose de programmable. Par exemple, dans l'exemple utilisé par Microsoft, vous pouvez masquer tout sauf les quatre derniers chiffres d'un numéro de carte de crédit afin qu'un preneur d'appel dans un centre d'appels puisse vérifier ces quatre derniers chiffres. Vous pouvez en savoir plus à ce sujet ici .

Toujours crypté - Peut-être avez-vous entendu parler de certains défauts ou préoccupations concernant le cryptage transparent des données. Peut-être que vous ne voulez pas utiliser TDE de peur qu'une personne avec un accès SA puisse certainement décrypter si elle le souhaite. Always Encrypted a été publié comme une fonctionnalité qui met la capacité de décryptage/cryptage entre les mains de l'application appelant SQL Server. Les données au repos dans SQL Server sont cryptées. Les données en vol vers SQL Server sont également cryptées à la suite de cette approche. Vous pouvez en savoir plus sur Always Encrypted ici .

Caractéristiques HA/DR

Quelques fonctionnalités sont sorties ici. L'une est la possibilité d'utiliser les groupes de disponibilité Always On dans SQL Server Standard - le groupe de disponibilité de base. Cela était nécessaire car la mise en miroir est obsolète et n'avait pas de remplacement. La fonctionnalité est limitée au nombre de répliques et à l'approche de synchronisation. Vous pouvez lire plus ici .

Ce n'est pas la seule modification apportée aux groupes de disponibilité (qui, soit dit en passant, ont été introduits dans SQL Server 2012). Il y a aussi quelques autres changements (vous pouvez voir la liste exhaustive avec des liens vers d'autres changements ici ):

  1. Les comptes de services gérés de groupe sont pris en charge.
  2. Les transactions distribuées sont prises en charge (avec quelques mises en garde ).
  3. Les connexions d'intention de lecture peuvent être équilibrées en charge entre les réplicas en lecture seule.
  4. Trois répliques peuvent désormais être impliquées dans les basculements automatiques.
  5. Les bases de données chiffrées peuvent désormais participer à un groupe de disponibilité Always On.
  6. Améliorations des performances - une partie du thème de SQL Server 2016 est "c'est juste plus rapide" - c'est le spin de Microsoft Marketing, mais cela se révèle sur le marché. Plusieurs améliorations ont été apportées aux performances du groupe de disponibilité.

Le programme d'installation corrige certaines erreurs courantes

Le programme d'installation de SQL Server à partir de SQL Server 2016 corrige certaines erreurs courantes commises lors de la configuration de TempDB. L'interface graphique d'installation vous guide maintenant à travers la configuration des meilleures pratiques.

Magasin de requêtes

Un favori parmi les MVP et tuners SQL Server. Cette fonctionnalité est un outil pour vous donner un aperçu de la façon dont les requêtes sont exécutées par le moteur. Particulièrement utile pour suivre les problèmes de performances causés par les modifications des plans de requête au fil du temps. Cela peut être un outil à visualiser, mais aussi un outil à corriger. Aide à simplifier quelques concepts d'optimisation des performances. Vous pouvez en savoir plus à ce sujet ici .

Tables temporelles

Je vois souvent le besoin de poser une question comme "A quoi ressemblaient ces données à telle ou telle date". Les tables temporelles sont une méthode pour ce faire. Certainement avoir des cas d'utilisation d'entreposage. Voir plus ici .

Améliorations de Columnstore

Trois grandes améliorations pour moi ici parmi quelques autres. L'un est les index de colonnesstore non clusterisables pouvant être mis à jour. SQL Server 2014 nous a donné une mise à jour en cluster, mais nous avons maintenant une mise à jour non approuvée. SQL Server 2016 autorise également les index columnstore sur les tables en mémoire OLTP. Et la possibilité de placer un index B-tree non cluster traditionnel sur un index columnstore en cluster existe désormais dans SQL Server 2016.

Améliorations supplémentaires des fonctionnalités d'OLTP en mémoire

Plusieurs des fonctionnalités qui n'étaient pas prises en charge à l'intérieur des tables en mémoire ou dans les procédures compilées en mode natif sont désormais disponibles. Quelques ajouts (mais voir cet article pour en savoir plus): Contraintes UNIQUES, Vérifier les contraintes, clause OUTPUT en DML, Jointure externe, Sous-requêtes dans la liste de sélection, SELECT DISTINCT, UNION/UNION ALL, et plus encore.

Améliorations générales des performances

SQL Server 2014 a apporté des améliorations aux performances dans plusieurs domaines clés comme le fait chaque version. SQL Server 2016 a apporté des améliorations clés supplémentaires à l'ensemble du produit. Cela inclut l'élimination pour de nombreux clients de certaines des difficultés parfois rencontrées lors de la mise à niveau vers SQL Server 2014 en raison des modifications de l'estimateur de cardinalité. Plusieurs changements de haut en bas du moteur ont été effectués pour améliorer les performances quotidiennes. L'équipe CSS de Microsoft a blogué à ce sujet sur son blog. Vous pouvez simplement rechercher "SQL Server 2016, il s'exécute plus rapidement". Un exemple de billet de blog pour cette série est ici .

J'ai vu cela se produire chez les clients qui ont mis à niveau et je m'attends à le voir de plus en plus.

Quelques inconvénients

Il y a évidemment des inconvénients à toute mise à niveau. C'est peut-être parce que je fais cela pour gagner ma vie en tant que consultant, mais je pense que les inconvénients sont tous incroyablement gérables et vraiment les considérer comme "compter d'abord les articles" à connaître et à gérer.

Mises à niveau en général - En général, les mises à niveau signifient que vous introduisez de nouvelles fonctionnalités. Vous devez pouvoir les tester. Entre les versions de SQL Server, diverses fonctionnalités sont obsolètes. Cela ne signifie pas qu'ils disparaissent immédiatement, mais cela signifie qu'ils le pourront dans les versions futures, souvent trois versions plus tard. Par exemple, le type de données TEXT ou les jointures externes dans la clause where avec la syntaxe *= Ou =* Ne sont pas pris en charge si vous venez d'une base de données exécutée en mode de compatibilité SQL Server 2000. En parlant de modes de compatibilité, ils ne remontent que trois versions. Donc, si vous avez une base de données exécutée en 80 (SQL Server 2000) ou 90 (SQL Server 2005) modes de compatibilité, ils ne peuvent pas passer dans SQL Server 2016 comme ça. Donc, si vous avez évité de faire ce test et de vous faufiler des niveaux de compatibilité, il est temps de compter.

Encore. C'est facile. Il existe des outils pour aider à capturer et à tester les données pour voir ce qui se casse. Il existe des compteurs perfmon qui peuvent aider à rechercher des fonctionnalités obsolètes.

Licence - Deux choses ici:

  1. Basé sur le noyau - si vous êtes habitué aux conditions de licence antérieures à SQL Server 2012, les licences CPU n'étaient que cela - des licences CPU. Depuis SQL Server 2012, les licences basées sur le processeur sont basées sur le cœur. Il y a donc une période d'ajustement. De plus, Enterprise pour les nouvelles licences (à quelques exceptions près, lors du lancement de 2012) doit être concédé sous licence au niveau principal - pas de serveur + CAL pour l'entreprise . La doublure argentée brillante sur ce nuage est ce que j'ai dit à propos du SP1 permettant les fonctionnalités d'entreprise dans les SKU non-entreprise. Si vous avez besoin de plus de 128 Go de RAM. Si vous avez besoin des améliorations avancées des performances des analyses. Si vous avez besoin de plus de 32 Go de RAM pour un magasin de colonnes ou en mémoire, alors vous regardez Enterprise. Si vous ne le faites pas? Et vous n'avez pas besoin de reconstructions d'index en ligne? La norme peut simplement soyez pour vous, et il se peut que ce soit mieux pour vous maintenant avec ces fonctionnalités nouvellement disponibles.
  2. Software Assurance (SA) - si vous n'avez pas acheté SA, vous devez en acheter de nouveaux. Donc, si vous exécutez SQL Server 2005 et que vous craignez d'être hors du support général, pas très loin de la fin du support étendu et que vous souhaitiez que les fonctionnalités soient maintenant disponibles, vous ne pouvez pas simplement mettre à niveau comme un Service Pack. Si vous n'avez jamais acheté SA, votre mise à niveau est un nouvel achat. Ça va, ça vaut vraiment le coup. Mais c'est quelque chose qui doit frapper le budget.

Sommaire

Il existe de nombreuses autres raisons, telles que le support JSON, l'introduction de R, etc. Mais ce ne sont que quelques-unes des raisons pour lesquelles j'envisagerais une mise à niveau. L'élément le plus important, encore une fois, est la possibilité d'utiliser de nombreuses fonctionnalités auparavant réservées à l'édition Entreprise dans Standard, ou même Express. J'ai vu de grandes histoires de réussite parmi mes clients et je m'attends à en voir plus.

Et si vous utilisez SQL Server 2005 ou 2008, la liste est encore plus longue. Les groupes de disponibilité AlwaysOn sont sortis en 2012, les index Columnstore dans SQL Server 2012, In-Memory OLTP dans SQL Server 2014, etc.

Sans oublier que si vous utilisez toujours SQL Server 2005 ou 2008, vous n'avez plus de support standard.

35
Mike Walsh