2017-04-03 2 views
0

Pour charger des données provenant de multiples sources de données et une grande quantité de données à l'aide de SQL Server 2014.meilleures options pour mener à tempDB avec beaucoup de données

Mes scripts ETL sont en T-SQL et prendre un beaucoup de temps à exécuter parce que mes TempDB sont pleins.

À votre avis, ce qui est la meilleure façon de mener avec ceci:

  • Utilisation de transactions de validation?
  • Nettoyer TempDB?
  • etc.
+0

Comment savez-vous que tempdb étant plein provoque une lenteur? Habituellement, si tempdb se remplit pendant l'exécution du paquet, vous obtiendrez une erreur et non une dégradation des performances. – mallan1121

Répondre

0

La seule manière de répondre à cette question est à un très haut niveau de réponse générale.

Vous avez quelques options:

  1. allouent simplement plus d'espace pour TempDB.
  2. Optimisez vos requêtes ETL et affinez vos index.

L'option 2 est souvent la meilleure application. L'utilisation excessive de TempDB indique que des tris ou des jointures inefficaces se produisent. Pour résoudre ce problème, vous devez analyser les plans d'exécution réels de votre code ETL. Recherchez les éléments suivants:

  • Points d'exclamation dans votre plan de requête. Cela indique souvent qu'une opération de jointure ou de tri a dû déborder sur TempDB car l'optimiseur a estimé la quantité de mémoire requise. Vous pourriez avoir des statistiques qui doivent être mises à jour.
  • Recherchez les grandes différences dans le nombre estimé de lignes et le nombre réel de lignes. Cela peut également indiquer des statistiques obsolètes pour les problèmes de reniflage de paramètres.
  • Recherchez les opérations de tri. Il est souvent possible de les supprimer en ajoutant des index à vos tables.
  • Rechercher des méthodes d'accès inefficaces. Ceux-ci peuvent souvent être résolus en ajoutant des index de couverture. Par exemple, scannez la table si vous avez seulement besoin d'un petit nombre de lignes d'une grande table. Il suffit de noter que les analyses de table sont souvent la meilleure approche lors du chargement des entrepôts de données.

Espérons que cela vous a été utile.

Marius