奇怪的问题,SQL2008和SQL2000速度差异很大

lmtfw 2013-05-03 05:14:08
2台测试机器,
A机器:曙光服务器,32G内存,WIN2008SERVER,同一个数据库附加在SQL2000和SQL2008上,1500万条数据查询测试,SQL2008速度比SQL2000快2倍

B机器:THINKPAD笔记本,16G内存,WIN7旗舰版64位同一个数据库附加在SQL2000和SQL2008上,1500万条数据查询测试,SQL2000速度比SQL2008快2倍

数据库都是一样,的,两台机器都安装了SQL2000,和SQL2008
两台机器测试结果完全相反,请问这是什么原因,是不是B笔记本上的SQL2008设置有问题?



...全文
760 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmtfw 2013-05-06
  • 打赏
  • 举报
回复
引用 23 楼 Haiwer 的回复:
2008用以下语句测试下,注意,语义是否相同,结果是否相同楼主自己需要关注下 SELECT SP.SPID, SP.SPBH, SP.SPMC, T.SL, T.CS FROM SP OUTER APPLY ( SELECT SUM(LSMCHZ.SL) AS SL, COUNT(1) AS CS --这里结果是否真的相同,楼主自己判断下 FROM HWZL INNER JOIN LSHZ ON HWZL.HWID = LSHZ.HWID INNER JOIN LSMCHZ ON LSHZ.DH = LSMCHZ.DH AND LSHZ.HZSJ = LSMCHZ.HZSJ WHERE LSMCHZ.SPID = SP.SPID ) AS T ORDER BY SP.SPBH
结果不相同
引用 23 楼 Haiwer 的回复:
2008用以下语句测试下,注意,语义是否相同,结果是否相同楼主自己需要关注下 SELECT SP.SPID, SP.SPBH, SP.SPMC, T.SL, T.CS FROM SP OUTER APPLY ( SELECT SUM(LSMCHZ.SL) AS SL, COUNT(1) AS CS --这里结果是否真的相同,楼主自己判断下 FROM HWZL INNER JOIN LSHZ ON HWZL.HWID = LSHZ.HWID INNER JOIN LSMCHZ ON LSHZ.DH = LSMCHZ.DH AND LSHZ.HZSJ = LSMCHZ.HZSJ WHERE LSMCHZ.SPID = SP.SPID ) AS T ORDER BY SP.SPBH
部分不相同
lmtfw 2013-05-06
  • 打赏
  • 举报
