gpt4 book ai didi

sql - 用于提高 SQL Server 上多个连接性能的索引 View

转载 作者:行者123 更新时间:2023-12-03 15:22:51 25 4
gpt4 key购买 nike

我有一个对许多表执行连接的查询,这导致性能不佳。

为了提高性能,我创建了一个索引 View ,我发现使用日期过滤器查看查询的性能有了显着提高。但是,我担心的是索引的存储。据我所知,唯一聚集索引存储在 SQL Server 上。这是否意味着它单独存储作为 View 内连接的一部分产生的整个数据?如果是这样,如果我在 View 中包含了作为连接一部分的表中的所有列,那么消耗的服务器上的磁盘空间是否大约是没有索引 View 的磁盘空间的两倍?每次我将数据输入基础表时,索引 View 的数据都会重复吗?

最佳答案

那是正确的。索引 View 基本上是一个附加表,它以排序方式包含所有数据的副本。这就是它如此之快的原因,但随着 SQL Server 中的所有内容的出现,它是有代价的——在这种情况下,需要额外的存储空间以及保持所有数据副本同步所需的额外时间。

对于表上的普通索引也是如此。它也是索引键的副本(加上一些关于在哪里可以找到原始行的信息),在更新期间需要额外的存储空间和额外的时间来维护。

要确定在表或 View 上添加索引是否有意义,需要您查看整个系统并查看一个查询的性能改进是否值得其他查询的性能下降。

在您的情况下,您还应该(首先)检查基础表上的其他索引是否可能有助于您的查询。

关于sql - 用于提高 SQL Server 上多个连接性能的索引 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14965646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com