在 Azure Synapse 中,如何检查 table 的分布情况
In Azure Synpase, how can I check how a table is distributed
在 Azure Synapse 中,如何检查 table 的分布情况。比如是循环分发还是hash key分发。
您可以在专用 SQL 池中使用动态管理视图 (DMV) sys.pdw_table_distribution_properties
来确定 table 是通过循环、散列还是复制进行分发,例如
SELECT
OBJECT_SCHEMA_NAME( object_id ) schemaName,
OBJECT_NAME( object_id ) tableName,
*
FROM sys.pdw_table_distribution_properties;
这是 distribution_policy_desc
列。一些示例结果:
不要混淆 distribution and partitioning。我已经更新了问题。
pdw_table_distribution_properties
当然是有可能的。
或者使用任何客户端(Data Studio、SSMS、带有插件的 VS Code,...)为 table 生成创建 DDL。
例如在 Azure Data Studio 中,右键单击 table 并单击“Script as Create”。
在 WITH
子句中寻找 DISTRIBUTION
。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[sa_logs]
(
[version_number] [float] NULL,
[request_start_time] [datetimeoffset](7) NULL,
...
[referrer_header] [varchar](256) NULL,
)
WITH
(
DISTRIBUTION = ROUND_ROBIN,
HEAP
)
GO
或 table 与 HASH
:
...
DISTRIBUTION = HASH ( [hash_column] ),
...
在 Azure Synapse 中,如何检查 table 的分布情况。比如是循环分发还是hash key分发。
您可以在专用 SQL 池中使用动态管理视图 (DMV) sys.pdw_table_distribution_properties
来确定 table 是通过循环、散列还是复制进行分发,例如
SELECT
OBJECT_SCHEMA_NAME( object_id ) schemaName,
OBJECT_NAME( object_id ) tableName,
*
FROM sys.pdw_table_distribution_properties;
这是 distribution_policy_desc
列。一些示例结果:
不要混淆 distribution and partitioning。我已经更新了问题。
pdw_table_distribution_properties
当然是有可能的。
或者使用任何客户端(Data Studio、SSMS、带有插件的 VS Code,...)为 table 生成创建 DDL。
例如在 Azure Data Studio 中,右键单击 table 并单击“Script as Create”。
在 WITH
子句中寻找 DISTRIBUTION
。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[sa_logs]
(
[version_number] [float] NULL,
[request_start_time] [datetimeoffset](7) NULL,
...
[referrer_header] [varchar](256) NULL,
)
WITH
(
DISTRIBUTION = ROUND_ROBIN,
HEAP
)
GO
或 table 与 HASH
:
...
DISTRIBUTION = HASH ( [hash_column] ),
...