WinCC試驗:歸檔數據庫的不同查詢方式速度對比


測試環境的WinCC設置為1秒1次變量記錄,查詢兩天的數據,共158039行,以下測試查詢內容相同。注意圖片右下角查詢時間和查詢行數。

查詢對比

從WinCC過程值歸檔數據庫中查詢出的變量是以列呈現的,一般還需再做二次查詢對數據進行轉換,把變量值變成二維表格。這里不對數據進行轉換,只把查詢的數據保存到臨時表變量再二次查詢,模擬實際使用的過程。

(1)用WinCC提供的存儲過程查詢,查詢的數據先保存在臨時表變量中,然后再從臨時表變量中查詢所有數據,耗時20秒。

(2)用WinCC建立的鏈接數據庫查詢,查詢的數據先保存在臨時表變量中,然后再從臨時表變量中查詢所有數據,耗時20秒。

(3)用WinCC建立的鏈接數據庫查詢,查詢的數據直接顯示,耗時14秒。

(4)用WinCC提供的OLEDBProvider查詢,查詢的數據直接顯示,耗時14秒。

(4)直接查詢SQL Server數據庫,該表是用上面方法查詢出數據后寫入其中建立的測試表,耗時1秒。

 

結論

序號

查詢方式

耗時(秒)

1

存儲過程查詢,保存到表變量再顯示。

20

2

鏈接服務器查詢,保存到表變量再顯示。

20

3

鏈接服務器查詢,直接顯示。

14

4

WinCCOLEDBProvider查詢,直接顯示。

14

5

SQL Server表查詢。

1

  從WinCC過程值歸檔數據庫中查詢158039行數據耗時14秒,每秒查詢到‭11288行數據‬,如果臨時保存到表變量需再耗費6秒,如果從SQL Server數據庫中查詢數據保存到表變量只需1秒。

  存儲過程內所使用的接口正是鏈接服務器,而鏈接服務器也是通過WinCCOLEDBProvider創建,所以以上結果WinCC的存儲過程、鏈接服務器和WinCCOLEDBProvider的查詢速度一樣,但是都比查詢SQL Server表要慢許多。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM