数据访问方法、装置、设备和存储介质制造方法及图纸

技术编号:22658754 阅读:42 留言:0更新日期:2019-11-28 03:22
本发明专利技术实施例公开了一种数据访问方法、装置、设备和存储介质。该方法包括:获取到数据访问请求时,准备全局缓存字典链;根据所述数据访问请求和所述全局缓存字典链确定缓存字典节点副本;根据所述缓存字典节点副本对目标数据进行访问。本发明专利技术实施例的技术方案,通过字典节点副本的使用,解决了数据库访问瓶颈的问题,可提高数据访问效率,降低了数据字典的维护难度,可减少数据库缓存的占用空间。

Data access methods, devices, devices, and storage media

The embodiment of the invention discloses a data access method, device, device and storage medium. The method includes: preparing the global cache dictionary chain when obtaining the data access request; determining the copy of the cache dictionary node according to the data access request and the global cache dictionary chain; and accessing the target data according to the copy of the cache dictionary node. The technical scheme of the embodiment of the invention solves the problem of database access bottleneck through the use of dictionary node copy, improves the data access efficiency, reduces the maintenance difficulty of the data dictionary, and reduces the occupation space of the database cache.

【技术实现步骤摘要】
数据访问方法、装置、设备和存储介质
本专利技术实施例涉及计算机应用
,尤其涉及一种数据访问方法、装置、设备和存储介质。
技术介绍
在数据库中数据字典相当于一种用户可以用于访问记录数据库和应用元数据的目录,可以是对数据库内表信息的物理与逻辑的说明。数据库中往往根据需要生成数据字典,供不同的并发请求访问。现有技术中,数据库中的数据字典仅有一份,当字典对象被频繁修改时,数据字典成为资源争夺的热点,每当数据字典被访问就需要引用对应内存,当数据字典需要删除时,还需要对引用该数据字典的线程进行检查,导致不能随意淘汰数据字典,数据字典成为数据库中数据访问的瓶颈,降低了数据访问速度。
技术实现思路
本专利技术提供一种数据访问方法、装置、设备和存储介质,以实现降低数据字典维护难度,数据库数据的高效访问。第一方面,本专利技术实施例提供了一种数据访问方法,该方法包括:获取到数据访问请求时,准备全局缓存字典链;根据所述数据访问请求和所述全局缓存字典链确定缓存字典节点副本;根据所述缓存字典节点副本对目标数据进行访问。第二方面,本专利技术实施例提供了一种数据访问装置,该装置包括:初始模块,用于获取到数据访问请求时,准备全局缓存字典链;副本模块,用于根据所述数据访问请求和所述全局缓存字典链确定缓存字典节点副本;访问模块,用于根据所述缓存字典节点副本对目标数据进行访问。第三方面,本专利技术实施例还提供了一种设备,该设备包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本专利技术实施例中任一所述的数据访问方法。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本专利技术实施例中任一所述的数据访问方法。本专利技术实施例的技术方案,通过获取到数据访问请求时,准备全局缓存字典链,根据数据访问请求和全局缓存字典链确定缓存字典节点副本,根据缓存字典节点副本对目标数据进行访问,解决了数据库访问过程的瓶颈,可提高数据访问速度,简化数据字典的维护难度,可优化数据库存储空间。附图说明图1是本专利技术实施例一提供的数据访问方法的流程图;图2是本专利技术实施例二提供的数据访问方法的流程图;图3是本专利技术实施例二提供的数据访问方法中全局缓存字典链的示例图;图4是本专利技术实施例二提供的数据访问方法中字典节点副本的示例图;图5是本专利技术实施例三提供的数据访问装置的结构示意图;图6是本专利技术实施例四提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构,此外,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。实施例一图1是本专利技术实施例一提供的数据访问方法的流程图,本实施例可适用于访问数据库中数据的情况,该方法可以由数据访问装置来执行,该装置可以采用硬件和/或软件的方式来实现,参见图1,本专利技术实施例的方法包括:步骤101、获取到数据访问请求时,准备全局缓存字典链。其中,数据访问请求可以是请求访问数据库中存储数据的请求,具体可以是数据操纵语言的增删改查请求和数据库定义语言的操作请求,全局缓存字典链,可以是数据库全局缓存中存储的数据字典,数据字典的形式具体可以是字典链,全局缓存字典链的节点可以为各字典对象对应的数据字典,全局缓存字典链中可以存储有各字典对象的属性信息。具体的,在获取到对数据库中数据请求访问的结构化查询语言(StructuredQueryLanguage,SQL)时,可以在全局缓存中对字典链进行准备,例如,可以为全局缓存字典链在全局缓存中分配好缓存空间,当获取到数据操作语言或数据库定义语言等类型的数据请求访问时,可以在全局缓存字典链中添加新的节点或者将已有节点准备好。步骤102、根据所述数据访问请求和所述全局缓存字典链确定缓存字典节点副本。其中,缓存字典节点副本可以是数据访问请求中待访问数据对应的数据字典的副本,每个数据访问请求可以存在对应的缓存字典节点副本,例如,系统中存在3个SQL语句的查询线程,可以在每个SQL语句的查询线程的缓存中生成对应的缓存字典节点副本,可以理解的是,即使,两个数据访问请求访问的数据相同,也可以为两个数据访问请求分别建立对应的缓存字典节点副本,缓存字典节点副本之间可以是相互独立的,即使字典对象之间存在关联,对应的缓存字典节点副本是相互独立,字典对象可以包括数据表、视图和索引等内容。在本专利技术实施例中,可以根据数据访问请求在全局缓存字典链中查找对应的字典节点,可以根据查找到的字典节点在对应各数据访问请求的局部缓存中建立缓存字典节点副本。例如,可以SQL语言查询线程请求访问全局缓存字典链中字典节点A时,可以根据全局缓存中的预设的hash表对字典节点A根据编号ID或者名称Name在全局缓存字典链中进行查找,在查找到字典节点A后,可以将字典节点A存储到对应查询线程的局部缓存中以生成缓存字典节点副本。缓存字典节点副本的使用,使得全局缓存字典链的信息发生变化时可以随时删除,不必等待引用线程结束任务,解决数据访问的瓶颈问题,每个线程不必等待其他线程完成唯一数据字典的访问,可提升数据库中数据访问速度。步骤103、根据所述缓存字典节点副本对目标数据进行访问。其中,目标数据可以是数据访问请求待访问的数据,缓存字典节点副本中可以存储有目标数据的相关信息,可以包括目标数据所处字典对象的存储地址。具体的,可以根据缓存字典节点副本中存储的信息对目标数据进行访问实现数据访问请求。例如,缓存字典节点副本中可以存储有目标数据存储位置以及对应数据表的列信息,可以根据存储位置及列信息对数据库硬盘或者内存中的数据进行读取,可以对读取到的数据进行增加、更改、删除和查询,还可以根据数据库定义语言对目标数据进行更改,使得数据库中的数据表结构、数据类型以及字典对象之间的关系发生更改。本专利技术实施例的技术方案,通过获取到数据访问请求时,对全局缓存字典链进行准备,根据数据访问请求和全局缓存字典链确定缓存字典节点副本,根据缓存字典节点副本对目标数据进行访问,缓存字典副本的使用,解决了数据中数据字典成为数据访问瓶颈的问题,提高了数据访问速度,可降低数据字典的维护难度。实施例二图2是本专利技术实施例二提供的数据访问方法的流程图,本专利技术实施例的技术方案是以上述专利技术实施例为基础进行的具体化,参见图2,本专利技术实施例的提供的方法包括:步骤201、提取数据访问请求中的待访问字典对象。其中,数据访问请求可以是访问目标数据的请求,数据访问请求中可以包括待访问字典对象,待访问字典对象可以是数据本文档来自技高网...

