System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据库,特别是涉及一种数据库中大对象的更改方法及相关产品。
技术介绍
1、大对象(large object)是数据库中的一类特殊的数据类型,主要有二进制大对象(binary large object,简称blob)和大文本对象(character large object/nationalcharacter large object,简称clob/nclob)两大类。blob用来存储二进制大型对象数据,例如图像、音频文件、视频或其他非文本格式的数据;clob和nclob则用于存储大量的字符数据,适合于存放长文本如文章、报告或者xml文档等。这类数据单个数据项的体量上限很高,最高可达gb级甚至tb级,同时体量差异又很大,数据量小的也可以小到几个字节,甚至为空。
2、传统的数据库管理系统在处理大对象类型数据时,如果从中间插入或删除数据,就需要重写插入/删除点后的所有存储切片,这会耗费大量的数据库资源,并且会影响数据库的正常运行。
技术实现思路
1、鉴于上述问题,本专利技术提出了一种克服上述问题或者至少部分地解决上述问题的数据库中大对象的更改方法及相关产品。
2、本专利技术的一个目的是优化数据库大对象的修改方式。
3、本专利技术一个进一步的目的是降低数据库资源的消耗。
4、特别地,本专利技术提供了一种数据库中大对象的更改方法,包括:
5、获取更改指令,更改指令用于更改大对象中的数据;
6、根据更改指令确
7、在数据基表中获取目标大对象对应的控制块,数据基表包含至少一列大对象列,控制块为大对象列中记录的数据项;
8、通过控制块获取目标大对象的目标数据;
9、根据更改指令在目标数据中确定更改位置,并进行更改操作。
10、可选地,通过控制块获取目标大对象的目标数据的步骤包括:
11、判断控制块是行内存储还是行外存储;
12、在控制块为行外存储的情况下,在控制块中获取目标大对象对应的对象固定唯一标识;
13、根据对象固定唯一标识在对象与存储切片表中查找目标大对象的首个存储切片,对象与存储切片表用于存储大对象存储切片的描述信息及数据;
14、通过首个存储切片确定需要更改的目标存储切片;
15、根据更改指令对目标存储切片进行更改。
16、可选地,通过首个存储切片确定需要更改的目标存储切片的步骤包括:
17、获取首个存储切片中记录的存储切片索引块,存储切片索引块用于记录目标大对象对应的所有存储切片的索引数据;
18、根据更改指令在存储切片索引块中查找目标存储切片的切片固定唯一标识;
19、根据目标存储切片的切片固定唯一标识获取目标存储切片的数据。
20、可选地,存储切片索引块包括存储切片长度数组和存储切片标识数组,存储切片长度数组用于按顺序存储大对象对应的所有存储切片的长度,存储切片标识数组用于按顺序存储大对象对应的所有存储切片的固定唯一标识;
21、根据更改指令在存储切片索引块中查找目标存储切片的切片固定唯一标识的步骤包括:根据更改指令确定更改起始位置以及更改长度;根据更改起始位置以及更改长度在存储切片长度数组中确定目标存储切片;在存储切片标识数组中确定目标存储切片对应的切片固定唯一标识。
22、可选地,根据目标存储切片的切片固定唯一标识获取目标存储切片的数据的步骤包括:
23、根据目标存储切片的切片固定唯一标识在对象与存储切片表中查找目标存储切片对应的目标数据行;
24、在目标数据行中存储切片索引块对应的列获取目标存储切片的数据。
25、可选地,根据更改指令对目标存储切片进行更改的步骤之后还包括:
26、根据更改后的目标存储切片更新存储切片索引块中的内容。
27、可选地,判断控制块是行内存储还是行外存储的步骤还包括:
28、在控制块为行内存储的情况下,在控制块中获取目标数据;
29、根据更改指令对目标数据进行更改。
30、可选地,根据更改指令对目标数据进行更改的步骤之后还包括:
31、判断更改后的目标数据的数据大小是否超出预设范围;
32、若是,则将控制块修改为行外存储。
33、根据本专利技术的又一个方面,还提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现上述任一种的数据库中大对象的更改方法的步骤。
34、根据本专利技术的再一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种的数据库中大对象的更改方法的步骤。
35、本专利技术的数据库中大对象的更改方法,获取更改指令,更改指令用于更改大对象中的数据;根据更改指令确定目标大对象;在数据基表中获取目标大对象对应的控制块,数据基表包含至少一列大对象列,控制块为大对象列中记录的数据项;通过控制块获取目标大对象的目标数据;根据更改指令在目标数据中确定更改位置,并进行更改操作。通过此方法能够根据更改指令直接找到具体的存储切片进行修改,从而不影响其他存储切片的正常使用,避免大对象数据的批量移动,降低数据库资源的消耗。
36、根据下文结合附图对本专利技术具体实施例的详细描述,本领域技术人员将会更加明了本专利技术的上述以及其他目的、优点和特征。
本文档来自技高网...【技术保护点】
1.一种数据库中大对象的更改方法,包括:
2.根据权利要求1所述的数据库中大对象的更改方法,其中,
3.根据权利要求2所述的数据库中大对象的更改方法,其中,
4.根据权利要求3所述的数据库中大对象的更改方法,其中,
5.根据权利要求4所述的数据库中大对象的更改方法,其中,
6.根据权利要求4所述的数据库中大对象的更改方法,其中,
7.根据权利要求2所述的数据库中大对象的更改方法,其中,
8.根据权利要求7所述的数据库中大对象的更改方法,其中,
9.一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现权利要求1至8中任一项所述的数据库中大对象的更改方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据权利要求1至8任一项所述的数据库中大对象的更改方法的步骤。
【技术特征摘要】
1.一种数据库中大对象的更改方法,包括:
2.根据权利要求1所述的数据库中大对象的更改方法,其中,
3.根据权利要求2所述的数据库中大对象的更改方法,其中,
4.根据权利要求3所述的数据库中大对象的更改方法,其中,
5.根据权利要求4所述的数据库中大对象的更改方法,其中,
6.根据权利要求4所述的数据库中大对象的更改方法,其中,
7.根据权利要求2所述的数据库中大对象的更...
【专利技术属性】
技术研发人员:王伟,王建华,
申请(专利权)人:中电科金仓北京科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。