Est-il possible pour un administrateur de base de données de jeter un coup d'œil sur le plan d'exécution d'une requête à exécution longue dans SQL Server 2000? Je sais comment exécuter SQL en utilisant fn_get_sql(). Et oui, théoriquement, si vous ouvrez une nouvelle connexion et que vous définissez les mêmes indicateurs d'environnement, cela devrait générer le même plan pour le SQL. Cependant, je suis dans un environnement d'entrepôt de données et cette requête a duré 12 heures avec une charge de données intermédiaire. Il n'y a donc aucune garantie que le nouveau plan correspondrait à l'ancien plan. Je veux juste savoir exactement ce que fait le serveur. Et non, je ne vais certainement pas tuer l'instruction en cours d'exécution à moins que je puisse voir le plan et savoir avec certitude que je peux faire mieux avec les indices et les indices de jointure. Je me sens si proche, mais je pense toujours que cela peut être fait. Cela peut certainement être fait en 2K5 et plus tard. Si vous regardez la table virtuelle syscacheobjects, il existe des identifiants d'objets pour chaque plan mis en cache. Vous pouvez appeler les méthodes sp_OA * sur ces identifiants, mais sans connaître le modèle d'objet (qui est propriétaire), je ne peux rien obtenir.Plan d'exécution d'une instruction SQL en cours d'exécution dans SQL Server 2000
Répondre
Je ne pense pas que vous pouvez faire une telle chose, il doit être soumis au serveur avec la requête initiale:
http://msdn.microsoft.com/en-us/library/aa178303(SQL.80).aspx.
Vous pouvez charger la requête et obtenir le plan d'exécution estimé.
Non, vous ne pouvez pas. Le mieux que vous pouvez faire est d'exécuter DBCC INPUTBUFFER sur le processus de requête et de voir ce que la dernière instruction en cours d'exécution était. Vous pouvez ensuite l'exécuter dans l'analyseur de requête et obtenir un plan d'exécution.
... Peut-être
Run profileur et développez le nœud événements "performance". Choisissez l'une des options SHOWPLAN.
Espérons que vous serez en mesure d'intercepter la fin de l'exécution. Je sais que vous pouvez enregistrer des plans de requête, mais je ne sais pas si cela fonctionne dans ce cas.
Je n'ai pas de profileur SQL 2k, seulement 2k5, pour tester quelque chose ou voir les options.
- 1. SQL Server 2000 FTP
- 2. Erreurs SQL Server 2000 Server
- 3. Lucene.NET avec SQL SERVER 2000
- 4. SQL Server 2000 et System.Transactions.TransactionScope()
- 5. Transposition Colonne dans SQL Server 2005/2000
- 6. Table Diff dans SQL Server 2000
- 7. SQL Server 2008 réplication vers SQL Server 2000
- 8. SQL Server 2000 comme Déclaration d'utilisation
- 9. Existe-t-il un outil qui indique si SQL Server 2008 est en cours d'exécution (comme dans SQL 2000)?
- 10. SQL Server 2000> EXÉCUTER COMME
- 11. SQL Server 2000 Personal Edition: SQL Query Analyzer n'apparaît pas
- 12. alternatif sp_spaceused dans SQL 2000
- 13. Différence entre deux ensembles de données dans SQL Server 2000
- 14. erreur dans SQL Server 2000 mais pas dans SqlServer 2005
- 15. SQL SERVER, instruction SELECT avec auto générer la ligne id
- 16. Sql Server 2000 - tempdb en croissance très grande
- 17. Dense_Rank() alternative dans sql server 2000? (Set based)
- 18. Modification du nom de colonne dans SQL Server 2000
- 19. Indexation dans SQL Server
- 20. CONSEIL sur la requête de facturation dans SQL Server 2000
- 21. sont-Common Table Expression (CTE) disponible dans SQL Server 2000
- 22. Fonction dans SQL Select Instruction
- 23. Fonction de type Implode dans SQL Server 2000?
- 24. Max DB taille dans SQL Server 2000 MSDE
- 25. Comment appeler un package DTS SQL Server 2000 dans VB.net
- 26. Existe-t-il un audit DDL dans SQL Server 2000
- 27. Comment se connecter à une table dans SQL Server 2000?
- 28. Comment puis-je désactiver les connexions dans SQL Server 2000?
- 29. Comment tronquer les valeurs décimales dans SQL Server 2000
- 30. Quelles sont les tables magiques disponibles dans SQL Server 2000?