0

Je recevais des délais d'attente sur mon application lorsque j'essayais d'appeler une procédure stockée spécifique. Je l'ai isolé à un sproc spécifique et j'ai découvert que lorsque j'appelle une fonction tablevalued dans ce sproc avec un paramètre, cela prend une éternité à s'exécuter. Mais si je passe dans une valeur spécifique (comme 804), il reviendra rapidement. Si je l'exécute tout seul avec le paramètre, il fonctionne bien, mais quand je le rajoute dans la requête avec le paramètre, il s'exécute pour toujours .... alors permuter le param avec une valeur statique et il court vite?Problème vraiment étrange avec la fonction Valued Table

mesures que j'ai pris:

  1. procédure supprimée et recréée.
  2. Ran DBCC FREEPROCCACHE sur tous les plans contenant une chaîne de requête similaire.
  3. Juste un db de test donc j'ai restauré le db avec la sauvegarde des dernières nuits.

Une autre chose à noter. Sur un autre db sur le même serveur ... à peu près la même quantité de données ça marche bien ...... très étrange.

Qu'est-ce que je néglige? Je ne comprends vraiment pas.

+0

question connexe ici: http://stackoverflow.com/ questions/866722/t-sql-process-design-and-execution-plan-udf-parameter-sniffing – JNK

+2

Assurez-vous que le type de données du paramètre fonction et du paramètre SP est identique. Vérifiez également les plans d'exécution dans les deux cas. –

+0

@amit_g: devrait faire une réponse. C'est un point valide. – gbn

Répondre

1

Parameter sniffing?

Désolé pour la réponse courte, mais la peine de lire quelques réponses ...

De moi auparavant trop

+1

J'ai lié à une question connexe que vous avez également répondu. – JNK

+0

Merci les gars je vais jeter un oeil ... J'apprécie les commentaires. – scarpacci

+0

Était des statistiques sur l'une des tables de base à mon avis. Merci encore pour l'information. – scarpacci

Questions connexes