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));
我要使用的用戶定義的函數作爲分區功能輸入。有什麼辦法可以使這個工作?
我知道可以用用戶定義的函數創建一個計算列。但是,超過3億行的表上的模式更新不會那麼快。這就是爲什麼我問是否可以直接使用用戶定義的功能。