SQL並行與否的效能差異

2022-01-15 01:53:26 字數 3186 閱讀 7556

比較兩種**,核心**相同,其中乙個使用變數儲存查詢出的結果,另乙個直接輸出。使用同一變數時,強迫sql放棄了並行,使用了迴圈。

測試結果

表'#1699586c'

。掃瞄計數

1,邏輯讀取

186

次,物理讀取

0 次,預讀

0 次,

lob

邏輯讀取

0 次,

lob

物理讀取

0 次,

lob

預讀0

次。sql server

執行時間

:cpu

時間= 0

毫秒,占用時間

= 335

毫秒。sql server

執行時間

:cpu

時間= 33954

毫秒,占用時間

=35315

毫秒。 表

'#1699586c'

。掃瞄計數

1,邏輯讀取

186

次,物理讀取

0 次,預讀

0 次,

lob

邏輯讀取

0 次,

lob

物理讀取

0 次,

lob

預讀0

次。sql server

執行時間

:cpu

時間= 93

毫秒,占用時間

=167

毫秒select

@bin = @bin + case @withdeviceid

when 0 then 0x

else

cast (deviceid as

binary(16))

end+ dbo.updatesum(dbo.long2bin_4byte(cardserialno)

+ dbo.long2bin_4byte(tac)

+ dbo.long2bin(cardseq)

+ dbo.int2bin(hardwareno)

+ cast (cardtype as

binary(1))

+ cast (transcationtype as

binary(1))

+ cast (station as

binary(1))

+ dbo.int2bin_3byte(prebalance)

+ dbo.int2bin_3byte(amount)

+ dbo.time2utcbin(transcationtime)

+ cast (devicetype as

binary(1))

+ dbo.int2bin(totalintegral)

+ dbo.short2bin(integral)

+ dbo.int2bin(accountcount)

+ cast (account as

binary(1))

+ dbo.int2bin(balance)

+ dbo.int2bin_3byte(price)

+ cast (period as

binary(1))

+ dbo.int2bin(device)

+ cast (inoutflag as

binary(1))

+ cast (updownflag as

binary(1))

+ dbo.short2bin(operator)

+ cast (cardstandard as

binary(1))

+ cast (transcationmode as

binary(1))

+ cast (0 as

binary(1))

+ cast(0 as

binary(7)) + 0x55, 0, 62,

63)from @record

select

case 1

when 0 then 0x

else

cast (deviceid as

binary(16))

end + dbo.updatesum(dbo.long2bin_4byte(cardserialno)

+ dbo.long2bin_4byte(tac) + dbo.long2bin(cardseq)

+ dbo.int2bin(hardwareno)

+ cast (cardtype as

binary(1))

+ cast (transcationtype as

binary(1))

+ cast (station as

binary(1))

+ dbo.int2bin_3byte(prebalance)

+ dbo.int2bin_3byte(amount)

+ dbo.time2utcbin(transcationtime)

+ cast (devicetype as

binary(1))

+ dbo.int2bin(totalintegral)

+ dbo.short2bin(integral)

+ dbo.int2bin(accountcount)

+ cast (account as

binary(1))

+ dbo.int2bin(balance) + dbo.int2bin_3byte(price)

+ cast (period as

binary(1)) + dbo.int2bin(device)

+ cast (inoutflag as

binary(1))

+ cast (updownflag as

binary(1))

+ dbo.short2bin(operator)

+ cast (cardstandard as

binary(1))

+ cast (transcationmode as

binary(1))

+ cast (0 as

binary(1)) + cast(0 as

binary(7))

+ 0x55, 0, 62, 63)

from

@record

平行計算 並行程式效能的評估

一 speedup factor 加速比例 s p ts tp ts 最好的序列演算法所需的執行時間 tp 使用並行p個處理器所需的執行時間。線性提速 s p p 二 system efficiency e p ts tp x p s p p x 100 三 maximum speedup 很難達到...

seastar與go的http效能差異

golang的coroutine好用,但是coroutine本身切換是需要有代價的,主要體現在記憶體棧的上下文切換。之前看過乙個c 的go風格的庫,叫libgo,根據其github主頁的benchmark,協程切換速率是要優於go的。但是這篇文章並非要和libgo比較,由於筆者之前接觸過scylla...

管理並行SQL執行的程序

本節介紹的並行執行功能可用於oracle資料庫企業版 本節介紹如何管理sql語句的並行處理。在此配置中,oracle資料庫可以將處理sql語句的工作分為多個並行程序。並行化表建立 中包含使用並行sql執行的示例。本節包含以下主題 有關使用並行提示的資訊,請參閱 oracle資料庫效能調整指南 關於並...