扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:ghj1976 来源:CSDN 2008年2月11日
关键字: Indexing SQL Server
我们仍然是通过例子来理解OR运算符的特征
我们仍然使用 http://blog.joycode.com/ghj/archive/2008/01/18/113870.aspx 中的 member 表,这时候,这个表的索引如下:
名字 | 描述 | 列 |
member_corporation_link | nonclustered located on PRIMARY | corp_no |
member_ident | clustered, unique, primary key located on PRIMARY | member_no |
member_region_link | nonclustered located on PRIMARY | region_no |
MemberFirstName | nonclustered located on PRIMARY | firstname |
MemberLastName | nonclustered located on PRIMARY | lastname |
我们执行下面的查询
SELECT m.LastName, m.FirstName, m.Region_No
FROM dbo.Member AS m
WHERE m.FirstName = 'Kimberly'
OR m.LastName = 'Tripp'
go
我们用另外一个SQL来模拟 SQL 的执行计划,就是下面的语句:
我们会看到上面语句跟下面的语句基本一样,只是一个是 Key Lookup ,一个是 Clustered Index Seek。 这里由于是模拟情况,可以认为是一样的。
select m.LastName, m.FirstName, m.Region_No这两个查询的扫描计数均是 2,逻辑读取均是 10 次。
FROM dbo.Member AS m with(index(member_ident)),
(
select ww.Member_No from (
select Member_No from dbo.Member where FirstName = 'Kimberly'
union all
select Member_No from dbo.Member where LastName = 'Tripp'
) ww
group by ww.Member_No
)
n
where m.Member_No = n.Member_No
go
他们俩个的执行计划如下图,点击看大图:
知识点小结:
OR 会做什么?
上面的例子中,我们用 union 来演示 or的情况。 OR和UNION相似。不同之处如下:
OR 的一个简单应用就是 In 关键字。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者