gpt4 book ai didi

sql - 如何加速涉及 count(distinct()) 的 SQL Server 查询

转载 作者:行者123 更新时间:2023-12-03 02:07:01 28 4
gpt4 key购买 nike

我有一个看似简单的 SQL Server 查询,其花费的时间比我预期的要长得多。

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SELECT COUNT(DISTINCT(guid)) FROM listens WHERE url='http://www.sample.com/'

“guid”为 varchar(64) NULL

“url”为 varchar(900) NULL

有关于guid和url的索引。

“listens”表中有超过 700 万行,其中 17,000 行与相关 URL 匹配,查询结果为 5,500 条。

在具有 1GB RAM 的相当空闲的双核 AMD Opteron 2GHz 的 SQL Server 2008 上运行此查询需要 1 分钟多的时间。

有什么想法可以缩短执行时间吗?理想情况下应该在 1 秒以内!

最佳答案

在 url 上创建一个索引,该索引将覆盖 GUID:

CREATE INDEX ix_listens_url__guid ON listens (url) INCLUDE (guid)

将 URL 作为标识符处理时,最好存储并索引 URL 哈希值,而不是整个 URL

关于sql - 如何加速涉及 count(distinct()) 的 SQL Server 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2052303/

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