2012-07-17 48 views
0

存在以下情况: 我正在为一个基于电信的项目生成提供的站点详细信息输入的价格。与性能相关的问题

输入以Excel工作表的形式传递,相应的输出显示在gridview中。

输出网格包含两个下拉列表,根据网站详细信息填充。 这意味着gridview的每一行都有两个下拉列表,它是通过点击数据库填充的

目前这个工具对于200个站点来说工作正常,但现在客户想要从Excel表格中传递10,000个站点作为输入。

打10000个网站的数据库将会非常繁琐,它会降低系统的性能。

我使用asp.net 3.5使用C#和数据库sql server 2008

有谁有尽可能最好的方式做这个任务的解决方案?

+0

你能更加明确地解释数据的设置吗?每个下拉列表都一样吗?如果是这样,那么你只需要获得一次可能的选项,并将每个列表绑定到它们。目前还不清楚你在做什么。也许用(最小)代码来演示它? – David 2012-07-17 11:48:27

+0

为什么在一次数据库命中时没有获得所有必需的详细信息? – Shailesh 2012-07-17 11:48:57

+0

如果数据不会频繁变化(EG,每天更改一次),为什么不简单地缓存数据,不需要任何数据库调用,也不需要引入任何其他MQ,Sharding,Clustering,Load Balancers等。 – Kane 2012-07-17 11:52:12

回答

0

可伸缩性是您的关键。

如果可能的话,你应该利用负载均衡,如果你可以使一些进程异步然后做 - 使用类似ActiveMQ或RabbitMQ的东西,这将停止UI挂起。

也考虑拥有集群数据库服务器。

你的目标应该是尽可能地给用户反馈ASAP(异步反馈),保证工作处理(队列/消息系统),处理大量用户(负载平衡)。

Theres对于代码优化还有很多需要说明的地方,看看你的代码,看看你是否可以“减肥”来加快速度。

+0

集群如何帮助这种情况? – 2012-07-17 12:03:38

+0

@AaronBertrand Web群集还是数据库群集?一个网络集群可以让更多的网站同时使用它,一个数据库集群允许两个网络服务器与两个不同的数据库进行通信,并推送信息时没有对网络带宽进行太多的限制,并按照他们自己的条款而不是在数据库之间进行合并大量数据的传输。 – 2012-07-17 12:06:06

+1

这不是单实例群集的工作原理 - 它是用于故障转移的目的,而不是用于并发冗余 - 您只能在任何给定时间与主动节点上的实例通信。你可以建立一个多实例集群,但是你必须处理合并数据,而且我不确定相比于两个单独的非集群实例做什么(性能方面),你会得到什么样的结果事情。 – 2012-07-17 12:08:53