J'essaie d'utiliser SQL Server Profiler (2005) pour identifier certains problèmes de performances d'applications. L'un des appels en cours est une fonction définie par l'utilisateur définie par une table. Cette fonction encapsule un select qui joint plusieurs tables ensemble.Instructions de profilage dans une fonction définie par l'utilisateur
Dans SQL Server Profiler, l'appel à l'UDF est enregistré. Toutefois, la sélection qui sous-tend l'UDF n'est pas enregistrée du tout. Pour cette raison, je ne reçois pas de données utiles sur les tables & index qui sont touchés. J'aimerais ajouter cette information au conseiller de réglage de base de données pour obtenir des conseils d'indexation.
Existe-t-il un moyen (à part de déballer les requêtes elles-mêmes) de consigner les tables appelées par des fonctions définies par l'utilisateur dans Profiler?
C'est ce que je soupçonnais. : - \ –
@Craig Walker: Ils sont une douleur à dépanner. Utilisez-les avec parcimonie. Par exemple, toutes les lignes doivent être renvoyées par le TVF même si toutes ne sont pas nécessaires, ou dans d'autres cas, les filtres etc. seront appliqués à des points plus optimaux dans la requête – gbn
Hmm ... convertir le TVF en TVF inline peut être faisable . –