我是SQL新手,请原谅我,如果我的问题看起来很幼稚。
只是我的申请的简要说明:
一切正常,GUI应该更新,我也可以从GUI的主线程在数据库中进行查询。一切似乎都很完美。
==============================
现在我想创建另一个函数,它将在另一个每10分钟运行一次的线程中再次运行。 这个函数的目的是检索DataTable的所有条目,一旦它将它们检索到本地列表,然后进行一些低级处理,比如获取数据的平均值。
我的问题是:
最好从sql数据库中检索整个DataTable一次,将其存储在临时列表中并进行处理:
USING()
{
- OpenConnection
- Query & Store data in a big 300000 elements list
- Close Connection
- Process list
}
或者最好从数据包中检索DataTable中的数据,处理每个数据包然后请求下一个数据包。操作将如下所示:
FOR LOOP 3 TIMES
USING()
{
- OpenConnection
- Query & Store data in a small 100000 elements list
- Close Connection
- Process list
}
END
哪种方法会更好?
由于多线程,某些查询是否会出现故障?
请记住表格和列表大小不是实际的,但我使用这些数字作为示例。
答案 0 :(得分:1)
如果你有内存来存储整个数据,那么最好在一个连接中进行。避免多次网络往返。因此,解决方案取决于您的实际尺寸数字。
但如果您需要AVG
,请在不在您应用中的数据库上执行此操作。