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

Réflexions sur les éditions SQL Server 2019

Alors que je me lance dans mon premier PASS Summit depuis quelques années, il est difficile de contenir mon enthousiasme à propos de la nouvelle version de SQL Server. J'ai aidé Bob Ward (@bobwardms) avec l'édition technique de son livre le plus récent, "SQL Server 2019 Revealed", et j'ai été activement engagé avec les équipes produit et mes pairs MVP tout au long des cycles CTP et RC. J'ai même assisté à l'événement très exclusif SQL Server 2019 Airlift à Redmond la première semaine d'octobre - et s'il était trop tard pour fournir des commentaires qui auraient un impact sur RTM, j'ai fait plusieurs suggestions constructives que nous espérons voir dans un CU ( ou aussi tard que vNext).

Le produit n'est pas encore sorti, du moins au moment de la rédaction, mais ils ont commencé à déterminer quelles fonctionnalités (et il y en a beaucoup) seront disponibles dans quelles éditions. Comme vous vous en souvenez peut-être, dans SQL Server 2016 SP1, ils ont ouvert toutes les fonctionnalités de la surface de programmation à toutes les éditions, ainsi que de nombreuses fonctionnalités (mais certainement pas toutes) de performances et de disponibilité. J'ai écrit à ce sujet dans un article intitulé "A Big Deal :SQL Server 2016 Service Pack 1". C'était une période très excitante, et je voulais juste partager quelques réflexions sur les succès et les échecs de la nouvelle version.

Accès

  • La récupération de base de données accélérée est disponible dans l'édition Standard . Ce fut de loin la plus grande surprise pour moi, car je pensais que ce serait une fonctionnalité Enterprise Edition. Il s'agit d'une fonctionnalité de disponibilité, car elle peut réduire considérablement le temps de basculement et de récupération, et elle peut également être considérée comme une fonctionnalité de performance, car vous pouvez désormais utiliser le même magasin de versions local pour des éléments tels que RCSI au lieu de partager le magasin de versions dans tempdb. Vous pouvez même placer le magasin de versions local dans son propre groupe de fichiers, ce qui n'était pas une option lorsque j'ai écrit sur la fonctionnalité en mars. Avoir cela disponible dans toutes les éditions est fantastique, mais vous devez vous assurer de tester votre charge de travail par rapport à une référence.
  • Transparent Data Encryption (TDE) est désormais disponible dans l'édition Standard . Gardant à l'esprit que la documentation n'est pas définitive, il s'agit d'un grand changement pour de nombreux magasins, et il est logique qu'une fonctionnalité de sécurité aussi importante ne soit pas un facteur de différenciation pour l'édition la plus chère. Ce n'est ni une fonction de performance ni de disponibilité, et la sécurité des données de base et sensible ne devrait pas coûter plus cher, à mon humble avis. Nike Neugebauer est d'accord. Always Encrypted et d'autres fonctionnalités telles que la sécurité au niveau des lignes et le masquage dynamique des données sont disponibles dans toutes les éditions, mais elles ne s'intègrent pas toujours dans la solution "facile" que recherchent les clients.
  • Inlining UDF scalaire est dans toutes les éditions - même Express . Il s'agit d'une fonctionnalité intéressante qui masque essentiellement toutes les mauvaises performances que vous obteniez des fonctions scalaires définies par l'utilisateur inefficaces (j'ai écrit pour la première fois sur cette fonctionnalité il y a un an). Je suis surpris que celui-ci ne soit pas réservé aux entreprises - cela aurait pu être comme des vues indexées, où la fonctionnalité est disponible partout, mais le comportement est meilleur (au moins par défaut) dans Enterprise Edition. Je suis heureux que tout le monde en profite dans ce cas.
  • La configuration fournit de meilleures recommandations en situation réelle . Ce n'est pas un élément de la liste des fonctionnalités en soi, mais il y a quelques nouvelles options et suggestions autour de MAXDOP et de la mémoire serveur min/max qui, je pense, sont d'excellents ajouts et permettront aux utilisateurs de mieux configurer leurs instances dès le départ :

    Nouvel écran MaxDOP dans la configuration ( cliquez pour agrandir)

    Écran Nouvelle mémoire dans la configuration ( cliquez pour agrandir)

    Maintenant, si seulement ils pouvaient ajouter des options pour d'autres choses qui perturbent après l'installation, comme le verrouillage des pages en mémoire, la modification du seuil de coût par défaut pour le parallélisme, la spécification des indicateurs de trace de démarrage (comme 3226 !), la mise en évidence des paramètres de plan d'alimentation sous-optimaux et l'activation Groupes de disponibilité directement au lieu d'utiliser Configuration Manager après coup. Et peut-être pourraient-ils supprimer ce satané avertissement concernant le pare-feu ; c'est toujours la même chose et, pour moi du moins, cela n'a jamais été significatif ou utile dans aucun scénario.

