这个函数在调用表时只需要1100条记录就需要很长时间

时间:2017-07-17 05:42:07

标签: sql sql-server tsql

ALTER FUNCTION [dbo].[svf_mst703_category_value_name_input_value_code] (@category_value_id varchar(max))
RETURNS varchar(100)
AS
BEGIN
  DECLARE @category_value_name varchar(100)
  SELECT
    @category_value_name = mcv.category_value_name
  FROM dbo.mst703_category_value mcv
  WHERE mcv.category_value_code = @category_value_id
  RETURN @category_value_name;
END;

2 个答案:

答案 0 :(得分:0)

您应该看到该功能的“实际执行计划”,以查看是否存在任何问题。如果您将其发布在此处也会有所帮助。

我要做的另一件事是为mcv.category_value_code列添加索引。

答案 1 :(得分:0)

试试这个

ALTER FUNCTION [dbo].[svf_mst703_category_value_name_input_value_code] (@category_value_id varchar(max))
RETURNS varchar(100)
AS
BEGIN
  DECLARE @category_value_name varchar(100)
  SET @category_value_name = (SELECT
    TOP 1 mcv.category_value_name
  FROM dbo.mst703_category_value mcv
  WHERE mcv.category_value_code = @category_value_id)
  RETURN @category_value_name;
END;