1
在急於下班的時候,我在一個具有循環分佈的新表上運行了一個大插入。我知道這是不太可能的,但是有沒有辦法改變表的分佈從循環到散列分佈?更改表分佈(Azure數據倉庫)
在急於下班的時候,我在一個具有循環分佈的新表上運行了一個大插入。我知道這是不太可能的,但是有沒有辦法改變表的分佈從循環到散列分佈?更改表分佈(Azure數據倉庫)
不幸的是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
是有辦法檢查表散列? – m1nkeh
@ m1nkeh不,它沒有公開,但你可以假設所有具有相同值的行具有相同的散列。我可以問爲什麼你可能需要檢查哈希? – wBob
在最後使用了sys視圖 – m1nkeh