문제

와 연관되다 이 질문, 나는 데이터웨어 하우스에서 UDF를 확인하기로 결정했으며 (대부분 결정 론적이어야 함) 몇 가지를 찾지 못했습니다.

예를 들어:

CREATE FUNCTION [udf_YearFromDataDtID]
(
    @DATA_DT_ID int
)
RETURNS int
AS
BEGIN
    RETURN @DATA_DT_ID / 10000
END

이 쿼리에 나타납니다.

SELECT  ROUTINE_NAME
FROM    INFORMATION_SCHEMA.ROUTINES
WHERE   IS_DETERMINISTIC = 'NO'
        AND ROUTINE_TYPE = 'FUNCTION'
ORDER BY ROUTINE_NAME

왜 이런거야?

도움이 되었습니까?

해결책

yikes- 분명히, 그것은 다른 현명한 그것을 지정하기 위해서는 스키 메이딩이 필요합니다. 성능 문제를 일으킬 수 있습니다

ALTER FUNCTION [udf_YearFromDataDtID]
(
    @DATA_DT_ID int
)
RETURNS int
WITH SCHEMABINDING
AS
BEGIN
    RETURN @DATA_DT_ID / 10000
END

이것들을 수정하여 성능 향상을받을 수있을 것 같습니다. 멋진.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top