手头有一个项目,.net +SQL2008,需要程序能够承受每秒1000个终端请求,并写入数据库,而且是持续性的,没有间断,求解决方案数据库.NET解决方案
解决方案 »
- 在winform项目中引用webservice问题
- 【求推荐】2005下。。Web打印报表用什么工具好。
- 关于操作表格的问题。如何改变选中行的颜色。而其余行的颜色不变。
- visual studio 2003 asp.net aspx.cs 文件里函数变量值输出的问题?
- 高分请教各位高手:在asp.net下如何在后台代码实现将一段html代码写入到页面的指定位置?
- 添加的是后为什么不可以添加html代码?
- 菜鸟求救,大家帮我看一下这个数据库方面的语句
- 两个问题请教!
- 读取Excel中的数据时为什么取到的总是System.__ComObject?
- 求助:bootstrap-table 无法显示右下角分页栏
- iis7中会话状态模式设置为sql server后,怎么设置session的超时?
- 怎么用JQueryAjax绑定数据到页面呢?
每秒有1000次
有10000000也没什么啊
但是我一次就要执行n操作1个就有可能完蛋你单纯要减少次数也简单
用一个datatable
每次就在datatable里面加,每秒有1000次不叫事
然后到一定条数在提交,不是有10秒的空闲吗!可以利用
2.根据实际数据量大小计算IO需要多少,如果虽然次数多,但是数据量小,IO能够挺,那么就搞定了。
3.如果IO不能挺住,就只能分片了,把数据存储在不同的数据库中,然后再在上层形成数据仓库进行统一的查询和检索。
个人见解,不对请喷
1. 要减少web服务器与DB服务器之间的round trip, 这个的话就要尽量直接使用ado.net的sqlclient, 避免使用datatable和entity framework等.
2. 采用多DB服务器的架构.
3. 根据第2条, 数据库table的设计必须采用可横向扩展的设计, 也就是根据请求的某些关键字来哈希映射到某一台DB服务器的连接字符串. 根据需求, 可能会需要静态映射, 也就是映射方式必须能保证进行横向扩展之后, 同样的关键字还是能映射到以前所用的那个DB服务器的连接字符串. 网上可以搜到很多相应的方法.
4. 最重要的, 必须定期通过压力测试来收集统计数据, 以确定是否需要搭新的DB服务器进行横向扩展, 以及要扩展几台服务器.
最后, 强烈推荐使用天生具有扩展性的一些NoSQL数据库来替换掉SQL Server.
先准备好在5~20台服务器上实现这个要求。终端首先要访问一个Master服务器,获取其真正要连接的服务器地址,然后同时要向至少2台(最好3台)服务器上传送数据,保证系统中数据不会丢失。不要纠结在一台服务器上如何“优化”,这不是优化能够解决问题的。