2017-06-06 101 views
1

在急於下班的時候,我在一個具有循環分佈的新表上運行了一個大插入。我知道這是不太可能的,但是有沒有辦法改變表的分佈從循環到散列分佈?更改表分佈(Azure數據倉庫)

回答

1

不幸的是ALTER TABLE不支持更改Azure SQL數據倉庫中表的分佈。你可以做一個最好的事情是創建一個使用CTAS表的副本,刪除原始表,然後重命名新的,這樣的事情:

CREATE TABLE dbo.yourTable2 
WITH (
    CLUSTERED COLUMNSTORE INDEX, 
    DISTRIBUTION = HASH (yourColumn) 
    ) 
AS 
SELECT * 
FROM dbo.yourTable 
OPTION (LABEL = 'CTAS: Change distribution on dbo.yourTable'); 
GO 

DROP TABLE dbo.yourTable 
GO 
RENAME OBJECT dbo.yourTable2 TO yourTable; 
GO 
+0

是有辦法檢查表散列? – m1nkeh

+0

@ m1nkeh不,它沒有公開,但你可以假設所有具有相同值的行具有相同的散列。我可以問爲什麼你可能需要檢查哈希? – wBob

+0

在最後使用了sys視圖 – m1nkeh