Sno*_*orm -2 sql-server indexing
我需要编写一个只更新表而不是索引的查询,因为我想更新一个int字段而不需要更新10个巨大的索引
如果该int字段包含在任何索引定义中,则它们也必须更新.
出于明显的数据完整性原因,SQL Server不允许基表具有一个值而另一个索引具有另一个值.
如果该int字段未包含在任何索引定义中,则无论如何只会更新该表.
您可以禁用索引,但重新启用它们涉及重建整个索引.
这取决于你真正想做什么
保持索引与表数据一致是ACID中的Consistency。这就是SQL Server和ACID兼容的RDBMS的工作方式。
在某些情况下,例如散装负载,您需要延迟此一致性。因此,如果您有这种用例,请删除或禁用索引。
如果禁用索引:
如果您丢弃它们,则当然也不能使用它们。
大容量加载完成后,您可以再次启用或创建索引/约束。
如果这是您真正想要的,请阅读MSDN: