佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 2716|回复: 4

关于 MSSQL Query Cost

[复制链接]
发表于 9-11-2015 10:44 AM | 显示全部楼层 |阅读模式
本帖最后由 nick_khor 于 9-11-2015 10:48 AM 编辑

小弟我最近开始接触 MSSQL,在一个偶然下 发现了 execution plan 这个咚咚 ,然后有些疑问像请教。
我做了个试验,同时跑了以下两个 query

结果出来是第一个 query 的 cost 比较高。




我不明白的是,为什么 operator 的方式 sh.SOTypeID = 'RN' 的 cost 会比 wildcard 的 sh.ShipperID like '[R][N][0-9]%'  来的高呢?

我不熟 query cost 的算法,而我只是会一些简单的 join 而已。希望有前辈能指点迷津。
回复

使用道具 举报


ADVERTISEMENT

发表于 12-11-2015 04:06 PM | 显示全部楼层
這是partitioned table?


以我不專業的看法,應該是
  1. SOTypeID = ’RN'
复制代码
在兩個table有result,而多了個join的step

而那個
  1. ShipperID LIKE '[R][N][0-9]%'
复制代码
只在一個table有result,就直接得多


如果要比較,用同個field+return一樣result的會比較好

评分

参与人数 2积分 +10 人气 +10 收起 理由
musicalangel + 10 + 5 感谢回答
moot + 5 谢谢分享

查看全部评分

回复

使用道具 举报

发表于 12-11-2015 11:29 PM | 显示全部楼层
本帖最后由 gkheng2003 于 12-11-2015 11:30 PM 编辑

就如楼上讲的最后一句:

apple = apple
orange = orange

apple != orange
回复

使用道具 举报

发表于 18-11-2015 04:22 AM | 显示全部楼层
你自己已经highlight 了那20% cost 的部分。

第一图,多出来个 SOShipHeader.ShipperShipHeader16

@zaqre  指出这可能是partitioned table , 又加上这是 unsorted clustered index , 结果导致多出来个Inner join.




回复

使用道具 举报

发表于 26-11-2015 10:44 PM | 显示全部楼层
partition table 很多时候是看如何Partition 的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 20-4-2024 12:20 AM , Processed in 0.067197 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表