繁体   English   中英

我应该执行许多sql查询还是一个大型查询,并在服务器上进行处理?

[英]Should I do many sql queries or one large query and do the processing on the server?

情况如下:我有一个很大的数据集,其中包含从Excel文件填充的数千个条目。 对于每个条目,我必须将其与数据库中某个表上的另一个字段进行匹配(此表仅包含数百个条目)。

最好的方法是什么? 我可以查询数据集中的每个条目,但这看起来很浪费。 另一方面,我可以从表中的所有条目中选择所需的字段,将它们放在Dictionary或其他数据结构上,并在IIS上进行匹配,这样就可以有效地仅执行一个查询,但可以在Web服务器上进行所有处理。

数据集:〜1000至〜3000个条目

DB中的表:〜300个条目

在IIS上使用asp.net,但数据库是MS访问文件。

这些中的一个更好吗? 有我没有想到的第三种更好的方法吗?

这个评论太长了。

数据库旨在执行许多对数据处理有用的事情。 缩写ACID包含事务处理的许多好处-原子性,一致性,隔离性,持久性。 换句话说,数据库的行为与您在其中存储内容时的期望方式相同。 数据在那里,关系得到加强,明天就会在那里。

所需的功能在查询方面。 通常,数据库(尽管可能不是特别是MS Access)允许相对标准的接口来进行强大的处理。 数据库引擎知道如何优化查询。 数据库引擎知道如何管理内存。 数据库引擎知道如何使用磁盘,RAM和缓存来管理分层内存。 数据库知道如何利用索引,行分区和其他优化。 (您可以使用免费版本的更高级的数据库来获得此功能,例如SQL Server,Oracle,Postgres甚至MySQL。)

您正在谈论数千行数据。 数据库可以轻松处理数百万行。 您正在谈论两个表。 数据库可以轻松管理十二个表和查询。

因此,不,您不应该将数据加载到应用程序端的内存结构中。 您应该在数据库中进行处理,并返回所需的结果。 然后,您可以在应用程序端设置结果的格式,以利用最擅长的应用程序:与用户交互。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM