gpt4 book ai didi

SQL 服务器 : How can a table scan be so expensive on a tiny table?

转载 作者:行者123 更新时间:2023-12-03 16:51:55 24 4
gpt4 key购买 nike

我正在查看一个麻烦查询的执行计划。

我可以看到 45% 的计划用于对包含七 (7) 行数据的表进行表扫描。

我打算在一个有七行的表上放置一个聚集索引来覆盖我查询中的列,但感觉……不对。鉴于表如此之小,我的查询的这一部分怎么能占用这么多的计划呢?

我正在阅读here感觉这可能只是因为数据不连续——所讨论的表上根本没有索引。总的来说,尽管我们的数据库很大(7GB)而且很忙。

我很想知道其他人的想法 - 谢谢!

编辑:

查询运行非常频繁并陷入死锁(并被选为受害者)。现在它需要 300 毫秒到 500 毫秒才能运行,但当数据库更繁忙时会花费更长的时间。

查询:

select l.team1Score, l.team2Score, ls.team1ExternalID, ls.team2ExternalID, et.eventCategoryID, e.eventID, ls.statusCode 
from livescoretracking l(nolock)
inner join liveScores ls (nolock) on l.liveScoreID = ls.liveScoreID
inner join db1.dbo.events e on e.gameid = ls.gameid
inner join db1.dbo.eventtype et (nolock) on e.eventTypeID = et.eventTypeID
inner join eventCategoryPayTypeMappings ecb (nolock) on ( et.eventCategoryID = ecb.eventCategoryID and e.payTypeID = ecb.payTypeID and ecb.mainEvent = 1 )
where ls.gameID = 286711 order by l.dateinserted

问题表是 eventCategoryPayTypeMappings 表 - 谢谢!

最佳答案

在不知道实际总成本的情况下,百分比成本毫无意义。例如如果查询需要 1 毫秒来执行,表扫描的 45% 成本是 0.45 毫秒,这不值得尝试优化,如果查询需要 10 秒来执行,那么 45% 的成本很重要,值得优化。

关于SQL 服务器 : How can a table scan be so expensive on a tiny table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3441263/

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