Je souhaite indexer une colonne calculée dans ma table de base de données qui utilise un certain nombre de fonctions définies par l'utilisateur. Cependant, je viens d'apprendre que ma colonne est non-déterministe.Fonctions scalaires déterministes
Sans indexer cela va être lent à exécuter les requêtes dont j'ai besoin.
Quelle est la meilleure façon de suivre les fonctions définies par l'utilisateur pour déterminer si elles sont déterministes? Existe-t-il un quelconque type d'outil dans SQL Server Management Studio qui me dira si une fonction définie par l'utilisateur est déterministe ou dois-je simplement suivre toutes les fonctions définies par le système que j'utilise pour déterminer -deterministic et trouver d'autres façons d'écrire mon code sans eux?
Votre première déclaration ne semble pas correcte selon ceux-ci: http://msdn.microsoft.com/en-us/library/ms187440.aspx, http://msdn.microsoft.com/en-us/library/ms178091.aspx. Par exemple, une fonction UDF qui appelle CURRENT_TIMESTAMP ne serait pas déterministe. –
Vous avez raison - il doit s'agir de connaissances provenant de SQL Server 2000, qui n'autorisaient pas les fonctions non déterministes dans un fichier UDF. –
Ma fonction doit être déterministe. C'est un calcul qui implique essentiellement une concaténation de chaînes, des dates et des instructions de cas –