我想知道我是否可以挑选社区的大脑......
在我正在处理的项目中,需要从键值列表中查找值。此列表在整个软件生命周期内不会更改。让我们举一个例子,因此列表是:
ID Name
1 Apple
2 Orange
3 Pear
4 Banana
......等等。
我正在考虑实现这两种方法。第一种是将列表存储在某种(尚未确定的)C#数据集合中,然后根据需要在运行时查找所需的值。我正在考虑的第二种方法是将列表存储在数据库表中(SQL Server 2008,因为你问过)。然后,应用程序可以在运行时通过存储过程访问数据库。
在用户从Web表单发出请求后,查找将连续快速发生两次。
我的疑问是:就处理时间而言,这两种方法中哪一种最有效?
我意识到这个问题可能没有明确的答案,但我欢迎任何评论或想法。
答案 0 :(得分:3)
性能方面的代价通常是磁盘访问和网络访问。
如果您在Web服务器或应用程序服务器中的内存(RAM)中有可用的集合,这将比对数据库的查询更快。
如果数据不太可能经常更改或根本没有,您可以选择内存数据结构,如果有时更改,您可以从db查询并将其存储在缓存中,因此在访问该对象后不需要数据库查询,直到缓存过期或根据您的需要重置。
答案 1 :(得分:0)
使用字典<>,它比数据库的往返速度快几个数量级。
答案 2 :(得分:0)
正如你所说 -
该列表在整个软件生命周期内不会改变。
我会将列表硬编码到程序中。对于永远不会改变的列表,数据库开销是不值得的。