我使用 distribution=hash() 在 Azure SQL 数据仓库中创建了一个表。选择进行散列的列有 1000 个不同值,表有大约 70 亿行。但是,当我使用 dbcc pdw_showspaceused(') 查看数据分布时,我只能看到 node_id 1 到 10。为什么数据没有分布在所有 60 个节点上,即使我选择了一个具有更多不同值的 GUID 列进行散列?我可以做些什么来强制系统在所有 60 个节点上分配值吗?
最佳答案
您可以在此处查看哪些发行版连接到哪个节点:select * from sys.pdw_distributions
如果您确实想确保数据分布在所有 60 个发行版中,请使用 ROUND_ROBIN 而不是 HASH()。
也许您可以从这个系统 View 中获得更多信息:https://learn.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-pdw-column-distribution-properties-transact-sql
关于azure - 数据未分布在 Azure SQL 数据仓库中的 60 个节点上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44035858/