Supposons que nous ayons par exemple une instance de SQL Server
(ce n'est pas le cas). Et nous avons une application Java
qui utilise la stack Spring
.
Il y a des requêtes qui sont déjà optimisées mais elles sont encore lentes à cause de la complexité de l'agrégation de ces données.
J'ai plusieurs approches en tête (celles-ci sont à court terme pour le moment):
SQL server
par exemple toutes les 5 minutes et les stocker dans une table séparée. (Oui ce n'est pas une bonne solution mais quand même). Sous optimisé, cela signifie que ces requêtes utilisent les bons index et que tout est "réglé".
Je sais que ce n'est pas genre de question que plus de propositions / discussions. Mais encore je suis interrogé.
Quelle est la meilleure façon de gérer une situation comme celle-ci en fonction de ce qui précède?
En fonction de ce que vous pouvez et ne pouvez pas faire avec les vues indexées pour MS SQL Server, la vue indexée n'est pas adaptée car elle ne gère pas COUNT, MIN, MAX, TOP, les jointures externes ou quelques autres mots-keys ou éléments. Vous ne pouvez pas modifier les tables et les colonnes sous-jacentes. La vue est créée avec l'option WITH SCHEMABINDING.
Après avoir passé du time là-dessus. J'ai arrêté avec des vues matérialisées pour l'instant dans l'amour de la simplicité.
Ainsi, différents moteurs de database ont le concept d'une vue matérialisée . Le server SQL a l'équivalent avec ses vues indexées . Ceux-ci sont conçus pour votre cas d'utilisation exact. Je voudrais fortement considérer ces methods avant de «rouler votre propre» vue matérialisée.