2009-08-25 9 views
3

Je dois extraire des informations de gestion (MI) à partir de données mises à jour dans des lots du jour au lendemain. J'utiliserai des fonctions agrégées pour générer le MI à partir de tables contenant des centaines de milliers et potentiellement des millions de lignes. L'information sera affichée sur une page Web.
Le facteur critique ici est l'efficacité de la gestion des fonctions d'agrégat par SQL Server.
Je suis confronté à deux choix pour générer les données:Performances des fonctions agrégées sur les jeux de données de grande taille peu changeants

  1. écriture stockées procs/vues pour générer les informations à partir des données brutes qui sont appelées chaque fois que quelqu'un accède à une page
  2. Créer des tables qui sont actualisées tous les jours et agir comme un cache pour le MI

Quelle est la meilleure approche à prendre?

Répondre

4

Cache les valeurs pendant votre charge nocturne si les données ne changent pas tout au long de la journée. Cela rendra la récupération beaucoup plus rapide. Je suis un grand fan des tableaux récapitulatifs si nécessaire. Dans votre cas, ils sont nécessaires!

Une chose que vous pouvez vouloir examiner, puisque vous possédez SQL Server, est Analysis Services. En créant une base de données multidimensionnelle, ou un cube, ces agrégations se produisent automagiquement, et vous pouvez explorer vos données pour trouver des nombres à la vitesse de la pensée, au lieu d'essayer d'écrire des rapports qui capturent tous ces nombres. Passez 10 minutes et watch the intro video, et je pense que vous apprécierez vraiment le pouvoir de SSAS.

+0

Merci. Jetez un oeil à Analysis Services. – macleojw

3

Il me semble qu'un cube Analysis Services serait le meilleur ajustement à votre problème. Le traitement du cube peut être exécuté après le chargement des données pour agréger les données en vue d'une utilisation ultérieure. Cependant, vous pouvez également utiliser une vue indexée qui, si elle est conçue correctement et utilisée avec l'indicateur de table NO EXPAND, peut fournir une augmentation significative des performances.

SQL 2005 Indexed Views

SQL 2008 Indexed Views

Questions connexes