楼主: kelsoncong

[精华] 如何让SQL Server支持高并发环境

[复制链接]
论坛徽章:
20
SQL大赛参与纪念
日期:2011-04-13 12:08:17生肖徽章:马
日期:2013-12-06 14:15:45生肖徽章:羊
日期:2013-12-06 14:15:45生肖徽章:猴
日期:2013-12-06 14:15:45生肖徽章:鸡
日期:2013-12-06 14:15:45生肖徽章:狗
日期:2013-12-06 14:15:45生肖徽章:猪
日期:2013-12-06 14:15:45SQL极客
日期:2013-12-09 14:13:35itpub13周年纪念徽章
日期:2014-09-28 10:55:55生肖徽章:蛇
日期:2013-12-06 14:15:45
121#
发表于 2012-9-16 12:34 | 只看该作者
对于数据库造成的性能瓶颈,我的经验是:1、在应用中,对于很多关键通用(变化不大)的数据,采用数据缓存来减少对数据库的请求(曾经调整过一个项目中的数据查询,将数千次近似重复的数据库查询用两次SQL查询+缓存替代,性能大为提升);2、在数据库优化方面,要根据业务处理有针对性的进行优化,比如调整索引啊等等,必要时也可能需要调整数据的存储结构,利用一些必要的数据冗余来答复提升性能。

使用道具 举报

回复
论坛徽章:
20
SQL大赛参与纪念
日期:2011-04-13 12:08:17生肖徽章:马
日期:2013-12-06 14:15:45生肖徽章:羊
日期:2013-12-06 14:15:45生肖徽章:猴
日期:2013-12-06 14:15:45生肖徽章:鸡
日期:2013-12-06 14:15:45生肖徽章:狗
日期:2013-12-06 14:15:45生肖徽章:猪
日期:2013-12-06 14:15:45SQL极客
日期:2013-12-09 14:13:35itpub13周年纪念徽章
日期:2014-09-28 10:55:55生肖徽章:蛇
日期:2013-12-06 14:15:45
122#
发表于 2012-9-16 12:36 | 只看该作者
其实说来,很多时候应用程序里的流程处理或者逻辑不清才是真正影响系统应用性能的关键!!

使用道具 举报

回复
论坛徽章:
20
SQL大赛参与纪念
日期:2011-04-13 12:08:17生肖徽章:马
日期:2013-12-06 14:15:45生肖徽章:羊
日期:2013-12-06 14:15:45生肖徽章:猴
日期:2013-12-06 14:15:45生肖徽章:鸡
日期:2013-12-06 14:15:45生肖徽章:狗
日期:2013-12-06 14:15:45生肖徽章:猪
日期:2013-12-06 14:15:45SQL极客
日期:2013-12-09 14:13:35itpub13周年纪念徽章
日期:2014-09-28 10:55:55生肖徽章:蛇
日期:2013-12-06 14:15:45
123#
发表于 2012-9-16 12:41 | 只看该作者
在应用中设置数据缓存(简单点,对于关键数据设置几个static的map变量,使用SQL查询的条件组合作为关键字索引,使用时直接从map中获取即可),并设置合理的缓存更新策略(非常重要,否者或出现数据不一致或者脏数据等问题),可以讲系统对数据库的请求大幅降低,尤其在压力测试下效果明显!

使用道具 举报

回复
论坛徽章:
3
ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26沸羊羊
日期:2015-03-04 14:51:522015年新春福章
日期:2015-03-06 11:57:31
124#
发表于 2012-9-16 19:29 | 只看该作者
passing by

使用道具 举报

回复
论坛徽章:
3
ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:152014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02
125#
发表于 2012-9-17 08:46 | 只看该作者
并发达到2000-3000,sqlserver应该不是问题吧。
这类优化,不仅仅是数据库层的事情了。

使用道具 举报

回复
论坛徽章:
0
126#
发表于 2012-9-17 09:41 | 只看该作者
mssql才这么点并发

使用道具 举报

回复
论坛徽章:
2
喜羊羊
日期:2015-03-04 14:52:462015年新春福章
日期:2015-03-06 11:58:18
127#
发表于 2012-9-17 09:56 | 只看该作者
kelsoncong 发表于 2012-9-14 15:10
抛开应用设计不说,就某个已经成熟的应用而言,
我比较关心的是采用集群是否可以提升并发,还是仅仅停留 ...

MSSQL群集应用也很广泛吧,但的确只是HA,高并发通过repl等方式解决.

使用道具 举报

回复
论坛徽章:
2
祖国60周年纪念徽章
日期:2009-10-09 08:28:002013年新春福章
日期:2013-02-25 14:51:24
128#
发表于 2012-9-17 09:58 | 只看该作者
从纯硬件上解决是很难的,要从架构上,代码上多重解决.
1):数据库一分为二:分为操作数据库和报表数据库。报表数据库可以每隔一天同步或者每隔多少小时同步.
    因为报表查询会占用到太多的数据库资源.
2):多利用缓存,尽量减少对数据库的操作.
3):把一些原来用存储过程的执行的动作转为用代码来执行.
4):重要的业务进行数据库分表。可以用分区表,也可以自已写代码来分.
5):应用层应该可以进行集群.

使用道具 举报

回复
论坛徽章:
67
现任管理团队成员
日期:2012-06-02 02:10:00ITPUB元老
日期:2012-09-12 14:06:14ITPUB社区千里马徽章
日期:2013-06-09 10:15:34季节之章:冬
日期:2012-09-04 11:05:30季节之章:春
日期:2012-09-05 09:20:36优秀写手
日期:2013-12-18 09:29:09马上有房
日期:2014-04-10 13:35:362014年新春福章
日期:2014-04-14 09:54:08马上有车
日期:2014-02-28 16:43:13马上加薪
日期:2014-02-19 11:55:14
129#
 楼主| 发表于 2012-9-17 10:04 | 只看该作者
ESK分销ERP 发表于 2012-9-17 09:58
从纯硬件上解决是很难的,要从架构上,代码上多重解决.
1):数据库一分为二:分为操作数据库和报表数据库。报 ...

谢谢回复,
现在主要讨论一个稳定系统的并发性能提升,从数据库端的角度来看,能做什么样的工作,并不是说代码不能改,但是要尽可能的缩小改动。否则无论是时间还是精力都是不够的,
1 现在全部是OLTP的操作,暂不考虑报表的问题
2 数据库层面本来就是有缓存处理的,如果用额外的缓存服务器可能会带来一些同步的问题
3 这个没试过,多并发性能有帮助吗?为什么?
4 这个是一个值得考虑的思路
5 应用层现在没有瓶颈

使用道具 举报

回复
论坛徽章:
67
现任管理团队成员
日期:2012-06-02 02:10:00ITPUB元老
日期:2012-09-12 14:06:14ITPUB社区千里马徽章
日期:2013-06-09 10:15:34季节之章:冬
日期:2012-09-04 11:05:30季节之章:春
日期:2012-09-05 09:20:36优秀写手
日期:2013-12-18 09:29:09马上有房
日期:2014-04-10 13:35:362014年新春福章
日期:2014-04-14 09:54:08马上有车
日期:2014-02-28 16:43:13马上加薪
日期:2014-02-19 11:55:14
130#
 楼主| 发表于 2012-9-17 10:05 | 只看该作者
shanks_gao 发表于 2012-9-17 09:56
MSSQL群集应用也很广泛吧,但的确只是HA,高并发通过repl等方式解决.

复制的问题前面大家聊了比较多了,主要对复制本身的延时和性能开销有点疑惑,可能需要实际测试数据的支持。 有空的时候我会来做下试验。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表