lob city(**LSERVER语句 in和exists哪个效率高本人测试证明)
本文目录
**LSERVER语句 in和exists哪个效率高本人测试证明
最近很多人讨论in和exists哪个效率高,今天就自己测试一下我使用的是客户的数据库GPOSDB(已经有数据)环境:**LSERVER2005 Windows7我的测试条件:两个表作连接根据VC_IC_CardNO字段,查出CT_InhouseCard表中的VC_IC_CardNO(卡号)在CT_FuelingData表中存在的记录前提:某些人可能在**L语句中有多个in,或者多个exists,这些情况很难测试效率的,因为大家的条件都不相同例如下面两个**L语句1 SELECT OrderNo, SiteCode, AreaCode2 FROM Sche****ngProgram3 WHERE AreaCode IN ( ’P’, ’M’ ) AND SiteCode IN ( SELECT SiteCode4 FROM EnvBasicInfo5 WHERE cityiD = 31 ) AND OrderNo NOT IN (6 SELECT OrderNo7 FROM KK_DeliveryinfoTmp )上面**L语句IN里面有IN和NOT IN1 SELECT OrderNo, SiteCode, AreaCode2 FROM Sche****ngProgram3 WHERE ( AreaCode IN ( ’P’, ’M’ ) AND SiteCode IN ( SELECT SiteCode4 FROM EnvBasicInfo5 WHERE cityiD = 31 )6 ) AND NOT EXISTS ( SELECT OrderNo7 FROM KK_DeliveryinfoTmp8 WHERE KK_DeliveryinfoTmp.OrderNo = Sche****ngProgram.OrderNo )上面的**L语句IN里面又有NOT EXISTS这样的情况很难测试同等条件下IN语句和EXISTS语句的效率还有一个非SARG运算符在《**LSERVER企业级平台管理实践》的第424页里提到:**LSERVER对筛选条件(search argument/SARG)的写法有一定的建议对于不使用SARG运算符的表达式,索引是没有用的,**LSERVER对它们很难使用比较优化的做法。非SARG运算符包括NOT、《》、NOT EXISTS、NOT IN、NOT LIKE和内部函数,例如:Convert、Upper等所以当您的表中有索引并且**L语句包含非SARG运算符,那么当测试**L语句的执行时间的时候肯定相差很大,因为有些**L语句走索引,有些**L语句不走索引建表脚本注意:两个表中都有索引!!CT_FuelingData表 1 USE 2 GO 3 /****** 对象: Table 脚本日期: 08/24/2013 11:00:34 ******/ 4 SET ANSI_NULLS ON 5 GO 6 SET QUOTED_IDENTIFIER ON 7 GO 8 SET ANSI_PADDING ON 9 GO10 CREATE TABLE (11 IDENTITY(1,1) NOT NULL,12 NOT NULL,13 (50) NOT NULL,14 (50) NOT NULL,15 NULL,16 NOT NULL,17 NULL,18 NOT NULL,19 (50) NULL,20 (18, 2) NULL,21 (18, 2) NULL,22 (18, 2) NULL,23 (10, 2) NULL,24 NOT NULL,25 (50) NULL,26 NULL,27 (18, 2) NULL,28 (18, 2) NULL,29 (18, 2) NULL,30 NULL,31 (50) NULL,32 NULL,33 CONSTRAINT PRIMARY KEY CLUSTERED 34 (35 ASC36 )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON 37 ) ON 38 39 GO40 SET ANSI_PADDING OFFCT_InhouseCard表 1 USE 2 GO 3 /****** 对象: Table 脚本日期: 08/24/2013 10:59:58 ******/ 4 SET ANSI_NULLS ON 5 GO 6 SET QUOTED_IDENTIFIER ON 7 GO 8 SET ANSI_PADDING ON 9 GO10 CREATE TABLE (11 IDENTITY(1,1) NOT NULL,12 (50) NOT NULL,13 (50) NULL,14 NULL,15 (50) NULL,16 (50) NULL,17 (50) NULL,18 (50) NULL,19 (18, 2) NULL,20 (18, 2) NULL,21 (18, 2) NULL,22 NULL,23 NULL,24 NULL,25 NULL,26 (50) NULL,27 NULL,28 NULL,29 NULL,30 (256) NULL,31 CONSTRAINT PRIMARY KEY CLUSTERED 32 (33 ASC34 )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON 35 ) ON 36 37 GO38 SET ANSI_PADDING OFF测试脚本因为这个是客户的数据库,本来里面已经有数据了,所以在测试之前先更新两个表的统计信息,以做到公正1 USE 2 GO3 UPDATE STATISTICS CT_FuelingData4 UPDATE STATISTICS CT_InhouseCard5 GOIN语句 1 USE 2 GO 3 D**C DROPCLEANBUFFERS 4 GO 5 D**C FREEPROCCACHE 6 GO 7 SET STATISTICS IO ON 8 GO 9 SET STATISTICS TIME ON10 GO11 SET STATISTICS PROFILE ON12 GO13 SELECT * FROM )EXISTS语句 1 USE 2 GO 3 D**C DROPCLEANBUFFERS 4 GO 5 D**C FREEPROCCACHE 6 GO 7 SET STATISTICS IO ON 8 GO 9 SET STATISTICS TIME ON10 GO11 SET STATISTICS PROFILE ON12 GO13 SELECT *14 FROM 15 WHERE EXISTS ( SELECT 16 FROM 17 WHERE )测试结果IN语句 1 **L Server 执行时间: 2 CPU 时间 = 0 毫秒,占用时间 = 2 毫秒。 3 **L Server 分析和编译时间: 4 CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 5 6 **L Server 执行时间: 7 CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 8 **L Server 分析和编译时间: 9 CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。10 11 **L Server 执行时间:12 CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。13 **L Server 分析和编译时间: 14 CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。15 16 **L Server 执行时间:17 CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。18 **L Server 分析和编译时间: 19 CPU 时间 = 31 毫秒,占用时间 = 67 毫秒。20 21 (167 行受影响)22 表 ’Worktable’。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。23 表 ’CT_FuelingData’。扫描计数 1,逻辑读取 31 次,物理读取 1 次,预读 64 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。24 表 ’CT_InhouseCard’。扫描计数 1,逻辑读取 2 次,物理读取 1 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。25 26 (4 行受影响)27 28 **L Server 执行时间:29 CPU 时间 = 16 毫秒,占用时间 = 192 毫秒。EXISTS语句 1 **L Server 分析和编译时间: 2 CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 3 4 **L Server 执行时间: 5 CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 6 **L Server 分析和编译时间: 7 CPU 时间 = 0 毫秒,占用时间 = 34 毫秒。 8 9 (167 行受影响)10 表 ’Worktable’。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。11 表 ’CT_FuelingData’。扫描计数 1,逻辑读取 31 次,物理读取 1 次,预读 64 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。12 表 ’CT_InhouseCard’。扫描计数 1,逻辑读取 2 次,物理读取 1 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。13 14 (4 行受影响)15 16 **L Server 执行时间:17 CPU 时间 = 0 毫秒,占用时间 = 163 毫秒。大家可以看到除了执行时间有一点差别,IO是一样的因为数据量比较大,所以两个查询都用到了Worktable(中间表)来存储中间结果
Lob city是什么意思
意为:空接之城;空抛之城;空中接力之城例如: 美国时间2011年12月12日,当克里斯-保罗转会肥皂剧就要被强势搁浅时,黄蜂终于答应把他们的天之骄子转会到洛杉矶——并非湖人,而是快船。这个消息刚刚宣布,年轻的布雷克-格里芬就抑制不住自己的兴奋开始憧憬他和保罗的各种空中接力,他甚至说洛杉矶已经变成了“空中接力之城”(LOB CITY);而保罗则终于来到了他所希望加盟的大城市大市场,压抑不住的幸福感满溢:季前赛对阵同城老大湖人队,保罗和格里芬上下翻飞,直接横扫湖人,无论数据和结果都让人满意。
Lob city of the Eastern是什么意思
没必要这么翻, the eastern lob city 比较好,eastern本来就是形容词可做定语,不必要放到后面做定语。the要加,表限定。
更多文章:
2020年lpl进入世界赛的队伍(2020年rng进世界赛了吗)
2026年3月3日 20:10
尼克斯vs火箭录像回放(哪里可以看今天凌晨1点火箭对尼克斯直播)
2026年3月3日 17:30







