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表要慢许多。

原文地址:https://www.cnblogs.com/yada/p/12691669.html