首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2013-06-19 
奇怪的问题,SQL2008和SQL2000速度差异很大2台测试机器,A机器:曙光服务器,32G内存,WIN2008SERVER,同一个数

奇怪的问题,SQL2008和SQL2000速度差异很大
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设置有问题?



测试 服务器
[解决办法]
同机器的2次测试时,最好关闭另一个实例,并清除缓存和执行计划后再进行测试..


-- 清除缓存的执行计划
DBCC FREEPROCCACHE

-- 清除缓存的数据
DBCC DROPCLEANBUFFERS

[解决办法]
其实"1500万条数据查询测试"的本质是对磁盘I/O效率的测试..

1. THINKPAD笔记本有几个硬盘?
   SQL2000和SQL2008分别安装的路径是?
   附加的数据库文件路径是?

2. 检查SQL2008的系统设置,是否有设定最大使用内存.
   检查SQL2008是否是32位版的?

[解决办法]
A机器:曙光服务器,32G内存,WIN2008SERVER,同一个数据库附加在SQL2000和SQL2008上,1500万条数据查询测试,SQL2008速度比SQL2000快2倍

给结果

SET STATISTICS IO ON
GO
SET STATISTICS TIME ON
GO
你的语句

[解决办法]
你只给内存.还有CPU.硬盘呢.还有系统运行时的环境呢.?
[解决办法]
WIN7旗舰版64位
只能安装开发版的sql吧?这样的数据库有很多限制的
[解决办法]
重建索引、更新统计,设定兼容级别后再测试
[解决办法]
引用:
你只给内存.还有CPU.硬盘呢.还有系统运行时的环境呢.?

还要关注那些 环境呢?
会有什么影响呢?
[解决办法]
引用:
Quote: 引用:

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秒

你不给出详细结果,如何帮你分析呢除了上面两条建议再给出另外的计划。

SET STATISTICS profile ON
GO
SET STATISTICS IO ON
GO
SET STATISTICS TIME ON
GO

只能把上面三个结果完整的贴出来,才能做到有的放失的去分析,否则只能靠猜。
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

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秒

你不给出详细结果,如何帮你分析呢除了上面两条建议再给出另外的计划。

SET STATISTICS profile ON


GO
SET STATISTICS IO ON
GO
SET STATISTICS TIME ON
GO

只能把上面三个结果完整的贴出来,才能做到有的放失的去分析,否则只能靠猜。


谢谢,我把结果贴一下
语句

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 毫秒。


SET STATISTICS profile ON 的结果呢
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

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秒

你不给出详细结果,如何帮你分析呢除了上面两条建议再给出另外的计划。

SET STATISTICS profile ON
GO
SET STATISTICS IO ON
GO
SET STATISTICS TIME ON
GO

只能把上面三个结果完整的贴出来,才能做到有的放失的去分析,否则只能靠猜。

谢谢,我把结果贴一下
语句

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 毫秒。


你把2008的 SP_UPDATESTATS 执行一次.再执行比较看看,还有看你给的结果貌似多了点东西啊
[解决办法]
引用:
SQL_Beginner老师,回帖字数限制贴不完整,请看看,这样可以么?

50851SELECT 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.SPBH110NULLNULLNULLNULL3079.038NULLNULLNULL136.8387NULLNULLSELECT0NULL
50851  
[解决办法]
--Sort(ORDER BY:([FBYY].[dbo].[SP].[SPBH] ASC))121SortSortORDER BY:([FBYY].[dbo].[SP].[SPBH] ASC)NULL3079.0380.0028153150.0139404976136.8387[FBYY].[dbo].[SP].[SPID], [FBYY].[dbo].[SP].[SPBH], [FBYY].[dbo].[SP].[SPMC], [Expr1013], [Expr1014]NULLPLAN_ROW01
50851       
[解决办法]
--Hash Match(Inner Join, HASH:([FBYY].[dbo].[LSMCHZ].[SPID])=([FBYY].[dbo].[SP].[SPID]))142Hash MatchInner JoinHASH:([FBYY].[dbo].[LSMCHZ].[SPID])=([FBYY].[dbo].[SP].[SPID])NULL3112.68800.0429984476136.8219[FBYY].[dbo].[SP].[SPID], [FBYY].[dbo].[SP].[SPBH], [FBYY].[dbo].[SP].[SPMC], [Expr1013], [Expr1014]NULLPLAN_ROW01


