一种关系数据库数据持久化优化和排队方法技术

技术编号:18350565 阅读:38 留言:0更新日期:2018-07-01 23:52
本发明专利技术涉及通信技术领域,特别是一种关系数据库数据持久化优化和排队方法,包括如下步骤:步骤1:将数据写入多个临时表并存储到服务器中;步骤2:将临时表中的数据写入到服务器的关系库中所对应的表格中;其中,临时表与服务器中的表格一一对应,在数据写入到关系库中的表格过程中,关系库中所对应的表格被锁定禁止其他用户访问或其他临时表的数据写入。本发明专利技术的目的在于提供一种降低或消除死锁、降低数据处理量、提高数据处理速度的关系数据库数据持久化优化和排队方法。

【技术实现步骤摘要】
一种关系数据库数据持久化优化和排队方法
本专利技术涉及通信
,特别是一种关系数据库数据持久化优化和排队方法。
技术介绍
目前企业使用的数据库主流都为关系数据库,关系数据库功能强大,可以支持多用户操作,关系数据库最大特点就是允许表和表之间存在关系,企业使用通常会同时把数据持久化在多个有关系表中,如果某个表发生失败时,为了数据一致行,需要本次持久化操作全部取消。为了实现回滚功能,关系数据库引入了事务,事务会对持久化过程中操作过的表进行加锁(别人不可读写),在本次持久化操作完成确认没有错误后,才进行解锁,反之就对数据进行回滚后,再进行解锁。MSSQL是关系数据库中一个非常常用的数据库,如图1,在关系库中为两个表,表1和表2,每个表有三条,共六条数据,要把六条数据持久化在数据库,按传统方式需要对应六次数据指令操作,指令记录为,Insertinto表1(FileName1,FileName2,FileName3)Values('Table1Row1FN1','Table1Row1FN2','Table1Row1FN3')Insertinto表1(FileName1,FileName2,FileName3)Values('Table1Row2FN1','Table1Row2FN2','Table1Row2FN3')Insertinto表1(FileName1,FileName2,FileName3)Values('Table1Row3FN1','Table1Row3FN2','Table1Row3FN3')Insertinto表2(FileName1,FileName2,FileName3)Values('Table2Row1FN1','Table2Row1FN2','Table2Row1FN3')Insertinto表2(FileName1,FileName2,FileName3)Values('Table2Row2FN1','Table2Row2FN2','Table2Row2FN3')Insertinto表2(FileName1,FileName2,FileName3)Values('Table2Row3FN1','Table2Row3FN2','Table2Row3FN3')有六条指令需要对数据库六次极为耗资源IO操作,所以会造成对表1和表2进行长时间的锁。再者,如果提交第一条指令后,网速变慢,下条指令提交受阻变慢,更增加了事务完成时间,极为影响其他用户对这两个表的操作。在这种情况下,极有可能存在传统灾难模式,假如上述六条数据分别由甲和乙同时进行操作,他们分别对应的操作记录为,甲:Insertinto表1(FileName1,FileName2,FileName3)Values('Table1Row1FN1','Table1Row1FN2','Table1Row1FN3')Insertinto表2(FileName1,FileName2,FileName3)Values('Table2Row1FN1','Table2Row1FN2','Table2Row1FN3')Insertinto表1(FileName1,FileName2,FileName3)Values('Table1Row2FN1','Table1Row2FN2','Table1Row2FN3')乙:Insertinto表2(FileName1,FileName2,FileName3)Values('Table2Row2FN1','Table2Row2FN2','Table2Row2FN3')Insertinto表1(FileName1,FileName2,FileName3)Values('Table1Row3FN1','Table1Row3FN2','Table1Row3FN3')Insertinto表2(FileName1,FileName2,FileName3)Values('Table2Row3FN1','Table2Row3FN2','Table2Row3FN3')按照甲乙操作顺序:第一步,甲先操作表1并对表1加锁,乙先操作表2并对表2加锁。第二步,甲需要操作表2,但被乙在第一步已对表2加锁,造成甲无法操作只能等待,乙需要操作表1,但被甲在第一步已对表1加锁,乙也无法操作,也只能等待,就这样甲乙相互锁死对方,造成死锁,最终只有一方超时失败解锁,另一方才能继续,或者双方都超时失败。
技术实现思路
本专利技术的目的在于提供一种降低或消除死锁、降低数据处理量、提高数据处理速度的关系数据库数据持久化优化和排队方法。本专利技术的具体的技术方案为:一种关系数据库数据持久化优化和排队方法,包括如下步骤:步骤1:将数据写入多个临时表并存储到服务器中;步骤2:将临时表中的数据写入到服务器的关系库中所对应的表格中;其中,临时表与服务器中的表格一一对应,在数据写入到关系库中的表格过程中,关系库中所对应的表格被锁定禁止其他用户访问或其他临时表的数据写入。在上述的关系数据库数据持久化优化和排队方法中,当多个用户同时要求对关系库中的表格进行数据写入时,多个用户同时进行步骤1,并且根据用户的请求顺序进行依次步骤2。在上述的关系数据库数据持久化优化和排队方法中,所述的步骤1中临时表中包含了其对应的关系库中的表格的信息;所述的多个用户的临时表中记载的对应的关系库中的表格的信息至少部分相同。与现有技术相比,本专利技术的有益效果在于:本专利技术的方案由于采用了临时表,可以统一由临时表写入到关系库中,降低了锁死的概率,提高数据处理速度。附图说明图1是实施例1的流程方框图。具体实施方式下面结合具体实施方式,对本专利技术的技术方案作进一步的详细说明,但不构成对本专利技术的任何限制。实施例1一种关系数据库数据持久化优化和排队方法,包括如下步骤:步骤1:将数据写入多个临时表并存储到服务器中;步骤2:将临时表中的数据写入到服务器的关系库中所对应的表格中;其中,临时表与服务器中的表格一一对应,在数据写入到关系库中的表格过程中,关系库中所对应的表格被锁定禁止其他用户访问或其他临时表的数据写入。通过上述方法,可以避免用户同时直接调用同一关系库中的表格造成的长时间锁死的情况,不影响用户的数据写入,用户不会直接感觉数据处理速度的明显降低。优选地,当多个用户同时要求对关系库中的表格进行数据写入时,多个用户同时进行步骤1,并且根据用户的请求顺序进行依次步骤2,所述的步骤1中临时表中包含了其对应的关系库中的表格的信息;所述的多个用户的临时表中记载的对应的关系库中的表格的信息至少部分相同。为了更为具体的解释本实施例的方案,本专利技术的具体应用举例如下:用户首先在数据库建立两个独享的临时表##temp1和##temp2,先分别把表1和表2数据缓存在临时表:Insertinto##temp1(FileName1,FileName2,FileName3)Values('Table1Row1FN1','Table1Row1FN2','Table1Row1FN3')Insertinto##temp1(FileName1,FileName2,FileName3)Values('Table1Row2FN1','Table1Row本文档来自技高网
...
一种关系数据库数据持久化优化和排队方法

【技术保护点】
1.一种关系数据库数据持久化优化和排队方法,其特征在于,包括如下步骤:步骤1:将数据写入多个临时表并存储到服务器中;步骤2:将临时表中的数据写入到服务器的关系库中所对应的表格中;其中,临时表与服务器中的表格一一对应,在数据写入到关系库中的表格过程中,关系库中所对应的表格被锁定禁止其他用户访问或其他临时表的数据写入。

【技术特征摘要】
1.一种关系数据库数据持久化优化和排队方法,其特征在于,包括如下步骤:步骤1:将数据写入多个临时表并存储到服务器中;步骤2:将临时表中的数据写入到服务器的关系库中所对应的表格中;其中,临时表与服务器中的表格一一对应,在数据写入到关系库中的表格过程中,关系库中所对应的表格被锁定禁止其他用户访问或其他临时表的数据写入。2.根据权利要求1所述的关系数据库数...

【专利技术属性】
技术研发人员:吴小玲林民豪
申请(专利权)人:广州中元软件有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1