Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Un gros problème :SQL Server 2016 Service Pack 1

Eh bien, je ne peux pas prétendre que vous l'avez entendu ici en premier, puisqu'il a été annoncé aujourd'hui par Scott Guthrie (@ScottGu ) à Se connecter(); // 2016 et aussi sur le blog de l'équipe SQL Server , mais SQL Server 2016 Service Pack 1 est la version de SQL Server qui permettra enfin à presque tout le monde de mettre à niveau toutes les versions précédentes.

Pourquoi ? Eh bien, j'espère que vous êtes assis :

De nombreuses fonctionnalités d'entreprise sont désormais disponibles en version Standard, Web et Express.

C'est une GRANDE AFFAIRE.

Je préconise depuis longtemps de rendre la surface identique dans toutes les éditions et de limiter chaque édition aux limites matérielles/ressources. Ce dernier est déjà le cas avec Express Edition (1 CPU, 1 Go de mémoire, 10 Go de taille de base de données) et Standard Edition (24 cœurs, 128 Go), mais les fonctionnalités elles-mêmes n'existent tout simplement pas là-bas. Bien qu'ils aient ajouté certaines fonctionnalités autour des groupes de disponibilité (prise en charge limitée dans l'édition Standard et possibilité de renoncer à un domaine), de nombreuses fonctionnalités actuellement réservées aux entreprises ne semblent pas du tout être des entreprises. Voici quelques raisons et conséquences de mettre autant de fonctionnalités critiques uniquement dans Enterprise, du moins à mon avis :

  1. Sécurité des données semble avoir pris du recul ces dernières années. Il devrait être dans toutes les éditions; J'ai été déçu lorsque Always Encrypted est sorti et qu'il était limité à Enterprise. Le message implicite était que, si vous êtes une petite entreprise, vous n'avez pas besoin de pouvoir crypter les données de carte de crédit (ils disent la même chose avec Transparent Data Encryption, mais Always Encrypted est une offre beaucoup plus précieuse).
  2. Fonctionnalités de programmabilité ce clair de lune en tant que fonctionnalités de performance - comme la compression et le partitionnement des données - sont sans doute du côté de l'entreprise, même si j'ai toujours pensé que le point idéal de la compression des données est la petite entreprise qui ne peut pas se permettre d'ajouter de la mémoire, d'acheter des disques plus rapides, ou mettre à niveau vers Enterprise.

    Dans les versions actuelles, lorsqu'un fournisseur souhaite tirer parti de la compression ou du partitionnement, il doit tenir compte du fait que tous ses clients n'utiliseront pas Enterprise Edition. De même, les clients souhaitent utiliser la même base de code dans leurs environnements d'assurance qualité, de production et de développement, mais ceux-ci peuvent ne pas tous avoir la même édition non plus. Les fournisseurs et les clients souhaitent également pouvoir utiliser les fonctionnalités disponibles à la fois dans le cloud et dans la boîte, quel que soit le niveau ou l'édition. Actuellement, ils doivent soit écrire plusieurs bases de code, soit simplement se rendre au plus petit dénominateur commun.
  3. Les taux d'adoption sont lents car, à bien des égards, les mises à niveau de l'édition Standard ont été loin d'être convaincantes ces dernières années, ce qui signifie que de nombreuses personnes sont satisfaites de leurs instances Standard 2012. Ils ne gagnent tout simplement pas grand-chose à passer à une version plus récente et, dans de nombreux cas, le coût du test d'une migration et de la gestion des régressions l'emporte en fait sur les avantages.

Des collègues comme Brent Ozar et Steve Jones ont eu des pensées similaires - arguant que les meilleures fonctionnalités restent exclues des éditions Standard et inférieures pour des raisons de revenus, mais ce n'est pas ainsi que cela devrait être.

Et maintenant, ce n'est plus le cas.

Fonctionnalité Standard / Web Express Base de données locale
Toujours chiffré
Modifier la capture de données
Columnstore
Compression des données
Instantanés de la base de données
Masquage dynamique des données
Audit détaillé
OLTP en mémoire
Plusieurs conteneurs de flux de fichiers
Partitionnement
PolyBase
Sécurité au niveau des lignes

1. Limité à 32 Go par instance sur l'édition Standard, 352 Mo sur Express.
2. Limité à 32 Go par base de données sur l'édition Standard, 352 Mo sur Express.

Je n'ai aucune preuve de cela, mais je pense qu'en raison de la lenteur des taux d'adoption de SQL Server 2016 - et de l'édition Standard en particulier - Microsoft a finalement écouté . Peut-être ont-ils réalisé que rendre autant de fonctionnalités attrayantes uniquement disponibles dans Enterprise Edition ne fonctionne pas. Impossible d'obtenir du sang d'une pierre, disent-ils.

Le tableau ci-dessous montre l'ensemble des fonctionnalités désormais activées en dehors de l'édition Enterprise (certaines fonctionnalités étaient déjà présentes dans Standard, mais je n'avais pas de bon moyen d'illustrer cela). Il doit seulement s'agir d'une table en raison de trois fonctionnalités qui ne fonctionnent pas sur Express et/ou LocalDB (en raison de l'Agent SQL Server, des autorisations ou des dépendances externes).

C'est ma feuille de triche rapide; vérifier la documentation pour les dernières mises à jour. J'ai testé la plupart des fonctionnalités et elles fonctionnent comme vous vous en doutez - pas pour banaliser l'effort, mais elles ont simplement supprimé les vérifications qui bloquaient les fonctionnalités en fonction de l'édition. Je pensais les faire trébucher en testant au-delà des bases, comme des statistiques incrémentielles sur des tables partitionnées et des combinaisons comme Columnstore sur une table compressée, pour voir s'ils manquaient quelque chose. Mais non - tout dans le tableau fonctionnait comme si j'exécutais Enterprise Edition.

Cela dit, l'accent était mis ici sur une surface de programmation cohérente (CPSA). Donc non, vous n'obtiendrez pas soudainement tous les avantages d'Enterprise Edition gratuitement ou avec une remise substantielle - voir ci-dessous pour les fonctionnalités qui ne fonctionneront pas. Et certaines des fonctionnalités ci-dessus peuvent encore être limitées en fonction de l'édition.

Néanmoins, cela fournit une excellente solution au point 2 ci-dessus :le fait que bon nombre de ces fonctionnalités fonctionnent dans toutes les éditions, même si elles prennent en charge différents niveaux d'échelle, permettra aux clients et aux fournisseurs de créer plus facilement des solutions qui fonctionnent, peu importe où ils sont déployés. Cela va être une énorme victoire, même au-delà du pur avantage de pouvoir enfin utiliser des choses comme Always Encrypted et le partitionnement partout.

Qu'est-ce qui différencie encore les éditions ?

Essentiellement, s'il s'agissait auparavant d'une fonctionnalité opérationnelle ou de disponibilité au niveau de l'entreprise, ou dans un certain ensemble de fonctionnalités de performance, elle le restera. La liste suivante n'est pas exhaustive, mais résume probablement la plupart des grandes différences :

  • Fonctionnalités de disponibilité comme les opérations en ligne, la restauration fragmentaire et les groupes de disponibilité entièrement fonctionnels (par exemple, les réplicas en lecture seule) sont toujours réservés aux entreprises. Je souhaite le REBUILD + (ONLINE = ON) la syntaxe pourrait fonctionner comme un no-op dans les éditions inférieures avec un avertissement au lieu de renvoyer une erreur, mais je ne peux pas être trop pointilleux ici.
  • Fonctionnalités de performances comme le parallélisme ne fonctionnera toujours pas dans Express Edition (ou LocalDB). Utilisation automatique de la vue indexée sans NOEXPAND les astuces et les fonctionnalités haut de gamme telles que l'ajout de mémoire/processeur à chaud continueront d'être disponibles uniquement dans Enterprise.
  • Fonctionnalités opérationnelles comme Resource Governor, Extensible Key Management (EKM) et Transparent Data Encryption resteront Enterprise Edition uniquement. D'autres, comme Backup Encryption, Backup Compression et Buffer Pool Extension, continueront de fonctionner dans Standard, mais ne fonctionneront toujours pas dans Express.
  • Agent SQL Server n'est toujours pas disponible dans Express et LocalDB. Par conséquent, et comme indiqué ci-dessus, Change Data Capture ne fonctionnera pas. Cross-server Service Broker reste également indisponible dans ces éditions.
  • OLTP en mémoire et PolyBase sont pris en charge dans Express, mais non disponibles dans LocalDB.
  • Droits de virtualisation n'ont pas changé et sont toujours beaucoup plus utiles dans Enterprise Edition avec Software Assurance.
  • Limites des ressources sur les éditions de bas niveau reste le même . Il semble que les compteurs de haricots contrôlent toujours la limite supérieure de mémoire dans l'édition Standard, donc c'est toujours 128 Go (alors que l'édition Enterprise est maintenant de 24 To). Personnellement, je pense que cette limite supérieure devrait faire des gains supplémentaires à chaque nouvelle version (loi de Moore), car j'estime que l'édition standard est suffisamment chère pour que ses limites de mémoire ne soient jamais aussi dangereusement proches de la limite supérieure d'un ordinateur portable bien équipé. Mais je vais prendre ce que je peux obtenir, et lorsque vous êtes bloqué sur l'édition Standard et que l'évolutivité est requise, vous pouvez désormais utiliser les fonctionnalités Enterprise ci-dessus sur plusieurs boîtiers ou instances de l'édition Standard, au lieu d'essayer d'évoluer.

Résumé

C'est une décision audacieuse de Microsoft, et je peux certainement voir comment cela augmentera les ventes Standard sans cannibaliser les ventes Enterprise. Les clients de l'édition Standard peuvent utiliser ces fonctionnalités à la fois pour consolider leurs bases de code et, dans de nombreux scénarios, pour créer des solutions offrant de meilleures performances. Et pour ceux qui profitent déjà de tous les avantages d'Enterprise Edition, cela ne vous intéressera peut-être pas du tout, mais il y a également un tas de nouvelles fonctionnalités disponibles dans toutes les éditions de SP1 . Ainsi, quelle que soit l'édition sur laquelle vous vous trouvez actuellement, vous n'avez vraiment aucune excuse pour conserver cette ancienne version de SQL Server.

Passez à la mise à niveau vers SQL Server 2016 SP1 !