00            
[解决办法]
--Compute Scalar(DEFINE:([FBYY].[dbo].[LSMCHZ].[SPID]=[Expr1028]))154Compute ScalarCompute ScalarDEFINE:([FBYY].[dbo].[LSMCHZ].[SPID]=[Expr1028])[FBYY].[dbo].[LSMCHZ].[SPID]=[Expr1028]3117.92407.794811E-0523136.1688[FBYY].[dbo].[LSMCHZ].[SPID], [Expr1013], [Expr1014]NULLPLAN_ROW01
50851            
[解决办法]
    
[解决办法]
--Hash Match(Inner Join, HASH:([Expr1028])=([Expr1027]))165Hash MatchInner JoinHASH:([Expr1028])=([Expr1027])NULL3117.92400.0248396923136.1687[Expr1013], [Expr1014], [Expr1028]NULLPLAN_ROW01
00            
[解决办法]
         
[解决办法]
--Compute Scalar(DEFINE:([Expr1028]=[FBYY].[dbo].[LSMCHZ].[SPID]))176Compute ScalarCompute ScalarDEFINE:([Expr1028]=[FBYY].[dbo].[LSMCHZ].[SPID])[Expr1028]=[FBYY].[dbo].[LSMCHZ].[SPID]390.449709.761243E-061570.60744[Expr1014], [Expr1028]NULLPLAN_ROW01
00            
[解决办法]
         
[解决办法]
    
[解决办法]
--Compute Scalar(DEFINE:([Expr1014]=CONVERT_IMPLICIT(int,[globalagg1026],0)))197Compute ScalarCompute ScalarDEFINE:([Expr1014]=CONVERT_IMPLICIT(int,[globalagg1026],0))[Expr1014]=CONVERT_IMPLICIT(int,[globalagg1026],0)390.449709.761243E-061570.60743[FBYY].[dbo].[LSMCHZ].[SPID], [Expr1014]NULLPLAN_ROW01
50851            
[解决办法]
         
[解决办法]
         
[解决办法]
--Stream Aggregate(GROUP BY:([FBYY].[dbo].[LSMCHZ].[SPID]) DEFINE:([globalagg1026]=SUM([partialagg1025])))1109Stream AggregateAggregateGROUP BY:([FBYY].[dbo].[LSMCHZ].[SPID])[globalagg1026]=SUM([partialagg1025])390.449700.0002830761970.60742[FBYY].[dbo].[LSMCHZ].[SPID], [globalagg1026]NULLPLAN_ROW01
50851            
[解决办法]
         
[解决办法]
              
[解决办法]
--Sort(ORDER BY:([FBYY].[dbo].[LSMCHZ].[SPID] ASC))11110SortSortORDER BY:([FBYY].[dbo].[LSMCHZ].[SPID] ASC)NULL1561.7990.0028153150.0064869591970.60714[FBYY].[dbo].[LSMCHZ].[SPID], [partialagg1025]NULLPLAN_ROW01


50851            
[解决办法]
         
[解决办法]
                   
[解决办法]
--Hash Match(Partial Aggregate, HASH:([FBYY].[dbo].[LSMCHZ].[SPID]) DEFINE:([partialagg1025]=COUNT(*)))11211Hash MatchPartial AggregateHASH:([FBYY].[dbo].[LSMCHZ].[SPID]), DEFINE:([partialagg1025]=COUNT(*))[partialagg1025]=COUNT(*)1561.79900.066591281970.56799[FBYY].[dbo].[LSMCHZ].[SPID], [partialagg1025]NULLPLAN_ROW01
30050661            
[解决办法]
         
[解决办法]
                        
