位置: 编程技术 - 正文

Sqlserver 高并发和大数据存储方案(sqlserver高并发性能差)

编辑:rootadmin

推荐整理分享Sqlserver 高并发和大数据存储方案(sqlserver高并发性能差),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:sqlserver并发处理,sqlserver 高并发读写,sqlserver 高并发读写,sqlserver 高并发读写,sqlserver高并发性能差,sqlserver高并发解决方案,sqlserver高并发死锁,sqlserver高并发解决方案,内容如对您有帮助,希望把文章链接给更多的朋友!

随着用户的日益递增,日活和峰值的暴涨,数据库处理性能面临着巨大的挑战。下面分享下对实际万+峰值的平台的数据库优化方案。与大家一起讨论,互相学习提高!

案例:游戏平台.

1、解决高并发

当客户端连接数达到峰值的时候,服务端对连接的维护与处理这里暂时不做讨论。当多个写请求到数据库的时候,这时候需要对多张表进行插入,尤其一些表 达到每天千万+的存储,随着时间的积累,传统的同步写入数据的方式显然不可取,经过试验,通过异步插入的方式改善了许多,但与此同时,对读取数据的实时性也需要做一定的牺牲。

异步的方式有很多,目前采取的方式是通过作业每隔一段时间(5min、min..看需求设定)将临时表的数据转到真实表。

1. 已有原始表A 也是在读取的时候真正用到的表。

2. 建立与原始表A同结构的B和C,用来作数据的中转处理,同步流程是C->B->A。

3. 建立同步数据的作业Job1和记录Job1运行状态的表,在同步的时候比较关键的是需要检查Job1的当前状态,如果当前正在将B的数据同步到A,则把服务端过来的数据存到C,然后再把数据导入到B,等到下一次Job执行的时候再将这批数据转到A。如图1:

图1

同时,为保万无一失和便于排查问题,应该用一个记录整个数据库实例的存储过程,在较短的时间检查作业执行结果,如果遇到异常失败的,应该及时通过其他方式通知到相关人员。如写入到发邮件和短信表,让一个Tcp的通知程序定时读取发送等等。

Sqlserver 高并发和大数据存储方案(sqlserver高并发性能差)

注:如果一天的数据达到几十个G,如果又对这个表有查询要求(分区下面会提到),下策之一:

可将B同时同步到多台服务器分担下查询压力,减少资源的竞争。因为整个数据库的资源是有限的,如插入操作,会先获得一个共享锁,然后通过聚集索引定位到某一行数据,再升级为意向锁,而sqlserver对锁的维护根据数据的大小需要申请不同的内存,造成了资源的竞争。所以应该尽可能的将读和写分开,可根据业务模型分,可根据设定的规则分;在平台性的项目中应该优先保证数据能有效的插入。

在不可避免的查询大数据肯定会耗用大量的资源,如遇到批量删除的时候,可以换成以循环分批次(如一次条)的方式,这样不至于这个进程导致整个库挂掉,衍生出一些无法预计的bug。经实践,有效可行,只是牺牲了存储空间。也可根据查询需求将表里数据量大的字段拆分出来到新表,当然这些也要根据每个业务场景结合需求来设定,设计出适合而并不需要华丽的方案即可。

2、解决存储问题

如果每天单表的数据都达到了几十个G,改善存储方案自然迫不及待了。现分享下自有的方案,在暴涨的数据摧残之下,仍坚守在一线!现举例对自有环境分享拙见:

现有数据表A,单表每天新增数据G,在存储的时候采用异步将数据同步的方式,有的不能清除数据的表,在分区后还可分文件组,将文件组分配到不同的磁盘中,减少IO资源的竞争,保障现有资源的正常运行。现结合需求保留历史数据5天:

1. 这时需要通过作业job根据分区函数去生成分区方案,如根据userid或者时间字段来分区;

2. 将表分区后,查询可以通过对应的索引,快速定位到某一段分区;

3. 通过作业合并分区将不要的分区数据转移到相同结构和索引的表,然后清除这个表的数据。