Manqués

  • Ils ne bougeront toujours pas sur la limite de 128 Go pour l'édition Standard , malgré de nombreuses demandes (comme celle d'Erik Darling). Ce n'est pas mon idée originale, et cela ne simplifierait pas l'octroi de licences ou l'application, mais les limites de mémoire pourraient être faite par rapport au nombre de cœurs sous licence. De cette façon, votre limite de mémoire est basée sur le montant que vous avez dépensé en licences, et non sur une limite arbitraire décidée dans une salle de conférence quelque part il y a 5 ans.

    Brent Ozar (@BrentO) a également parlé de la "tempête parfaite " impliquant des subventions de mémoire dans l'édition Standard, et je suis tout à fait d'accord - je pense que les clients paieraient volontiers la prime du passage de la licence CAL à la licence principale sur l'édition Standard si cela signifiait maintenant qu'ils pouvaient utiliser plus (ou même la totalité) de leur mémoire.
  • TempDB à mémoire optimisée est l'édition Entreprise uniquement , tandis que d'autres technologies de base de données en mémoire, telles que les tables optimisées en mémoire et le pool de mémoire tampon hybride, sont disponibles dans l'édition Standard. Je pense que cette fonctionnalité est une sorte d'hybride entre performances et disponibilité; au moins plus d'un équilibre que, disons, UDF inlining. Les fonctions lentes font juste attendre les gens; un tempdb débordé peut presque littéralement supprimer votre instance. J'ai également l'impression que les clients Enterprise ont déjà plus de matériel et de meilleure qualité pour résoudre le problème que les petits magasins ne peuvent se permettre. Les clients qui choisissent l'Édition Standard n'ont pas nécessairement les économies en attente d'émettre des chèques.

    L'une des suggestions que j'avais autour de cette fonctionnalité était qu'il devrait y avoir des arguments de ligne de commande et/ou une case à cocher de l'interface utilisateur lors de l'installation pour activer cette fonctionnalité immédiatement après une installation ou une mise à niveau. Cela éviterait les interruptions après l'installation, car la seule façon d'activer la fonctionnalité est d'effectuer un redémarrage du service. La raison pour laquelle ce n'est pas activé par défaut est qu'il existe des modèles de charge de travail où l'avantage ne sera pas évident, et certains scénarios de rupture impliquant des transactions et d'autres bases de données avec des tables optimisées en mémoire, ils veulent donc que vous testiez votre charge de travail et assurez-vous que vous observent les bons types de conflit et que l'avantage est là. Mais que se passe-t-il si j'ai déjà fait cela sur un autre système avec la même charge de travail ?

Pensées d'adieu

Même si cela peut sembler que je me plains, je suis toujours très excité par cette version et tout ce qu'elle a à offrir. Je m'attends à ce que la disponibilité soit annoncée à la fois lors des sommets Ignite et PASS, vous aurez donc peut-être les bits RTM entre vos mains au moment où vous lirez ceci.