Sql server SQL DW-使用拆分进行分区
我有一个按月分区的SQLDW表。我们的DBA在几个月前离开了,因此我们的表从那时起就没有被分区过。我们注意到只是因为在桌子上慢下来 当我们尝试使用split函数添加分区时,我们会得到下面的错误 ALTER PARTITION语句的SPLIT子句失败,因为分区不是空的 我们尝试了以下方法Sql server SQL DW-使用拆分进行分区,sql-server,azure-sqldw,Sql Server,Azure Sqldw,我有一个按月分区的SQLDW表。我们的DBA在几个月前离开了,因此我们的表从那时起就没有被分区过。我们注意到只是因为在桌子上慢下来 当我们尝试使用split函数添加分区时,我们会得到下面的错误 ALTER PARTITION语句的SPLIT子句失败,因为分区不是空的 我们尝试了以下方法 CREATE TABLE [data].[sessions_range] WITH ( CLUSTERED COLUMNSTORE INDEX, DISTRIBUTION = HASH([ses
CREATE TABLE [data].[sessions_range]
WITH
(
CLUSTERED COLUMNSTORE INDEX,
DISTRIBUTION = HASH([sesh_id]),
PARTITION
(
-- SAMPLE RANGE
[session_start_dt] RANGE RIGHT FOR VALUES
(
'2016-12-01'
)
)
)
AS
SELECT *
FROM [data].[sessions]
WHERE 1=2
;
ALTER TABLE [data].[sessions] SWITCH PARTITION <guessed at a partition number>
TO [data].[sessions_range] PARTITION 2;
ALTER TABLE [data].[sessions] SPLIT RANGE ('2016-12-01');
在最后一排之后,它失败了。交换机分区似乎是ok的,尽管我们必须检查分区号,直到在范围内找到相应的分区
有谁能帮我们解释一下,为什么即使在我们切换之后,分区在分割过程中仍然会说notempty?没有必要猜测。Azure SQL数据仓库支持以下DMV:
sys.partitions
sys.partition_functions
sys.partition_parameters
sys.partition_range_values
sys.partition_schemes
这将帮助您了解表如何映射到值,以便清空相关分区
查看本文以了解有关Azure SQL数据仓库中分区的提示:
还要回顾一下最近的答案,其中演示了分区切换,并展示了目标表如何与源表具有相同的分区布局,以使其工作:
您的DBA真的没有留下任何计划或交接吗?禁用Columnstore索引,执行拆分,然后重建Columnstore索引。当表上存在列存储时,只能拆分空分区。抱歉。有关如何处理此问题的详细信息,请参阅。这不起作用。Msg 7725,16级,状态1,第31行Alter partition function语句失败。无法通过更改分区函数“PFunc_ce19acb8949f4e248be4ce51ec680b3b”来重新分区表“table_1b651cb9dc3149d1ba96dfac0533b021_4”,因为其聚集索引“Idx_3b8705810d524f0797838b47ef870b4f”已禁用。用户已取消操作。如果尝试禁用和拆分,则会出现上述错误。另外,您发布的链接不适用于SQL DW。