如图2:

图2

通过sql查询跟踪捕捉到查询耗时长的,以及通过sql自带的存储过程sp_lock或视图dm_tran_locks、dblockinfo查看当前实例存在的锁的类型和粒度。

定位到具体的查询语句或者存储过程之后,对症下药!药到病除!

标签: sqlserver高并发性能差

本文链接地址:https://www.jiuchutong.com/biancheng/320253.html 转载请保留说明!

上一篇:SQL JOIN 连接详细介绍及简单使用实例(sql join 语句)

下一篇:系统隐形杀手——阻塞与等待(SQL)(系统带我玩隐形守护者 小说)

  • 车船税征收标准表
  • 差旅费的现金流
  • 资产负债表存货怎么填列
  • 支票的填写前应检查有哪些内容
  • 购房所需的税费种类和费用
  • 摊余成本加还是减
  • 无法收回的应收账款情况说明
  • 退货应入会计什么科目
  • 废气处理工程会计分录
  • 注册资本金印花税税率是多少
  • 增值税税负率高于预警值
  • 技术服务费可以计入研发费用吗
  • 企业所得税本季度可以弥补上季度亏损吗?
  • 企业与个人租赁合同范本
  • 30万的装修工程利润一般是多少
  • 何时进行文化事业建设
  • 反写状态已反写是什么意思
  • 增值税申报尾差怎么做账
  • 增值税发票系统金税盘发票怎么抵扣
  • 定金转为货款金额需要特别约定吗?
  • 企业代收代支的非税收入需要缴税吗?
  • 进项发票没有收到,销项已开出,成本如何结转
  • 净利润与毛利润那个会大一点
  • 网上申领发票怎么清卡
  • 腾讯电脑管家开机加速在哪里
  • 关闭系统保留空间
  • 公司买的理财产品怎么做账
  • 公众号采集文章手机操作
  • scsiaccess.exe - scsiaccess是什么进程 有什么用
  • 多付货款退回的法律依据
  • php定义的异常
  • 用php做一个表格
  • 应付职工薪酬的借方和贷方
  • 秋分日的时间意义庆祝方式
  • 西部大开发税收优惠政策是什么时候开始的?
  • php gd
  • 固定资产闲置能报废吗
  • web数据可视化(Echars版)实训
  • 专票退税是什么意思
  • 机动车组织机构代码查询
  • css字体设置渐变色
  • 华为云从入门到实战电子版
  • 利息收入可以冲减开发成本的法律依据
  • 新开办公司如何办理金税盘
  • 本月没有销售收入,需要申报增值税吗
  • 股东以房产投资公司
  • 使用sql server查询不到会返回什么
  • 收付实现制的适用范围
  • 收到自然人税务申报短信
  • 收到所得税退税现金流量选哪个
  • 加工费的进项发票摘要写什么
  • 自产自销免税发票可以抵税吗
  • 什么叫做对公转账
  • 行政事业单位固定资产计提折旧
  • 环境检测费属于什么费用
  • 租用的办公室装修费用怎么入账
  • 总分类账封面封地和启用页的区别
  • 年终建账于年初建账,在录入期初余额时有什么不一样?
  • 最新版手机
  • mysql中字符串类型
  • 32位/64位Win10系统开机后桌面图标自动排列的解决办法
  • 写出linux相关命令及用法
  • tf.nn.tanh函数
  • 微信小程序选择地址
  • windows更新
  • 奇门遁甲实例详解
  • node网络爬虫
  • unity3d如何发布ios教程
  • 安卓如何取消长按电源键关机
  • ug10避让怎么设置
  • 用python写一个程序
  • 福建省电子税务局官网登录入口
  • 就业核查怎么核查
  • 12366属于哪个部门
  • 税务设备有什么特点
  • 部落冲突显示此不论描述无效
  • 电信业八大争议事件
  • 手机的海关税
  • 湖南地方税务局网上办税大厅
  • 收缴和缴纳的区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设