Bookmark lookup为什么和Order by 相关呢?哪位老大来指点一下。

superhasty 2005-08-17 06:11:57
一个查询计划中,首先是Index seek,按照非聚集索引查询,然后是bookmark lookup。这都是正常的。

按照计划,下一步才会执行Order by或者其它任务。
奇怪的是,如果有Order by条件指定,bookmark lookup的花费就会大幅度增加。如果没有指定order by(仅仅是没有order by,其它都一样),则bookmark lookup的cost会非常小,只有原来的十分之一。

因为看查询计划中,bookmark lookup在整个执行中占的比重已经很大了,所以需要解决这个问题才能更好的优化性能。

但百思不得其解啊,一个order by, 会对查询有这么大的影响吗?(在这个案例中,没有order by,整个查询耗时只有原来的三分之一。)

...全文
140 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mschen 2005-08-18
  • 打赏
  • 举报
回复
--排序上确实cost比较大,可以通过在排序字段上建立簇索引来加快排序的速度.

create clustered index ind_order
on 表(排序字段)
WangZWang 2005-08-17
  • 打赏
  • 举报
回复
在order by 的字段建立复合索引,order by 速度的快慢要
从字段类型,数量,硬件....多方面来决定

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