[解决办法]
--Hash Match(Aggregate, HASH:([FBYY].[dbo].[LSMCHZ].[SPID], [Expr1015]), RESIDUAL:([FBYY].[dbo].[LSMCHZ].[SPID] = [FBYY].[dbo].[LSMCHZ].[SPID] AND [Expr1015] = [Expr1015]))11312Hash MatchAggregateHASH:([FBYY].[dbo].[LSMCHZ].[SPID], [Expr1015]), RESIDUAL:([FBYY].[dbo].[LSMCHZ].[SPID] = [FBYY].[dbo].[LSMCHZ].[SPID] AND [Expr1015] = [Expr1015])NULL33782.2300.52597961170.5014[FBYY].[dbo].[LSMCHZ].[SPID]NULLPLAN_ROW01
30052611            
[解决办法]
         
[解决办法]
                             
[解决办法]
--Hash Match(Partial Aggregate, HASH:([FBYY].[dbo].[LSMCHZ].[SPID], [Expr1015]), RESIDUAL:([FBYY].[dbo].[LSMCHZ].[SPID] = [FBYY].[dbo].[LSMCHZ].[SPID] AND [Expr1015] = [Expr1015]))11413Hash MatchPartial AggregateHASH:([FBYY].[dbo].[LSMCHZ].[SPID], [Expr1015]), RESIDUAL:([FBYY].[dbo].[LSMCHZ].[SPID] = [FBYY].[dbo].[LSMCHZ].[SPID] AND [Expr1015] = [Expr1015])NULL135128.904.8496883569.75515[FBYY].[dbo].[LSMCHZ].[SPID], [Expr1015]NULLPLAN_ROW01
30425681            
[解决办法]
         
[解决办法]
                                  
[解决办法]
--Table Spool11514Table SpoolEager SpoolNULLNULL22535770.0065864320.40717344355.83448[FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL], [Expr1015]NULLPLAN_ROW01


30425681            
[解决办法]
         
[解决办法]
                                       
[解决办法]
--Parallelism(Gather Streams)11615ParallelismGather StreamsNULLNULL225357702.87223343110.4387[FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL], [Expr1015]NULLPLAN_ROW11
30425688            
[解决办法]
         
[解决办法]
                                            
[解决办法]
--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]))11716Hash MatchInner JoinHASH:([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])NULL2253577017.3238543107.5665[FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL], [Expr1015]NULLPLAN_ROW11
14585568            
[解决办法]
         
[解决办法]
                                                 
[解决办法]
--Bitmap(HASH:([FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HZSJ]), DEFINE:([Bitmap1030]))11817BitmapBitmap CreateHASH:([FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HZSJ])[Bitmap1030]133103903.5456194038.41727[FBYY].[dbo].[LSHZ].[HZSJ], [FBYY].[dbo].[LSHZ].[DH]NULLPLAN_ROW11
14585568            
[解决办法]
         
[解决办法]
                                                 
------解决方案--------------------


    
[解决办法]
--Parallelism(Repartition Streams, Hash Partitioning, PARTITION COLUMNS:([FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HZSJ]))11918ParallelismRepartition StreamsPARTITION COLUMNS:([FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HZSJ])NULL133103903.5456194038.41727[FBYY].[dbo].[LSHZ].[HZSJ], [FBYY].[dbo].[LSHZ].[DH]NULLPLAN_ROW11
14585568            
[解决办法]
         
[解决办法]
                                                 
[解决办法]
         
[解决办法]
--Hash Match(Inner Join, HASH:([FBYY].[dbo].[HWZL].[HWID])=([FBYY].[dbo].[LSHZ].[HWID]), RESIDUAL:([FBYY].[dbo].[HWZL].[HWID]=[FBYY].[dbo].[LSHZ].[HWID]))12019Hash MatchInner JoinHASH:([FBYY].[dbo].[HWZL].[HWID])=([FBYY].[dbo].[LSHZ].[HWID]), RESIDUAL:([FBYY].[dbo].[HWZL].[HWID]=[FBYY].[dbo].[LSHZ].[HWID])NULL133103905.3296234034.87165[FBYY].[dbo].[LSHZ].[HZSJ], [FBYY].[dbo].[LSHZ].[DH]NULLPLAN_ROW11
1368            
[解决办法]
         