【技术保护点】
1.一种数据访问方法,其特征在于,包括:/n获取到数据访问请求时,准备全局缓存字典链;/n根据所述数据访问请求和所述全局缓存字典链确定缓存字典节点副本;/n根据所述缓存字典节点副本对目标数据进行访问。/n

【技术特征摘要】
1.一种数据访问方法,其特征在于,包括:
获取到数据访问请求时,准备全局缓存字典链;
根据所述数据访问请求和所述全局缓存字典链确定缓存字典节点副本;
根据所述缓存字典节点副本对目标数据进行访问。


2.根据权利要求1所述的方法,其特征在于,所述获取到数据访问请求时,准备全局缓存字典链,包括:
提取数据访问请求中的待访问字典对象;
若全局缓存字典链中存在对应所述待访问字典对象的字典节点,则所述全局缓存字典链完成准备;
若所述全局缓存字典链中未存在对应所述待访问字典对象的字典节点,则根据所述待访问字典对象准备全局缓存字典链。


3.根据权利要求2所述的方法,其特征在于,所述根据所述待访问字典对象准备全局缓存字典链,包括:
根据数据库系统表获取所述待访问字典对象的属性信息;
将所述属性信息以字节流形式存储到字典节点,并将所述字典节点添加到所述全局缓存字典链。


4.根据权利要求3所述的方法,其特征在于,在所述将所述属性信息以字节流形式存储到字典节点,并将所述字典节点添加到所述全局缓存字典链之时,还包括:
全局缓存字典链的缓存空间达到预设空间阈值,且监测到所述全局缓存字典链中添加新的字典节点时,删除所述全局缓存字典链中被访问时间早于其他字典节点,且被访问次数少于其他字典节点的待删除节点。


5.根据权利要求1所述的方法,其特征在于,所述根据所述数据访问请求和所述全局缓存字典链确定缓存字典节点副本,包括:
根据所述数据访问请求中的待访问字典对象在全局缓存字典链中查找对应的字典节点;
根据所述字典节点生成对应的字典对象信息结构;
将所述字典节点中字节流形式的属性信息存储到所述字典对象信息结构以生成缓存字典节点副本。


6.根据权利要求1所述的方法,其特征在于,所述根据所述缓存字典节点副本对目标数据进行访问,包括:
若全局缓存字典链的版本号与所述数据访问请求的会话版本号不一致时,对所述缓存字典节点副本进行有效性验证;
若所述全局缓存字典链的版本号与所述数据访问请求的会话版本号一致或所述缓存字典节...

【专利技术属性】
技术研发人员:刘静郭琰韩朱忠
申请(专利权)人:上海达梦数据库有限公司
类型:发明
国别省市:上海;31

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

1