J'étudie les avantages de la mise à niveau de MS SQL 2012 vers 2014. L'un des principaux arguments de vente de SQL 2014 est les tables optimisées en mémoire, qui rendent apparemment les requêtes ultra-rapides.
J'ai constaté qu'il y a quelques limitations sur les tables optimisées en mémoire, telles que:
- Aucun
(max)
champ dimensionné - Maximum ~ 1 Ko par ligne
- Pas de
timestamp
champs - Aucune colonne calculée
- Aucune
UNIQUE
contrainte
Tous ces éléments sont considérés comme des nuisances, mais si je veux vraiment les contourner afin d'obtenir des avantages en termes de performances, je peux faire un plan.
Le vrai coup de pied est le fait que vous ne pouvez pas exécuter une ALTER TABLE
instruction, et vous devez passer par ce rigmarole chaque fois que vous ajoutez un champ à la INCLUDE
liste d'un index. De plus, il semble que vous devez exclure les utilisateurs du système afin d'apporter des modifications de schéma aux tables MO sur la base de données en direct.
Je trouve cela totalement scandaleux, dans la mesure où je ne peux vraiment pas croire que Microsoft aurait pu investir autant de capital de développement dans cette fonctionnalité, et la laisser si difficile à maintenir. Cela m'amène à la conclusion que j'ai dû avoir le mauvais bout du bâton; Je dois avoir mal compris quelque chose au sujet des tables optimisées en mémoire qui m'a amené à croire qu'il est beaucoup plus difficile de les maintenir qu'il ne l'est réellement.
Alors, qu'est-ce que j'ai mal compris? Avez-vous utilisé des tables MO? Existe-t-il une sorte de commutateur ou de processus secret qui les rend pratiques à utiliser et à entretenir?