如何在对引用表执行更新或删除操作之前禁用使用架构绑定创建的视图



我有一个使用"WITH SCHEMABINDING"创建的视图,它有一个唯一的聚集索引,三个不同的非聚集索引。问题是,在创建此视图之前,更新或删除操作(影响超过 1000 行(花费不到 2 秒的时间,但在我创建视图后,删除或更新操作大约需要 930 秒。

我搜索了一下,当我在不使用"WITH SCHEMABINDING"参数的情况下更改视图时,它解决了问题,删除或更新操作成本约为 1 或 2 秒。Hovewer 我需要使用"WITH SCHEMABINDING"来创建索引。

我不想在每次删除或更新操作之前更改视图。有没有办法禁用此视图或此问题的实际解决方案是什么?

问题似乎不在于架构绑定选项。

当您有一个带有索引和更新基础表的视图时,视图上的索引也必须更新 - 就像您在表上有这个索引一样。

因此,您要么加快从视图中读取的速度并在那里建立索引并失去写入性能,反之亦然。没有其他简单的选择:(

请考虑删除视图上的四个索引中的一些,并尝试找到一些满足要求的性能平衡。

最新更新