回复
引用 22 楼 Haiwer 的回复:
COUNT(DISTINCT 速度本来就成问题,测试下 COUNT(DISTINCT 一个字段) 看看2000和2008是否有无别
一个字段没有区别
昵称被占用了 2013-05-06
  • 打赏
  • 举报
回复
2008用以下语句测试下,注意,语义是否相同,结果是否相同楼主自己需要关注下 SELECT SP.SPID, SP.SPBH, SP.SPMC, T.SL, T.CS FROM SP OUTER APPLY ( SELECT SUM(LSMCHZ.SL) AS SL, COUNT(1) AS CS --这里结果是否真的相同,楼主自己判断下 FROM HWZL INNER JOIN LSHZ ON HWZL.HWID = LSHZ.HWID INNER JOIN LSMCHZ ON LSHZ.DH = LSMCHZ.DH AND LSHZ.HZSJ = LSMCHZ.HZSJ WHERE LSMCHZ.SPID = SP.SPID ) AS T ORDER BY SP.SPBH
昵称被占用了 2013-05-06
  • 打赏
  • 举报
回复
COUNT(DISTINCT 速度本来就成问题,测试下 COUNT(DISTINCT 一个字段) 看看2000和2008是否有无别
lmtfw 2013-05-06
  • 打赏
  • 举报
回复
是2008的,原因找出来了,测试了几台机器,当用到COUNT(DISTINCT 字段1+字段2)这种语句的时候,SQL2000比SQL2008快很多,如果没有用到这种语句,SQL2008稍快一些,是不是这种语句在2008里面优化方式有问题,我测试了2台机器,都是这个问题
  • 打赏
  • 举报
回复
引用 14 楼 lmtfw 的回复:
[quote=引用 13 楼 SQL_Beginner 的回复:] [quote=引用 9 楼 lmtfw 的回复:] [quote=引用 5 楼 SQL77 的回复:] A机器:曙光服务器,32G内存,WIN2008SERVER,同一个数据库附加在SQL2000和SQL2008上,1500万条数据查询测试,SQL2008速度比SQL2000快2倍 给结果 SET STATISTICS IO ON GO SET STATISTICS TIME ON GO 你的语句
就是普通查询语句,THINKPAD上2000大概30秒左右,2008要1分50秒[/quote] 你不给出详细结果,如何帮你分析呢除了上面两条建议再给出另外的计划。 SET STATISTICS profile ON GO SET STATISTICS IO ON GO SET STATISTICS TIME ON GO 只能把上面三个结果完整的贴出来,才能做到有的放失的去分析,否则只能靠猜。[/quote] 谢谢,我把结果贴一下 语句 SELECT SP.SPID, SP.SPBH, SP.SPMC, SUM(LSMCHZ.SL) AS SL, COUNT(DISTINCT LSMCHZ.HZSJ + LSMCHZ.DH) AS CS FROM HWZL INNER JOIN LSHZ ON HWZL.HWID = LSHZ.HWID INNER JOIN LSMCHZ INNER JOIN SP ON LSMCHZ.SPID = SP.SPID ON LSHZ.DH = LSMCHZ.DH AND LSHZ.HZSJ = LSMCHZ.HZSJ GROUP BY SP.SPID, SP.SPBH, SP.SPMC ORDER BY SP.SPBH SQL2000的结果是28秒 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 31 毫秒,耗费时间 = 44 毫秒。 表 'SP'。扫描计数 1,逻辑读 720 次,物理读 0 次,预读 0 次。 表 'Worktable'。扫描计数 2,逻辑读 3122939 次,物理读 0 次,预读 0 次。 表 'LSMCHZ'。扫描计数 1,逻辑读 61206 次,物理读 0 次,预读 0 次。 表 'LSHZ'。扫描计数 1,逻辑读 39442 次,物理读 0 次,预读 0 次。 表 'HWZL'。扫描计数 1,逻辑读 1 次,物理读 0 次,预读 0 次。 SQL Server 执行时间: CPU 时间 = 19126 毫秒,耗费时间 = 21986 毫秒。 (5085 行受影响) SQL2008的结果是1分53秒 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 92 毫秒,占用时间 = 92 毫秒。 (5085 行受影响) 表 'HWZL'。扫描计数 1,逻辑读取 2 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'Worktable'。扫描计数 2,逻辑读取 9218976 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'LSHZ'。扫描计数 9,逻辑读取 41996 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'LSMCHZ'。扫描计数 9,逻辑读取 62541 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'SP'。扫描计数 1,逻辑读取 722 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'Worktable'。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 (30 行受影响) SQL Server 执行时间: CPU 时间 = 29923 毫秒,占用时间 = 113805 毫秒。 [/quote] SET STATISTICS profile ON 的结果呢
lmtfw 2013-05-04
  • 打赏
  • 举报
回复
引用 13 楼 SQL_Beginner 的回复:
[quote=引用 9 楼 lmtfw 的回复:] [quote=引用 5 楼 SQL77 的回复:] A机器:曙光服务器,32G内存,WIN2008SERVER,同一个数据库附加在SQL2000和SQL2008上,1500万条数据查询测试,SQL2008速度比SQL2000快2倍 给结果 SET STATISTICS IO ON GO SET STATISTICS TIME ON GO 你的语句
就是普通查询语句,THINKPAD上2000大概30秒左右,2008要1分50秒[/quote] 你不给出详细结果,如何帮你分析呢除了上面两条建议再给出另外的计划。 SET STATISTICS profile ON GO SET STATISTICS IO ON GO SET STATISTICS TIME ON GO 只能把上面三个结果完整的贴出来,才能做到有的放失的去分析,否则只能靠猜。[/quote] 谢谢,我把结果贴一下 语句 SELECT SP.SPID, SP.SPBH, SP.SPMC, SUM(LSMCHZ.SL) AS SL, COUNT(DISTINCT LSMCHZ.HZSJ + LSMCHZ.DH) AS CS FROM HWZL INNER JOIN LSHZ ON HWZL.HWID = LSHZ.HWID INNER JOIN LSMCHZ INNER JOIN SP ON LSMCHZ.SPID = SP.SPID ON LSHZ.DH = LSMCHZ.DH AND LSHZ.HZSJ = LSMCHZ.HZSJ GROUP BY SP.SPID, SP.SPBH, SP.SPMC ORDER BY SP.SPBH SQL2000的结果是28秒 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 31 毫秒,耗费时间 = 44 毫秒。 表 'SP'。扫描计数 1,逻辑读 720 次,物理读 0 次,预读 0 次。 表 'Worktable'。扫描计数 2,逻辑读 3122939 次,物理读 0 次,预读 0 次。 表 'LSMCHZ'。扫描计数 1,逻辑读 61206 次,物理读 0 次,预读 0 次。 表 'LSHZ'。扫描计数 1,逻辑读 39442 次,物理读 0 次,预读 0 次。 表 'HWZL'。扫描计数 1,逻辑读 1 次,物理读 0 次,预读 0 次。 SQL Server 执行时间: CPU 时间 = 19126 毫秒,耗费时间 = 21986 毫秒。 (5085 行受影响) SQL2008的结果是1分53秒 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 92 毫秒,占用时间 = 92 毫秒。 (5085 行受影响) 表 'HWZL'。扫描计数 1,逻辑读取 2 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'Worktable'。扫描计数 2,逻辑读取 9218976 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'LSHZ'。扫描计数 9,逻辑读取 41996 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'LSMCHZ'。扫描计数 9,逻辑读取 62541 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'SP'。扫描计数 1,逻辑读取 722 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'Worktable'。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 (30 行受影响) SQL Server 执行时间: CPU 时间 = 29923 毫秒,占用时间 = 113805 毫秒。
  • 打赏
  • 举报
回复
引用 18 楼 lmtfw 的回复:
SQL_Beginner老师,回帖字数限制贴不完整,请看看,这样可以么?
5085	1	SELECT SP.SPID, SP.SPBH, SP.SPMC, SUM(LSMCHZ.SL) AS SL,         COUNT(DISTINCT LSMCHZ.HZSJ + LSMCHZ.DH) AS CS  FROM HWZL INNER JOIN        LSHZ ON HWZL.HWID = LSHZ.HWID INNER JOIN        LSMCHZ INNER JOIN        SP ON LSMCHZ.SPID = SP.SPID ON LSHZ.DH = LSMCHZ.DH AND         LSHZ.HZSJ = LSMCHZ.HZSJ  GROUP BY SP.SPID, SP.SPBH, SP.SPMC  ORDER BY SP.SPBH	1	1	0	NULL	NULL	NULL	NULL	3079.038	NULL	NULL	NULL	136.8387	NULL	NULL	SELECT	0	NULL
5085	1	  |--Sort(ORDER BY:([FBYY].[dbo].[SP].[SPBH] ASC))	1	2	1	Sort	Sort	ORDER BY:([FBYY].[dbo].[SP].[SPBH] ASC)	NULL	3079.038	0.002815315	0.01394049	76	136.8387	[FBYY].[dbo].[SP].[SPID], [FBYY].[dbo].[SP].[SPBH], [FBYY].[dbo].[SP].[SPMC], [Expr1013], [Expr1014]	NULL	PLAN_ROW	0	1
5085	1	       |--Hash Match(Inner Join, HASH:([FBYY].[dbo].[LSMCHZ].[SPID])=([FBYY].[dbo].[SP].[SPID]))	1	4	2	Hash Match	Inner Join	HASH:([FBYY].[dbo].[LSMCHZ].[SPID])=([FBYY].[dbo].[SP].[SPID])	NULL	3112.688	0	0.04299844	76	136.8219	[FBYY].[dbo].[SP].[SPID], [FBYY].[dbo].[SP].[SPBH], [FBYY].[dbo].[SP].[SPMC], [Expr1013], [Expr1014]	NULL	PLAN_ROW	0	1
0	0	            |--Compute Scalar(DEFINE:([FBYY].[dbo].[LSMCHZ].[SPID]=[Expr1028]))	1	5	4	Compute Scalar	Compute Scalar	DEFINE:([FBYY].[dbo].[LSMCHZ].[SPID]=[Expr1028])	[FBYY].[dbo].[LSMCHZ].[SPID]=[Expr1028]	3117.924	0	7.794811E-05	23	136.1688	[FBYY].[dbo].[LSMCHZ].[SPID], [Expr1013], [Expr1014]	NULL	PLAN_ROW	0	1
5085	1	            |    |--Hash Match(Inner Join, HASH:([Expr1028])=([Expr1027]))	1	6	5	Hash Match	Inner Join	HASH:([Expr1028])=([Expr1027])	NULL	3117.924	0	0.02483969	23	136.1687	[Expr1013], [Expr1014], [Expr1028]	NULL	PLAN_ROW	0	1
0	0	            |         |--Compute Scalar(DEFINE:([Expr1028]=[FBYY].[dbo].[LSMCHZ].[SPID]))	1	7	6	Compute Scalar	Compute Scalar	DEFINE:([Expr1028]=[FBYY].[dbo].[LSMCHZ].[SPID])	[Expr1028]=[FBYY].[dbo].[LSMCHZ].[SPID]	390.4497	0	9.761243E-06	15	70.60744	[Expr1014], [Expr1028]	NULL	PLAN_ROW	0	1
0	0	            |         |    |--Compute Scalar(DEFINE:([Expr1014]=CONVERT_IMPLICIT(int,[globalagg1026],0)))	1	9	7	Compute Scalar	Compute Scalar	DEFINE:([Expr1014]=CONVERT_IMPLICIT(int,[globalagg1026],0))	[Expr1014]=CONVERT_IMPLICIT(int,[globalagg1026],0)	390.4497	0	9.761243E-06	15	70.60743	[FBYY].[dbo].[LSMCHZ].[SPID], [Expr1014]	NULL	PLAN_ROW	0	1
5085	1	            |         |         |--Stream Aggregate(GROUP BY:([FBYY].[dbo].[LSMCHZ].[SPID]) DEFINE:([globalagg1026]=SUM([partialagg1025])))	1	10	9	Stream Aggregate	Aggregate	GROUP BY:([FBYY].[dbo].[LSMCHZ].[SPID])	[globalagg1026]=SUM([partialagg1025])	390.4497	0	0.000283076	19	70.60742	[FBYY].[dbo].[LSMCHZ].[SPID], [globalagg1026]	NULL	PLAN_ROW	0	1
5085	1	            |         |              |--Sort(ORDER BY:([FBYY].[dbo].[LSMCHZ].[SPID] ASC))	1	11	10	Sort	Sort	ORDER BY:([FBYY].[dbo].[LSMCHZ].[SPID] ASC)	NULL	1561.799	0.002815315	0.006486959	19	70.60714	[FBYY].[dbo].[LSMCHZ].[SPID], [partialagg1025]	NULL	PLAN_ROW	0	1
5085	1	            |         |                   |--Hash Match(Partial Aggregate, HASH:([FBYY].[dbo].[LSMCHZ].[SPID]) DEFINE:([partialagg1025]=COUNT(*)))	1	12	11	Hash Match	Partial Aggregate	HASH:([FBYY].[dbo].[LSMCHZ].[SPID]), DEFINE:([partialagg1025]=COUNT(*))	[partialagg1025]=COUNT(*)	1561.799	0	0.06659128	19	70.56799	[FBYY].[dbo].[LSMCHZ].[SPID], [partialagg1025]	NULL	PLAN_ROW	0	1
3005066	1	            |         |                        |--Hash Match(Aggregate, HASH:([FBYY].[dbo].[LSMCHZ].[SPID], [Expr1015]), RESIDUAL:([FBYY].[dbo].[LSMCHZ].[SPID] = [FBYY].[dbo].[LSMCHZ].[SPID] AND [Expr1015] = [Expr1015]))	1	13	12	Hash Match	Aggregate	HASH:([FBYY].[dbo].[LSMCHZ].[SPID], [Expr1015]), RESIDUAL:([FBYY].[dbo].[LSMCHZ].[SPID] = [FBYY].[dbo].[LSMCHZ].[SPID] AND [Expr1015] = [Expr1015])	NULL	33782.23	0	0.5259796	11	70.5014	[FBYY].[dbo].[LSMCHZ].[SPID]	NULL	PLAN_ROW	0	1
3005261	1	            |         |                             |--Hash Match(Partial Aggregate, HASH:([FBYY].[dbo].[LSMCHZ].[SPID], [Expr1015]), RESIDUAL:([FBYY].[dbo].[LSMCHZ].[SPID] = [FBYY].[dbo].[LSMCHZ].[SPID] AND [Expr1015] = [Expr1015]))	1	14	13	Hash Match	Partial Aggregate	HASH:([FBYY].[dbo].[LSMCHZ].[SPID], [Expr1015]), RESIDUAL:([FBYY].[dbo].[LSMCHZ].[SPID] = [FBYY].[dbo].[LSMCHZ].[SPID] AND [Expr1015] = [Expr1015])	NULL	135128.9	0	4.849688	35	69.75515	[FBYY].[dbo].[LSMCHZ].[SPID], [Expr1015]	NULL	PLAN_ROW	0	1
3042568	1	            |         |                                  |--Table Spool	1	15	14	Table Spool	Eager Spool	NULL	NULL	2253577	0.006586432	0.4071734	43	55.83448	[FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL], [Expr1015]	NULL	PLAN_ROW	0	1
3042568	1	            |         |                                       |--Parallelism(Gather Streams)	1	16	15	Parallelism	Gather Streams	NULL	NULL	2253577	0	2.872233	43	110.4387	[FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL], [Expr1015]	NULL	PLAN_ROW	1	1
3042568	8	            |         |                                            |--Hash Match(Inner Join, HASH:([FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HZSJ])=([FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ]), RESIDUAL:([FBYY].[dbo].[LSHZ].[DH]=[FBYY].[dbo].[LSMCHZ].[DH] AND [FBYY].[dbo].[LSHZ].[HZSJ]=[FBYY].[dbo].[LSMCHZ].[HZSJ]))	1	17	16	Hash Match	Inner Join	HASH:([FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HZSJ])=([FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ]), RESIDUAL:([FBYY].[dbo].[LSHZ].[DH]=[FBYY].[dbo].[LSMCHZ].[DH] AND [FBYY].[dbo].[LSHZ].[HZSJ]=[FBYY].[dbo].[LSMCHZ].[HZSJ])	NULL	2253577	0	17.32385	43	107.5665	[FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL], [Expr1015]	NULL	PLAN_ROW	1	1
1458556	8	            |         |                                                 |--Bitmap(HASH:([FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HZSJ]), DEFINE:([Bitmap1030]))	1	18	17	Bitmap	Bitmap Create	HASH:([FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HZSJ])	[Bitmap1030]	1331039	0	3.545619	40	38.41727	[FBYY].[dbo].[LSHZ].[HZSJ], [FBYY].[dbo].[LSHZ].[DH]	NULL	PLAN_ROW	1	1
1458556	8	            |         |                                                 |    |--Parallelism(Repartition Streams, Hash Partitioning, PARTITION COLUMNS:([FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HZSJ]))	1	19	18	Parallelism	Repartition Streams	PARTITION COLUMNS:([FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HZSJ])	NULL	1331039	0	3.545619	40	38.41727	[FBYY].[dbo].[LSHZ].[HZSJ], [FBYY].[dbo].[LSHZ].[DH]	NULL	PLAN_ROW	1	1
1458556	8	            |         |                                                 |         |--Hash Match(Inner Join, HASH:([FBYY].[dbo].[HWZL].[HWID])=([FBYY].[dbo].[LSHZ].[HWID]), RESIDUAL:([FBYY].[dbo].[HWZL].[HWID]=[FBYY].[dbo].[LSHZ].[HWID]))	1	20	19	Hash Match	Inner Join	HASH:([FBYY].[dbo].[HWZL].[HWID])=([FBYY].[dbo].[LSHZ].[HWID]), RESIDUAL:([FBYY].[dbo].[HWZL].[HWID]=[FBYY].[dbo].[LSHZ].[HWID])	NULL	1331039	0	5.329623	40	34.87165	[FBYY].[dbo].[LSHZ].[HZSJ], [FBYY].[dbo].[LSHZ].[DH]	NULL	PLAN_ROW	1	1
136	8	            |         |                                                 |              |--Parallelism(Distribute Streams, Broadcast Partitioning)	1	21	20	Parallelism	Distribute Streams	NULL	NULL	17	0	0.02853185	11	0.03183255	[FBYY].[dbo].[HWZL].[HWID]	NULL	PLAN_ROW	1	1
17	1	            |         |                                                 |              |    |--Index Scan(OBJECT:([FBYY].[dbo].[HWZL].[PK_HWZL]))	1	22	21	Index Scan	Index Scan	OBJECT:([FBYY].[dbo].[HWZL].[PK_HWZL])	[FBYY].[dbo].[HWZL].[HWID]	17	0.003125	0.0001757	11	0.0033007	[FBYY].[dbo].[HWZL].[HWID]	NULL	PLAN_ROW	0	1
1458556	8	            |         |                                                 |              |--Clustered Index Scan(OBJECT:([FBYY].[dbo].[LSHZ].[PK_LSHZ]))	1	23	20	Clustered Index Scan	Clustered Index Scan	OBJECT:([FBYY].[dbo].[LSHZ].[PK_LSHZ])	[FBYY].[dbo].[LSHZ].[HZSJ], [FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HWID]	1458556	29.10905	0.4011422	44	29.51019	[FBYY].[dbo].[LSHZ].[HZSJ], [FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HWID]	NULL	PLAN_ROW	1	1
0	0	            |         |                                                 |--Compute Scalar(DEFINE:([Expr1015]=[FBYY].[dbo].[LSMCHZ].[HZSJ]+[FBYY].[dbo].[LSMCHZ].[DH]))	1	25	17	Compute Scalar	Compute Scalar	DEFINE:([Expr1015]=[FBYY].[dbo].[LSMCHZ].[HZSJ]+[FBYY].[dbo].[LSMCHZ].[DH])	[Expr1015]=[FBYY].[dbo].[LSMCHZ].[HZSJ]+[FBYY].[dbo].[LSMCHZ].[DH]	3042568	0	0.0760642	74	51.82536	[FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ], [FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL], [Expr1015]	NULL	PLAN_ROW	1	1
3042568	8	            |         |                                                      |--Parallelism(Repartition Streams, Hash Partitioning, PARTITION COLUMNS:([FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ]))	1	26	25	Parallelism	Repartition Streams	PARTITION COLUMNS:([FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ])	NULL	3042568	0	5.860532	52	51.74929	[FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ], [FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL]	NULL	PLAN_ROW	1	1
3042568	8	            |         |                                                           |--Clustered Index Scan(OBJECT:([FBYY].[dbo].[LSMCHZ].[PK_LSMCHZ]), WHERE:(PROBE([Bitmap1030],[FBYY].[dbo].[LSMCHZ].[DH],[FBYY].[dbo].[LSMCHZ].[HZSJ])))	1	27	26	Clustered Index Scan	Clustered Index Scan	OBJECT:([FBYY].[dbo].[LSMCHZ].[PK_LSMCHZ]), WHERE:(PROBE([Bitmap1030],[FBYY].[dbo].[LSMCHZ].[DH],[FBYY].[dbo].[LSMCHZ].[HZSJ]))	[FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ], [FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL]	3042568	45.05201	0.8367454	52	45.88876	[FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ], [FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL]	NULL	PLAN_ROW	1	1
0	0	            |         |--Compute Scalar(DEFINE:([Expr1027]=[FBYY	
你给的是2008的吧,2000的呢?2000不支持SET STATISTICS profile ON吗? 如果不支持你给个图形计划也可以。
lmtfw 2013-05-04
  • 打赏
  • 举报
回复
自己检查了一下 语句中的COUNT(DISTINCT LSMCHZ.DH+LSMCHZ.HZSJ) 这段如果去掉,SQL2000和SQL2008的速度是一样的,性能都提升了很多,为什么COUNT(DISTINCT LSMCHZ.DH+LSMCHZ.HZSJ)这个选择项有这么大的开销,而且在sql2008中开销远远大于SQL2000
lmtfw 2013-05-04
  • 打赏
  • 举报
回复
SQL_Beginner老师,回帖字数限制贴不完整,请看看,这样可以么?
5085	1	SELECT SP.SPID, SP.SPBH, SP.SPMC, SUM(LSMCHZ.SL) AS SL,         COUNT(DISTINCT LSMCHZ.HZSJ + LSMCHZ.DH) AS CS  FROM HWZL INNER JOIN        LSHZ ON HWZL.HWID = LSHZ.HWID INNER JOIN        LSMCHZ INNER JOIN        SP ON LSMCHZ.SPID = SP.SPID ON LSHZ.DH = LSMCHZ.DH AND         LSHZ.HZSJ = LSMCHZ.HZSJ  GROUP BY SP.SPID, SP.SPBH, SP.SPMC  ORDER BY SP.SPBH	1	1	0	NULL	NULL	NULL	NULL	3079.038	NULL	NULL	NULL	136.8387	NULL	NULL	SELECT	0	NULL
5085	1	  |--Sort(ORDER BY:([FBYY].[dbo].[SP].[SPBH] ASC))	1	2	1	Sort	Sort	ORDER BY:([FBYY].[dbo].[SP].[SPBH] ASC)	NULL	3079.038	0.002815315	0.01394049	76	136.8387	[FBYY].[dbo].[SP].[SPID], [FBYY].[dbo].[SP].[SPBH], [FBYY].[dbo].[SP].[SPMC], [Expr1013], [Expr1014]	NULL	PLAN_ROW	0	1
5085	1	       |--Hash Match(Inner Join, HASH:([FBYY].[dbo].[LSMCHZ].[SPID])=([FBYY].[dbo].[SP].[SPID]))	1	4	2	Hash Match	Inner Join	HASH:([FBYY].[dbo].[LSMCHZ].[SPID])=([FBYY].[dbo].[SP].[SPID])	NULL	3112.688	0	0.04299844	76	136.8219	[FBYY].[dbo].[SP].[SPID], [FBYY].[dbo].[SP].[SPBH], [FBYY].[dbo].[SP].[SPMC], [Expr1013], [Expr1014]	NULL	PLAN_ROW	0	1
0	0	            |--Compute Scalar(DEFINE:([FBYY].[dbo].[LSMCHZ].[SPID]=[Expr1028]))	1	5	4	Compute Scalar	Compute Scalar	DEFINE:([FBYY].[dbo].[LSMCHZ].[SPID]=[Expr1028])	[FBYY].[dbo].[LSMCHZ].[SPID]=[Expr1028]	3117.924	0	7.794811E-05	23	136.1688	[FBYY].[dbo].[LSMCHZ].[SPID], [Expr1013], [Expr1014]	NULL	PLAN_ROW	0	1
5085	1	            |    |--Hash Match(Inner Join, HASH:([Expr1028])=([Expr1027]))	1	6	5	Hash Match	Inner Join	HASH:([Expr1028])=([Expr1027])	NULL	3117.924	0	0.02483969	23	136.1687	[Expr1013], [Expr1014], [Expr1028]	NULL	PLAN_ROW	0	1
0	0	            |         |--Compute Scalar(DEFINE:([Expr1028]=[FBYY].[dbo].[LSMCHZ].[SPID]))	1	7	6	Compute Scalar	Compute Scalar	DEFINE:([Expr1028]=[FBYY].[dbo].[LSMCHZ].[SPID])	[Expr1028]=[FBYY].[dbo].[LSMCHZ].[SPID]	390.4497	0	9.761243E-06	15	70.60744	[Expr1014], [Expr1028]	NULL	PLAN_ROW	0	1
0	0	            |         |    |--Compute Scalar(DEFINE:([Expr1014]=CONVERT_IMPLICIT(int,[globalagg1026],0)))	1	9	7	Compute Scalar	Compute Scalar	DEFINE:([Expr1014]=CONVERT_IMPLICIT(int,[globalagg1026],0))	[Expr1014]=CONVERT_IMPLICIT(int,[globalagg1026],0)	390.4497	0	9.761243E-06	15	70.60743	[FBYY].[dbo].[LSMCHZ].[SPID], [Expr1014]	NULL	PLAN_ROW	0	1
5085	1	            |         |         |--Stream Aggregate(GROUP BY:([FBYY].[dbo].[LSMCHZ].[SPID]) DEFINE:([globalagg1026]=SUM([partialagg1025])))	1	10	9	Stream Aggregate	Aggregate	GROUP BY:([FBYY].[dbo].[LSMCHZ].[SPID])	[globalagg1026]=SUM([partialagg1025])	390.4497	0	0.000283076	19	70.60742	[FBYY].[dbo].[LSMCHZ].[SPID], [globalagg1026]	NULL	PLAN_ROW	0	1
5085	1	            |         |              |--Sort(ORDER BY:([FBYY].[dbo].[LSMCHZ].[SPID] ASC))	1	11	10	Sort	Sort	ORDER BY:([FBYY].[dbo].[LSMCHZ].[SPID] ASC)	NULL	1561.799	0.002815315	0.006486959	19	70.60714	[FBYY].[dbo].[LSMCHZ].[SPID], [partialagg1025]	NULL	PLAN_ROW	0	1
5085	1	            |         |                   |--Hash Match(Partial Aggregate, HASH:([FBYY].[dbo].[LSMCHZ].[SPID]) DEFINE:([partialagg1025]=COUNT(*)))	1	12	11	Hash Match	Partial Aggregate	HASH:([FBYY].[dbo].[LSMCHZ].[SPID]), DEFINE:([partialagg1025]=COUNT(*))	[partialagg1025]=COUNT(*)	1561.799	0	0.06659128	19	70.56799	[FBYY].[dbo].[LSMCHZ].[SPID], [partialagg1025]	NULL	PLAN_ROW	0	1
3005066	1	            |         |                        |--Hash Match(Aggregate, HASH:([FBYY].[dbo].[LSMCHZ].[SPID], [Expr1015]), RESIDUAL:([FBYY].[dbo].[LSMCHZ].[SPID] = [FBYY].[dbo].[LSMCHZ].[SPID] AND [Expr1015] = [Expr1015]))	1	13	12	Hash Match	Aggregate	HASH:([FBYY].[dbo].[LSMCHZ].[SPID], [Expr1015]), RESIDUAL:([FBYY].[dbo].[LSMCHZ].[SPID] = [FBYY].[dbo].[LSMCHZ].[SPID] AND [Expr1015] = [Expr1015])	NULL	33782.23	0	0.5259796	11	70.5014	[FBYY].[dbo].[LSMCHZ].[SPID]	NULL	PLAN_ROW	0	1
3005261	1	            |         |                             |--Hash Match(Partial Aggregate, HASH:([FBYY].[dbo].[LSMCHZ].[SPID], [Expr1015]), RESIDUAL:([FBYY].[dbo].[LSMCHZ].[SPID] = [FBYY].[dbo].[LSMCHZ].[SPID] AND [Expr1015] = [Expr1015]))	1	14	13	Hash Match	Partial Aggregate	HASH:([FBYY].[dbo].[LSMCHZ].[SPID], [Expr1015]), RESIDUAL:([FBYY].[dbo].[LSMCHZ].[SPID] = [FBYY].[dbo].[LSMCHZ].[SPID] AND [Expr1015] = [Expr1015])	NULL	135128.9	0	4.849688	35	69.75515	[FBYY].[dbo].[LSMCHZ].[SPID], [Expr1015]	NULL	PLAN_ROW	0	1
3042568	1	            |         |                                  |--Table Spool	1	15	14	Table Spool	Eager Spool	NULL	NULL	2253577	0.006586432	0.4071734	43	55.83448	[FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL], [Expr1015]	NULL	PLAN_ROW	0	1
3042568	1	            |         |                                       |--Parallelism(Gather Streams)	1	16	15	Parallelism	Gather Streams	NULL	NULL	2253577	0	2.872233	43	110.4387	[FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL], [Expr1015]	NULL	PLAN_ROW	1	1
3042568	8	            |         |                                            |--Hash Match(Inner Join, HASH:([FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HZSJ])=([FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ]), RESIDUAL:([FBYY].[dbo].[LSHZ].[DH]=[FBYY].[dbo].[LSMCHZ].[DH] AND [FBYY].[dbo].[LSHZ].[HZSJ]=[FBYY].[dbo].[LSMCHZ].[HZSJ]))	1	17	16	Hash Match	Inner Join	HASH:([FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HZSJ])=([FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ]), RESIDUAL:([FBYY].[dbo].[LSHZ].[DH]=[FBYY].[dbo].[LSMCHZ].[DH] AND [FBYY].[dbo].[LSHZ].[HZSJ]=[FBYY].[dbo].[LSMCHZ].[HZSJ])	NULL	2253577	0	17.32385	43	107.5665	[FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL], [Expr1015]	NULL	PLAN_ROW	1	1
1458556	8	            |         |                                                 |--Bitmap(HASH:([FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HZSJ]), DEFINE:([Bitmap1030]))	1	18	17	Bitmap	Bitmap Create	HASH:([FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HZSJ])	[Bitmap1030]	1331039	0	3.545619	40	38.41727	[FBYY].[dbo].[LSHZ].[HZSJ], [FBYY].[dbo].[LSHZ].[DH]	NULL	PLAN_ROW	1	1
1458556	8	            |         |                                                 |    |--Parallelism(Repartition Streams, Hash Partitioning, PARTITION COLUMNS:([FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HZSJ]))	1	19	18	Parallelism	Repartition Streams	PARTITION COLUMNS:([FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HZSJ])	NULL	1331039	0	3.545619	40	38.41727	[FBYY].[dbo].[LSHZ].[HZSJ], [FBYY].[dbo].[LSHZ].[DH]	NULL	PLAN_ROW	1	1
1458556	8	            |         |                                                 |         |--Hash Match(Inner Join, HASH:([FBYY].[dbo].[HWZL].[HWID])=([FBYY].[dbo].[LSHZ].[HWID]), RESIDUAL:([FBYY].[dbo].[HWZL].[HWID]=[FBYY].[dbo].[LSHZ].[HWID]))	1	20	19	Hash Match	Inner Join	HASH:([FBYY].[dbo].[HWZL].[HWID])=([FBYY].[dbo].[LSHZ].[HWID]), RESIDUAL:([FBYY].[dbo].[HWZL].[HWID]=[FBYY].[dbo].[LSHZ].[HWID])	NULL	1331039	0	5.329623	40	34.87165	[FBYY].[dbo].[LSHZ].[HZSJ], [FBYY].[dbo].[LSHZ].[DH]	NULL	PLAN_ROW	1	1
136	8	            |         |                                                 |              |--Parallelism(Distribute Streams, Broadcast Partitioning)	1	21	20	Parallelism	Distribute Streams	NULL	NULL	17	0	0.02853185	11	0.03183255	[FBYY].[dbo].[HWZL].[HWID]	NULL	PLAN_ROW	1	1
17	1	            |         |                                                 |              |    |--Index Scan(OBJECT:([FBYY].[dbo].[HWZL].[PK_HWZL]))	1	22	21	Index Scan	Index Scan	OBJECT:([FBYY].[dbo].[HWZL].[PK_HWZL])	[FBYY].[dbo].[HWZL].[HWID]	17	0.003125	0.0001757	11	0.0033007	[FBYY].[dbo].[HWZL].[HWID]	NULL	PLAN_ROW	0	1
1458556	8	            |         |                                                 |              |--Clustered Index Scan(OBJECT:([FBYY].[dbo].[LSHZ].[PK_LSHZ]))	1	23	20	Clustered Index Scan	Clustered Index Scan	OBJECT:([FBYY].[dbo].[LSHZ].[PK_LSHZ])	[FBYY].[dbo].[LSHZ].[HZSJ], [FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HWID]	1458556	29.10905	0.4011422	44	29.51019	[FBYY].[dbo].[LSHZ].[HZSJ], [FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HWID]	NULL	PLAN_ROW	1	1
0	0	            |         |                                                 |--Compute Scalar(DEFINE:([Expr1015]=[FBYY].[dbo].[LSMCHZ].[HZSJ]+[FBYY].[dbo].[LSMCHZ].[DH]))	1	25	17	Compute Scalar	Compute Scalar	DEFINE:([Expr1015]=[FBYY].[dbo].[LSMCHZ].[HZSJ]+[FBYY].[dbo].[LSMCHZ].[DH])	[Expr1015]=[FBYY].[dbo].[LSMCHZ].[HZSJ]+[FBYY].[dbo].[LSMCHZ].[DH]	3042568	0	0.0760642	74	51.82536	[FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ], [FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL], [Expr1015]	NULL	PLAN_ROW	1	1
3042568	8	            |         |                                                      |--Parallelism(Repartition Streams, Hash Partitioning, PARTITION COLUMNS:([FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ]))	1	26	25	Parallelism	Repartition Streams	PARTITION COLUMNS:([FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ])	NULL	3042568	0	5.860532	52	51.74929	[FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ], [FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL]	NULL	PLAN_ROW	1	1
3042568	8	            |         |                                                           |--Clustered Index Scan(OBJECT:([FBYY].[dbo].[LSMCHZ].[PK_LSMCHZ]), WHERE:(PROBE([Bitmap1030],[FBYY].[dbo].[LSMCHZ].[DH],[FBYY].[dbo].[LSMCHZ].[HZSJ])))	1	27	26	Clustered Index Scan	Clustered Index Scan	OBJECT:([FBYY].[dbo].[LSMCHZ].[PK_LSMCHZ]), WHERE:(PROBE([Bitmap1030],[FBYY].[dbo].[LSMCHZ].[DH],[FBYY].[dbo].[LSMCHZ].[HZSJ]))	[FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ], [FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL]	3042568	45.05201	0.8367454	52	45.88876	[FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ], [FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL]	NULL	PLAN_ROW	1	1
0	0	            |         |--Compute Scalar(DEFINE:([Expr1027]=[FBYY	
lmtfw 2013-05-04
  • 打赏
  • 举报
回复
引用 16 楼 SQL77 的回复:
[quote=引用 14 楼 lmtfw 的回复:] [quote=引用 13 楼 SQL_Beginner 的回复:] [quote=引用 9 楼 lmtfw 的回复:] [quote=引用 5 楼 SQL77 的回复:] A机器:曙光服务器,32G内存,WIN2008SERVER,同一个数据库附加在SQL2000和SQL2008上,1500万条数据查询测试,SQL2008速度比SQL2000快2倍 给结果 SET STATISTICS IO ON GO SET STATISTICS TIME ON GO 你的语句
就是普通查询语句,THINKPAD上2000大概30秒左右,2008要1分50秒[/quote] 你不给出详细结果,如何帮你分析呢除了上面两条建议再给出另外的计划。 SET STATISTICS profile ON GO SET STATISTICS IO ON GO SET STATISTICS TIME ON GO 只能把上面三个结果完整的贴出来,才能做到有的放失的去分析,否则只能靠猜。[/quote] 谢谢,我把结果贴一下 语句 SELECT SP.SPID, SP.SPBH, SP.SPMC, SUM(LSMCHZ.SL) AS SL, COUNT(DISTINCT LSMCHZ.HZSJ + LSMCHZ.DH) AS CS FROM HWZL INNER JOIN LSHZ ON HWZL.HWID = LSHZ.HWID INNER JOIN LSMCHZ INNER JOIN SP ON LSMCHZ.SPID = SP.SPID ON LSHZ.DH = LSMCHZ.DH AND LSHZ.HZSJ = LSMCHZ.HZSJ GROUP BY SP.SPID, SP.SPBH, SP.SPMC ORDER BY SP.SPBH SQL2000的结果是28秒 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 31 毫秒,耗费时间 = 44 毫秒。 表 'SP'。扫描计数 1,逻辑读 720 次,物理读 0 次,预读 0 次。 表 'Worktable'。扫描计数 2,逻辑读 3122939 次,物理读 0 次,预读 0 次。 表 'LSMCHZ'。扫描计数 1,逻辑读 61206 次,物理读 0 次,预读 0 次。 表 'LSHZ'。扫描计数 1,逻辑读 39442 次,物理读 0 次,预读 0 次。 表 'HWZL'。扫描计数 1,逻辑读 1 次,物理读 0 次,预读 0 次。 SQL Server 执行时间: CPU 时间 = 19126 毫秒,耗费时间 = 21986 毫秒。 (5085 行受影响) SQL2008的结果是1分53秒 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 92 毫秒,占用时间 = 92 毫秒。 (5085 行受影响) 表 'HWZL'。扫描计数 1,逻辑读取 2 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'Worktable'。扫描计数 2,逻辑读取 9218976 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'LSHZ'。扫描计数 9,逻辑读取 41996 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'LSMCHZ'。扫描计数 9,逻辑读取 62541 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'SP'。扫描计数 1,逻辑读取 722 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'Worktable'。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 (30 行受影响) SQL Server 执行时间: CPU 时间 = 29923 毫秒,占用时间 = 113805 毫秒。 [/quote] 你把2008的 SP_UPDATESTATS 执行一次.再执行比较看看,还有看你给的结果貌似多了点东西啊[/quote] 没用啊,结果还是一样
SQL77 2013-05-04
  • 打赏
  • 举报
回复
引用 14 楼 lmtfw 的回复:
[quote=引用 13 楼 SQL_Beginner 的回复:] [quote=引用 9 楼 lmtfw 的回复:] [quote=引用 5 楼 SQL77 的回复:] A机器:曙光服务器,32G内存,WIN2008SERVER,同一个数据库附加在SQL2000和SQL2008上,1500万条数据查询测试,SQL2008速度比SQL2000快2倍 给结果 SET STATISTICS IO ON GO SET STATISTICS TIME ON GO 你的语句
就是普通查询语句,THINKPAD上2000大概30秒左右,2008要1分50秒[/quote] 你不给出详细结果,如何帮你分析呢除了上面两条建议再给出另外的计划。 SET STATISTICS profile ON GO SET STATISTICS IO ON GO SET STATISTICS TIME ON GO 只能把上面三个结果完整的贴出来,才能做到有的放失的去分析,否则只能靠猜。[/quote] 谢谢,我把结果贴一下 语句 SELECT SP.SPID, SP.SPBH, SP.SPMC, SUM(LSMCHZ.SL) AS SL, COUNT(DISTINCT LSMCHZ.HZSJ + LSMCHZ.DH) AS CS FROM HWZL INNER JOIN LSHZ ON HWZL.HWID = LSHZ.HWID INNER JOIN LSMCHZ INNER JOIN SP ON LSMCHZ.SPID = SP.SPID ON LSHZ.DH = LSMCHZ.DH AND LSHZ.HZSJ = LSMCHZ.HZSJ GROUP BY SP.SPID, SP.SPBH, SP.SPMC ORDER BY SP.SPBH SQL2000的结果是28秒 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 31 毫秒,耗费时间 = 44 毫秒。 表 'SP'。扫描计数 1,逻辑读 720 次,物理读 0 次,预读 0 次。 表 'Worktable'。扫描计数 2,逻辑读 3122939 次,物理读 0 次,预读 0 次。 表 'LSMCHZ'。扫描计数 1,逻辑读 61206 次,物理读 0 次,预读 0 次。 表 'LSHZ'。扫描计数 1,逻辑读 39442 次,物理读 0 次,预读 0 次。 表 'HWZL'。扫描计数 1,逻辑读 1 次,物理读 0 次,预读 0 次。 SQL Server 执行时间: CPU 时间 = 19126 毫秒,耗费时间 = 21986 毫秒。 (5085 行受影响) SQL2008的结果是1分53秒 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 SQL Server 分析和编译时间: CPU 时间 = 92 毫秒,占用时间 = 92 毫秒。 (5085 行受影响) 表 'HWZL'。扫描计数 1,逻辑读取 2 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'Worktable'。扫描计数 2,逻辑读取 9218976 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'LSHZ'。扫描计数 9,逻辑读取 41996 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'LSMCHZ'。扫描计数 9,逻辑读取 62541 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'SP'。扫描计数 1,逻辑读取 722 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'Worktable'。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 (30 行受影响) SQL Server 执行时间: CPU 时间 = 29923 毫秒,占用时间 = 113805 毫秒。 [/quote] 你把2008的 SP_UPDATESTATS 执行一次.再执行比较看看,还有看你给的结果貌似多了点东西啊
  • 打赏
  • 举报
回复
引用 9 楼 lmtfw 的回复:
[quote=引用 5 楼 SQL77 的回复:] A机器:曙光服务器,32G内存,WIN2008SERVER,同一个数据库附加在SQL2000和SQL2008上,1500万条数据查询测试,SQL2008速度比SQL2000快2倍 给结果 SET STATISTICS IO ON GO SET STATISTICS TIME ON GO 你的语句
就是普通查询语句,THINKPAD上2000大概30秒左右,2008要1分50秒[/quote] 你不给出详细结果,如何帮你分析呢除了上面两条建议再给出另外的计划。 SET STATISTICS profile ON GO SET STATISTICS IO ON GO SET STATISTICS TIME ON GO 只能把上面三个结果完整的贴出来,才能做到有的放失的去分析,否则只能靠猜。
daiyueqiang2045 2013-05-03
  • 打赏
  • 举报
回复
引用 6 楼 SQL77 的回复:
你只给内存.还有CPU.硬盘呢.还有系统运行时的环境呢.?
还要关注那些 环境呢? 会有什么影响呢?
Q315054403 2013-05-03
  • 打赏
  • 举报
回复
重建索引、更新统计,设定兼容级别后再测试
lmtfw 2013-05-03
  • 打赏
  • 举报
回复
引用 7 楼 sz_haitao 的回复:
WIN7旗舰版64位 只能安装开发版的sql吧?这样的数据库有很多限制的
我安装的是2008企业版
lmtfw 2013-05-03
  • 打赏
  • 举报
回复
引用 5 楼 SQL77 的回复:
A机器:曙光服务器,32G内存,WIN2008SERVER,同一个数据库附加在SQL2000和SQL2008上,1500万条数据查询测试,SQL2008速度比SQL2000快2倍 给结果 SET STATISTICS IO ON GO SET STATISTICS TIME ON GO 你的语句
就是普通查询语句,THINKPAD上2000大概30秒左右,2008要1分50秒
lmtfw 2013-05-03
  • 打赏
  • 举报
回复
引用 4 楼 ap0405140 的回复:
其实"1500万条数据查询测试"的本质是对磁盘I/O效率的测试.. 1. THINKPAD笔记本有几个硬盘? SQL2000和SQL2008分别安装的路径是? 附加的数据库文件路径是? 2. 检查SQL2008的系统设置,是否有设定最大使用内存. 检查SQL2008是否是32位版的?
1、SQL2000,和SQL2008 安装在同一个硬盘上,路径不同 2、SQL2008是R2,企业版的,没有设置内存属性
haitao 2013-05-03
  • 打赏
  • 举报
回复
WIN7旗舰版64位 只能安装开发版的sql吧?这样的数据库有很多限制的
SQL77 2013-05-03
  • 打赏
  • 举报
回复
你只给内存.还有CPU.硬盘呢.还有系统运行时的环境呢.?
加载更多回复(5)

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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