Je charge des tables dans mon entrepôt à l'aide de SSIS. Comme mon SSIS est lent, il m'a semblé une bonne idée de créer des index sur les tables.Réglage de l'index pour les tâches SSIS
Il n'y a pas de clés primaires (et donc de clés étrangères), d'index (groupés ou non), de contraintes, dans cet entrepôt. En d'autres termes, il est 100% sans efficacité.
Nous allons mettre des index basés sur l'utilisation - en analysant les nouvelles requêtes et les performances de la requête en cours. Donc, au lieu de le faire à la manière usée de la lecture et de la lecture des instructions SQL et des plans d'exécution, je pensais que j'utiliserais le brillant nouveau moteur d'optimisation du moteur de base de données.
J'ai désactivé la journalisation SQL dans mon package SSIS et j'ai exécuté une trace de «réglage», l'ai enregistrée dans une table et j'ai analysé la sortie dans l'assistant de réglage. La plupart des recherches sont effectuées comme:
exec sp_executesql N'SELECT [Active], [CompanyID], [CompanyName], [CompanyShortName], [CompanyTypeID], [HierarchyNodeID] FROM [dbo].[Company] WHERE ([CompanyID][email protected]) AND ([StartDateTime] IS NOT NULL AND [EndDateTime] IS NULL)',N'@P1 int',1
exec sp_executesql N'SELECT [Active], [CompanyID], [CompanyName], [CompanyShortName], [CompanyTypeID], [HierarchyNodeID] FROM [dbo].[Company] WHERE ([CompanyID][email protected]) AND ([StartDateTime] IS NOT NULL AND [EndDateTime] IS NULL)',N'@P1 int',2
exec sp_executesql N'SELECT [Active], [CompanyID], [CompanyName], [CompanyShortName], [CompanyTypeID], [HierarchyNodeID] FROM [dbo].[Company] WHERE ([CompanyID][email protected]) AND ([StartDateTime] IS NOT NULL AND [EndDateTime] IS NULL)',N'@P1 int',3
exec sp_executesql N'SELECT [Active], [CompanyID], [CompanyName], [CompanyShortName], [CompanyTypeID], [HierarchyNodeID] FROM [dbo].[Company] WHERE ([CompanyID][email protected]) AND ([StartDateTime] IS NOT NULL AND [EndDateTime] IS NULL)',N'@P1 int',4
et l'analyse, ces déclarations ont la raison "de l'événement ne fait pas référence à des tables". Huh? Ne voit-il pas le FROM dbo.Company ?? !! Qu'est-ce qui se passe ici?
Donc, j'ai plusieurs questions:
- Comment puis-je obtenir pour capturer la déclaration réelle d'exécution dans ma trace, pas ce qui a été présenté dans un lot?
- Existe-t-il des meilleures pratiques à suivre pour optimiser les performances des packages SSIS exécutés sur SQL Server 2008?
question édité sur la base de votre entrée . Je n'utilise pas le DMV. Je n'ai pas de FK ou PK - juste des indices dans l'entrepôt. Aucune contrainte de vérification - uniquement les consignes par défaut. Avez-vous des ressources pour DMV que je peux apprendre? –
http://blogs.msdn.com/bartd/archive/2007/07/19/are-you-using-sql-s-missing-index-dmvs.aspx – onupdatecascade