【问题标题】:Alter Table Distribution (Azure Data warehouse)更改表分布(Azure 数据仓库)
【发布时间】:2017-06-07 04:48:58
【问题描述】:

在匆忙下班时,我在一个具有循环分配的新表上运行了一个大型插入。我知道这不太可能,但有没有办法将表格的分布从循环更改为哈希分布?

【问题讨论】:

    标签: tsql azure azure-sql-database data-warehouse


    【解决方案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
    

    【讨论】:

    • 有没有办法检查表的哈希?
    • @m1nkeh 不,它没有公开,但您可以假设所有具有相同值的行都具有相同的哈希值。我能问一下为什么您可能需要检查哈希吗?
    • 最后是用系统视图做的
    • 嗨@m1nkeh,你能分享一下你做了什么吗?
    猜你喜欢
    • 1970-01-01
    • 2017-10-29
    • 2019-06-18
    • 2018-06-09
    • 1970-01-01
    • 2019-08-28
    • 2019-11-09
    • 1970-01-01
    • 2018-03-12
    相关资源
    最近更新 更多