Azure Synapse:由于具有相关统计信息,因此无法删除列

问题描述

我们使用Azure Synapse Analytics。尝试删除列时

ALTER table my_table drop COLUMN my_column

它说: 统计信息“ Stat_616f789ac8c54c449f7910cb3bcb3810”取决于列“ my_column”。

但是我没有运气去找到说掉它们的统计数据:

select * from sys.stats where name like '%stat%'

我如何确定并消除这种烦人的障碍物?

解决方法

您可以使用对this查询的简单修改来显示表的自动创建的统计信息。进行以下更改:

where st.user_created = 0
      and sm.name = 'MY_SCHEMA_NAME'
      and tb.name = 'MY_TABLE_NAME' 

然后使用DROP STATISTICS命令删除有问题的统计信息。

或者,请关闭自动统计信息,以避免创建您无法识别的统计信息。

文档here