数据库调优过程(五):物理分表,及写入方案调整

  • 背景:
  1.      enb下包含多个文件,我们需要解析这样的数据到数据库中,供应用端计算分析使用。之前,我们已经采用了分表方案,分表分为一个主表,三个子表。每一个enb一套表。
  2.      解析业务:

     每取到一个文件就读取为一个实体集合到内存中,当一个文件读取完成后,调入库接口;在入库时,先把这个实体集合拆分为主表的datatable对象,三个子表的datatable对象,之后并行入库。

  • 分析:

    基于上边的一共包含两个弊端问题:

  1.     内存占用高:我们先读取为一个实体集合,之后转化为4个datatable对象才能进行入库,这个过程相当于内存中的数据量成倍的增加了,空间也比最小化内存多了几倍。
  2.     入库速度不高:由于入库表过多,而且连接数也有限,网络带宽成为瓶颈,虽然分表了,但是处理一个enb时,需要写入4个物理表;如果并行16个ENB,则会有16enb*24文件*4表次连接写入,过多的连接对sqlserver数据库也没有好处,写入文件过于分散也使得数据库吞吐量提不高。
  • 调整:

  分表改进:

               把原来的分为一套表(一个主表,三个子表)方案修改为一个表,避免过多表同时要求写入影响数据库IO吞吐量;

      解析业务调整:

               每取到一个文件就读取为一个datatable到内存中,当一个文件读取完成后,调入库接口;在入库时,直接把datatable对象入库。

      数据库连接池满问题:

     针对该问题,我们把所有的数据操作尽可能使用一个连接,避免并行打开过多连接,尽量使得一个enb处理过程中只使用一个数据库连接,同一个enb处理过程中,尽量串行处理。

     通过加大并行处理enb数量,来提高cpu,memory,io利用率。

 

转载于:https://www.cnblogs.com/yy3b2007com/p/5699829.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/418251.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习(2028)vue之电商管理系统电商系统之展示物流进度

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

SQL-Server使用点滴(一-数据对象篇)

前言 SQL的语法比较简单,学起来相比界面UI控制要简单得多,但是SQL在企业级应用中又是如此的重要,以至于很多开发人员都把重点放在SQL上。 SQL并没…

前端学习(2029)vue之电商管理系统电商系统之timeline组件

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

js时间基本操作

js 获取前一天的时 var todaynew Date(); var yesterday_millisecondstoday.getTime()-1000*60*60*24; var yesterdaynew Date();yesterday.setTime(yesterday_milliseconds);var strYearyesterday.getFullYear(); var strDayyesterday.getDate(); var strMonthyesterday.get…

前端学习(2033)vue之电商管理系统电商系统之通过路由加载报表

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

线性表操作的基本应用

#include"stdio.h" #include"stdlib.h" #define MAXSIZE 10 #define OK 1 #define YES 1 #define NO 0 struct Sqlist { int a[MAXSIZE]; int length; }; void listlength(Sqlist *list) { printf("线性表得长度:%d\n",list-&…

军训分批(codevs 2751)

题目描述 Description某学校即将开展军训。共有N个班级。 前M个优秀班级为了保持学习优势,必须和3位任课老师带的班级同一批。 问共有几批? 输入描述 Input DescriptionN,M 老师教的其他班级(M行) 输出描述 Output Description批次…

前端学习(2034)vue之电商管理系统电商系统之绘制图表

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

2021-08-08

Java中对于方法和字段一共有四种访问权限;分别为: (1)private (2)public (3)protected (4)默认(包访问权限) 一、private 类内部能访问…

2021-08-15

1、什么是多态性?什么是虚拟方法调用? 对象的多态性: Person p new xx(); 此时new的对象可以为多种形态,但需要是person类的子类。即父类的引用指向子类的对象。 虚拟方法调用: p.eat(); 该语句在编译时会认为时调用Person类中的…

前端学习(2035)vue之电商管理系统电商系统之形成折线图

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

python中在同一个位置输出数据

import sys, timedef print_data():for i in range(5):sys.stdout.write(str(i) \r)time.sleep(1)sys.stdout.flush()if __name__ __main__:print_data() 转载于:https://www.cnblogs.com/LarryGen/p/5713000.html

context:component-scan扫描使用的use-default-filters

如下方式可以成功扫描到Controller注解的Bean&#xff0c;不会扫描Service/Repository的Bean。 <context:component-scan base-package"xx.xx.xx.controller"> <context:include-filter type"annotation" expression"org.springframework.…

2021-08-17

三位运算符 最后的连个表达式都需要为同一个类型 所以Integer会自动提升类型为Double ; 所以o1 1.0; 这种写法就不需要统一类型 第一个&#xff1a;两个i,j为两个地址&#xff1b; 第二个&#xff1a;和第三个同。 第三个&#xff1a; 再Integer类中 有静态生命一个数组存…

Redmine性能测试

Redmine部署使用有一个月了&#xff0c;反馈有时很慢。 1、查看log发现&#xff0c;事务更新后要发送Email&#xff0c;如果连接邮件服务器有问题&#xff0c;会等待超时&#xff0c;导致很慢。 2、解决发送邮件问题后&#xff0c;仍然有时慢&#xff0c;ActiveRecord显示要几百…