SQL并行與否的性能差異比較兩種代碼,核心代碼相同,其中一個(gè)使用變量保存查詢出的結(jié)果,另一個(gè)直接輸出。使用同一變量時(shí),強(qiáng)迫SQL放棄了并行,使用了循環(huán)。
?
測(cè)試結(jié)果
表'#1699586C'。掃描計(jì)數(shù)1,邏輯讀取186 次,物理讀取0 次,預(yù)讀0 次,lob 邏輯讀取0 次,lob 物理讀取0 次,lob 預(yù)讀0 次。
?
SQL Server 執(zhí)行時(shí)間:
CPU 時(shí)間= 0 毫秒,占用時(shí)間= 335 毫秒。
?
SQL Server 執(zhí)行時(shí)間:
CPU 時(shí)間= 33954 毫秒,占用時(shí)間= 35315毫秒。
?
表'#1699586C'。掃描計(jì)數(shù)1,邏輯讀取186 次,物理讀取0 次,預(yù)讀0 次,lob 邏輯讀取0 次,lob 物理讀取0 次,lob 預(yù)讀0 次。
?
SQL Server 執(zhí)行時(shí)間:
CPU 時(shí)間= 93 毫秒,占用時(shí)間= 167毫秒
?
?
?
- SELECT @bin = @bin + CASE @withDeviceID
- ????????????????????????????????????????WHEN 0 THEN 0x
- ????????????????????????????????????????ELSECAST (deviceid ASBINARY(16))
- ??????????????????????????????????????END
- ????????????????????????+ dbo.updatesum(dbo.long2Bin_4byte(CardSerialNo)
- ????????????????????????????????????????+ dbo.long2Bin_4byte(Tac)
- ????????????????????????????????????????+ dbo.long2Bin(CardSeq)
- ????????????????????????????????????????+ dbo.int2Bin(HardwareNo)
- ????????????????????????????????????????+ CAST (CardType ASBINARY(1))
- ????????????????????????????????????????+ CAST (TranscationType ASBINARY(1))
- ????????????????????????????????????????+ CAST (Station ASBINARY(1))
- ????????????????????????????????????????+ dbo.int2Bin_3byte(PReBalance)
- ????????????????????????????????????????+ dbo.int2Bin_3byte(Amount)
- ????????????????????????????????????????+ dbo.time2utcbin(TranscationTime)
- ????????????????????????????????????????+ CAST (DeviceType ASBINARY(1))
- ????????????????????????????????????????+ dbo.int2Bin(TotalIntegral)
- ????????????????????????????????????????+ dbo.short2bin(Integral)
- ????????????????????????????????????????+ dbo.int2Bin(AccountCount)
- ????????????????????????????????????????+ CAST (Account ASBINARY(1))
- ????????????????????????????????????????+ dbo.int2Bin(Balance)
- ????????????????????????????????????????+ dbo.int2bin_3byte(Price)
- ????????????????????????????????????????+ CAST (Period ASBINARY(1))
- ????????????????????????????????????????+ dbo.int2Bin(Device)
- ????????????????????????????????????????+ CAST (InOutFlag ASBINARY(1))
- ????????????????????????????????????????+ CAST (UpDownFlag ASBINARY(1))
- ????????????????????????????????????????+ dbo.short2bin(Operator)
- ????????????????????????????????????????+ CAST (CardStandard ASBINARY(1))
- ????????????????????????????????????????+ CAST (TranscationMode ASBINARY(1))
- ????????????????????????????????????????+ CAST (0 ASBINARY(1))
- ????????????????????????????????????????+ CAST(0 ASBINARY(7)) + 0x55, 0, 62,
- ????????????????????????????????????????63)
- ????????????????FROM @record
?
?
- SELECTCASE 1
- ??????????WHEN 0 THEN 0x
- ??????????ELSECAST (deviceid ASBINARY(16))
- ????????END + dbo.updatesum(dbo.long2Bin_4byte(CardSerialNo)
- ????????????????????????????+ dbo.long2Bin_4byte(Tac) + dbo.long2Bin(CardSeq)
- ????????????????????????????+ dbo.int2Bin(HardwareNo)
- ????????????????????????????+ CAST (CardType ASBINARY(1))
- ????????????????????????????+ CAST (TranscationType ASBINARY(1))
- ????????????????????????????+ CAST (Station ASBINARY(1))
- ????????????????????????????+ dbo.int2Bin_3byte(PreBalance)
- ????????????????????????????+ dbo.int2Bin_3byte(Amount)
- ????????????????????????????+ dbo.time2utcbin(TranscationTime)
- ????????????????????????????+ CAST (DeviceType ASBINARY(1))
- ????????????????????????????+ dbo.int2Bin(TotalIntegral)
- ????????????????????????????+ dbo.short2bin(Integral)
- ????????????????????????????+ dbo.int2Bin(AccountCount)
- ????????????????????????????+ CAST (Account ASBINARY(1))
- ????????????????????????????+ dbo.int2Bin(Balance) + dbo.int2bin_3byte(Price)
- ????????????????????????????+ CAST (Period ASBINARY(1)) + dbo.int2Bin(Device)
- ????????????????????????????+ CAST (InOutFlag ASBINARY(1))
- ????????????????????????????+ CAST (UpDownFlag ASBINARY(1))
- ????????????????????????????+ dbo.short2bin(Operator)
- ????????????????????????????+ CAST (CardStandard ASBINARY(1))
- ????????????????????????????+ CAST (TranscationMode ASBINARY(1))
- ????????????????????????????+ CAST (0 ASBINARY(1)) + CAST(0 ASBINARY(7))
- ????????????????????????????+ 0x55, 0, 62, 63)
- FROM @record
?