Sql server SQL Server自动索引调整功能是否删除唯一索引?

Sql server SQL Server自动索引调整功能是否删除唯一索引?,sql-server,indexing,azure-sql-database,unique-index,data-consistency,Sql Server,Indexing,Azure Sql Database,Unique Index,Data Consistency,我想知道SQL Server 2017(或SQL Azure)自动索引调整功能是否会删除表上的任何唯一索引,因为这对数据一致性非常不利。关于Azure SQL数据库中提供的“删除索引”选项,唯一索引引入了定义表行为的约束,丢弃它们会改变这种行为。由于自动调整旨在尊重用户定义的约束,因此不会删除唯一索引 希望这能有所帮助。这实际上只是筛选出的唯一索引的问题。一个未过滤的唯一索引也可以(也可能应该)作为约束来实现,并且支持这些索引的索引不能在不明确删除约束的情况下删除(这是任何正常的索引调优机制都无

我想知道SQL Server 2017(或SQL Azure)自动索引调整功能是否会删除表上的任何唯一索引,因为这对数据一致性非常不利。

关于Azure SQL数据库中提供的“删除索引”选项,唯一索引引入了定义表行为的约束,丢弃它们会改变这种行为。由于自动调整旨在尊重用户定义的约束,因此不会删除唯一索引


希望这能有所帮助。

这实际上只是筛选出的唯一索引的问题。一个未过滤的唯一索引也可以(也可能应该)作为约束来实现,并且支持这些索引的索引不能在不明确删除约束的情况下删除(这是任何正常的索引调优机制都无法做到的——因为生成这些语句需要更多的工作,而且您不能意外地这样做).是的--我的观点是,如果您真的关心这个问题,并且索引不仅仅是为了加快查询速度,而是为了强制执行唯一性,那么您可能应该使用一个约束,这样就不会首先考虑优化是否会删除唯一索引的问题。(尽管我完全同意调优应该不使用唯一索引,因为它不知道它们是否用于完整性。)记住,索引调优总是可以只生成建议,然后自己采取行动。就我个人而言,我有足够的偏执,没有足够的过度工作,我总是这样使用它,而不是在全自动。否则,这个问题只能由一位微软工程师来回答,他说“当然,我构建它是为了不丢失唯一的索引,我不是疯了”或者“哎呀,嗯,你能很快打开一个支持问题吗?”所以。。。让我们看看是否会弹出一个。它被记录在某个地方,但它不会。但我不记得在哪里。因此,唯一的问题是这是否适用于副本。几个月前我做了一些测试。只需创建一个具有重复索引的数据库,并对其运行工作负载,然后等待一周。结果是,如果唯一索引也是重复索引(相同的键列、包含列、分区方案和筛选器),它建议删除它们,但没有自动删除它们。我对此也很好奇。我做过测试,结果表明不会,但是,我会把它和一个房子大小的盐粒放在一起。我正在与微软联系,看能否得到一个明确的答案。