2012-05-02 2 views
0

SQL Server 2008 R2를 사용하고 있습니다. 나는 파티셔닝 물건을 시도하고 몇 가지 질문을했습니다.사용자 정의 함수로 파티션 스키마 사용

여기 매우 간단한 예이다

CREATE PARTITION FUNCTION MyPartitionFunction (int) 
AS RANGE LEFT FOR VALUES (1,2) 

CREATE PARTITION SCHEME MyPartitionScheme AS 
PARTITION MyPartitionFunction ALL TO ([PRIMARY]) 

CREATE FUNCTION CalcPartitionValue (@value int) RETURNS int 
WITH SCHEMABINDING AS 
BEGIN 
    if @value % 2 = 0 return 1 
    return 2 
END 

CREATE TABLE MyTable 
(ID INT NOT NULL) 
ON MyPartitionScheme (dbo.CalcPartitionValue(ID)); 

I는 칸막이 함수의 입력으로 사용자 정의 함수를 사용할. 이 방법을 사용할 수 있습니까?

사용자 정의 함수로 계산 된 열을 만들 수 있다는 것을 알고 있습니다. 그러나 3 억 개가 넘는 행을 가진 테이블의 스키마 업데이트는 그렇게 빠르지 않을 것입니다. 그게 내가 사용자 정의 함수를 직접 사용하는 것이 가능한지 묻는 이유입니다.

답변

1

시도 계산 된 열과 계산식을 열 수식으로 사용합니다. 함수 정의에서 "With Schemabinding"옵션을 사용하면 모두 잘 작동합니다.

관련 문제