Lors de la création d'une fonction définie par l'utilisateur, est-il "mauvais" d'utiliser automatiquement la plus grande chaîne possible? Par exemple, étant donné l'UDF suivant, j'ai utilisé nvarchar(max)
pour ma chaîne d'entrée, où je sais parfaitement bien que la fonction actuelle ne va pas avoir besoin d'accepter nvarchar(max)
et peut-être que je suis juste en avant trop de réflexion , mais je supposais qu'il y aurait toujours la possibilité qu'un nvarchar(max)
soit passé à cette fonction. En faisant quelque chose de «mauvais», je me demande si en déclarant que cette fonction pourrait éventuellement recevoir et nvarchar(max)
je fais quoi que ce soit pour potentiellement paralyser les performances? NVARCHAR (MAX) affectera les performances s'il s'agit d'une colonne de base de données.Devrais-je utiliser le type de données chaîne le plus grand lors de la création d'une fonction définie par l'utilisateur qui fonctionne sur des chaînes?
CREATE FUNCTION [dbo].[IsMasNull] (@value nvarchar(max))
RETURNS BIT
AS
BEGIN
RETURN
CASE
WHEN @value IS NULL THEN 1
WHEN CHARINDEX(char(0), @value) > 0 THEN 1
ELSE 0
END
END