2010-10-03 8 views
1

HI Tout le monde,LENTE FORFAITS COURSE A PIED

J'ai packages SSIS qui fonctionne sur chaque nuit pour déplacer les données de AS400 vers SQL Server 2005. De deux derniers mois, mes paquets consomment plus de temps pour terminer un travail planifié. Si je cours manuellement les mêmes paquets, ils se terminent normalement. Dans tous mes paquets ssis, je tronque les données dans le serveur sql, puis insère des données en bloc dans ces tables. Même j'ai beaucoup d'index non groupés sur ces tables. Dois-je supprimer tous les index de ces tables avant d'exécuter les packages SSIS d'insertion en bloc et une fois le package réussi, créer des index non cluster afin de pouvoir résoudre les contraintes de performances et de temps des packages. Je ne suis pas sûr que ce serait le problème, S'il vous plaît me guider pour résoudre ce problème

Répondre

0
From last couple of months my packages consuming more time to complete 
as a scheduled job. In all my ssis packages i am truncating the data in sql 
server then Bulk inserting data in those tables 

Je suppose que sur une période de temps, la quantité de données que vous besoin de mettre en vrac va continuer à croître avec cette conception ? Cela pourrait expliquer pourquoi le travail pourrait devenir progressivement plus lent.

Even I have lot of non clustered indexes on those tables. Do I need to drop all 
indexes on those tables before executing bulk insert SSIS packages and once the 
package is succeeded I have to create Non clustered indexes so that the 
performance and time consuming constraint of the packages can be solved 

Les index ralentiront définitivement l'insertion des données. Cependant, il peut s'agir de bien plus que de vos index non clusterisés. En fonction des valeurs des colonnes utilisées pour constituer l'index clusterisé, c'est-à-dire la clé primaire, il se peut que l'index clusterisé ralentisse les insertions. Cela peut dépendre de l'ordre des données que vous insérez et pourrait être quelque chose qui pourrait être contrôlé.

Comme vous l'avez déjà souligné, vous pouvez essayer de supprimer et de recréer les index post-insertion. Cependant, vous devez prendre en compte le temps nécessaire pour recréer les index et voir si ce temps supplémentaire entraîne une amélioration des performances suffisante pour vous.

En général, je vous suggère de noter d'abord le temps nécessaire à chaque étape de votre DTS pour déterminer précisément quelle étape est la plus lente, puis décider comment il peut être amélioré. À l'heure actuelle, sans données, vous photographiez vraiment dans le

+0

1. les données ont été générées à partir du dernier mois mais le même paquet qui prend 6 heures à compléter comme un travail se termine en 2,5 heures dans BIDS lorsque je cours manuellement.Je suis vraiment incapable de comprendre pourquoi une différence si énorme entre les deux courses. –

+0

@Mohammed Mushtaq - Serait-ce à cause du timing? Avez-vous vérifié quelles autres activités/travaux/transactions/traitements se déroulent dans la base de données au moment où ce travail est planifié? Quelque chose d'autre pourrait bloquer la ligne/table en question? Ou il pourrait juste être la charge sur le DB à ce moment-là .. Avez-vous essayé d'exécuter le travail à une autre heure/jour pour voir comment cela se passe? – InSane

+0

Il s'agit d'un serveur nouvellement formaté et aucune grosse tâche ne s'exécute à l'exception de mes paquets. J'ai essayé de courir pendant le jour même problème que j'ai affronté. Comme il fonctionne pendant la nuit, il n'y a pas de point de charge. En effet, les utilisateurs utilisent ce serveur pour les rapports MIS. –

0

noir J'ai obtenu de bonnes vitesses d'insertion en utilisant la destination OLEDB, avec le mode d'accès aux données = table ou vue chargement rapide

Vous pouvez jouer avec les options de verrouillage de la table , vérifie les contraintes, etc.

+0

ami daer j'ai déjà mis l'option de chargement rapide merci pour votre réponse –