gpt4 book ai didi

sql-server - SQL Server 创建包含不同或分组依据的 View 索引

转载 作者:行者123 更新时间:2023-12-03 17:08:50 24 4
gpt4 key购买 nike

这个问题不太可能对任何 future 的访客有帮助;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于互联网的全局受众。如需帮助使这个问题更广泛适用,visit the help center .




8年前关闭。




我的 SQL 服务器数据库中有一个地址数据表。此表未规范化,因此它包含许多重复的地址。每个唯一的地址都可以由一个 Id 字段标识(这些 id 在表中经常重复)。

所以我在表上创建了一个 View 来提取所有唯一地址,使用原始表中的 Select Distinct(AddressId)。

现在我想在这个 View 上创建一个索引来提高搜索速度,但是 SQL Server 不允许我在 View 上创建一个索引,因为它包含一个不同的或分组的(我已经尝试了两者,看看它是否会允许我创建索引)

有没有人对此有任何解决方案?或对替代方法的任何看法。

我需要根据地址关键字查询此 View ,并根据匹配计数返回这些 View ,我已准备好此查询,我正在尝试通过索引 View 中的字段来加快速度。

SQL Server 2008

SELECT      
AddressId,
AddressNumber,
AddressName,
Town,
City,
Country,
COUNT_BIG(*) As AddCount--,
--TRIM(AddressNumber + ' ') + LTRIM(AddressName + ' ') + LTRIM(Town + ' ') + RTRIM(City + ' ') AS AddressLookup
FROM
[Address] A
GROUP BY
AddressId,
AddressNumber,
AddressName,
Town,
City,
Country

是我的查询....

如果我用 AddressLookup 取出列,我可以添加索引

干杯

最佳答案

您可以使用 GROUP BY在索引 View 中,只要:

If GROUP BY is specified, the view select list must contain a COUNT_BIG(*) expression, and the view definition cannot specify HAVING, ROLLUP, CUBE, or GROUPING SETS.



Taken from MSDN

包括但只是忽略必要的 COUNT_BIG(*) 列。

关于sql-server - SQL Server 创建包含不同或分组依据的 View 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3501825/

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