[解决办法]
                                                 
[解决办法]
              
[解决办法]
--Parallelism(Distribute Streams, Broadcast Partitioning)12120ParallelismDistribute StreamsNULLNULL1700.02853185110.03183255[FBYY].[dbo].[HWZL].[HWID]NULLPLAN_ROW11
171            
[解决办法]
         
[解决办法]
                                                 
[解决办法]
              
[解决办法]
    
[解决办法]
--Index Scan(OBJECT:([FBYY].[dbo].[HWZL].[PK_HWZL]))12221Index ScanIndex ScanOBJECT:([FBYY].[dbo].[HWZL].[PK_HWZL])[FBYY].[dbo].[HWZL].[HWID]170.0031250.0001757110.0033007[FBYY].[dbo].[HWZL].[HWID]NULLPLAN_ROW01


14585568            
[解决办法]
         
[解决办法]
                                                 
[解决办法]
              
[解决办法]
--Clustered Index Scan(OBJECT:([FBYY].[dbo].[LSHZ].[PK_LSHZ]))12320Clustered Index ScanClustered Index ScanOBJECT:([FBYY].[dbo].[LSHZ].[PK_LSHZ])[FBYY].[dbo].[LSHZ].[HZSJ], [FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HWID]145855629.109050.40114224429.51019[FBYY].[dbo].[LSHZ].[HZSJ], [FBYY].[dbo].[LSHZ].[DH], [FBYY].[dbo].[LSHZ].[HWID]NULLPLAN_ROW11
00            
[解决办法]
         
[解决办法]
                                                 
[解决办法]
--Compute Scalar(DEFINE:([Expr1015]=[FBYY].[dbo].[LSMCHZ].[HZSJ]+[FBYY].[dbo].[LSMCHZ].[DH]))12517Compute ScalarCompute ScalarDEFINE:([Expr1015]=[FBYY].[dbo].[LSMCHZ].[HZSJ]+[FBYY].[dbo].[LSMCHZ].[DH])[Expr1015]=[FBYY].[dbo].[LSMCHZ].[HZSJ]+[FBYY].[dbo].[LSMCHZ].[DH]304256800.07606427451.82536[FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ], [FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL], [Expr1015]NULLPLAN_ROW11
30425688            
[解决办法]
         
[解决办法]
                                                      
[解决办法]
--Parallelism(Repartition Streams, Hash Partitioning, PARTITION COLUMNS:([FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ]))12625ParallelismRepartition StreamsPARTITION COLUMNS:([FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ])NULL304256805.8605325251.74929[FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ], [FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL]NULLPLAN_ROW11
30425688            
[解决办法]
         
------解决方案--------------------


                                                           
[解决办法]
--Clustered Index Scan(OBJECT:([FBYY].[dbo].[LSMCHZ].[PK_LSMCHZ]), WHERE:(PROBE([Bitmap1030],[FBYY].[dbo].[LSMCHZ].[DH],[FBYY].[dbo].[LSMCHZ].[HZSJ])))12726Clustered Index ScanClustered Index ScanOBJECT:([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]304256845.052010.83674545245.88876[FBYY].[dbo].[LSMCHZ].[DH], [FBYY].[dbo].[LSMCHZ].[HZSJ], [FBYY].[dbo].[LSMCHZ].[SPID], [FBYY].[dbo].[LSMCHZ].[SL]NULLPLAN_ROW11
00            
[解决办法]
         
[解决办法]
--Compute Scalar(DEFINE:([Expr1027]=[FBYY


你给的是2008的吧,2000的呢?2000不支持SET STATISTICS profile ON吗? 如果不支持你给个图形计划也可以。
[解决办法]
COUNT(DISTINCT 
速度本来就成问题,测试下
COUNT(DISTINCT 一个字段)
看看2000和2008是否有无别

[解决办法]
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

热点排行