CN111078670B - 数据库执行计划清除方法、装置、设备和存储介质 - Google Patents
数据库执行计划清除方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN111078670B CN111078670B CN201911319980.0A CN201911319980A CN111078670B CN 111078670 B CN111078670 B CN 111078670B CN 201911319980 A CN201911319980 A CN 201911319980A CN 111078670 B CN111078670 B CN 111078670B
- Authority
- CN
- China
- Prior art keywords
- execution plan
- failure
- execution
- referenced
- relation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据库执行计划清除方法、装置、设备和存储介质,其中,该方法包括:获取预先设置失效的各失效执行计划,其中,各所述失效执行计划包括引用计数和失效引用计数;根据各所述引用计数和所述失效引用计数确定所述失效执行计划的被引用关系;根据所述被引用关系清除各所述失效执行计划。本发明实施例的技术方案,通过执行计划的引用关系实现了相互引用的执行计划的清除,清除了无需执行计划的缓存空间,降低了数据库的缓存占用率,可提升数据库系统的运行效率。
Description
技术领域
本发明实施例涉及数据库管理技术领域,尤其涉及一种数据库执行计划清除方法、装置、设备和存储介质。
背景技术
在当今生活中数据库已经成为必不可缺的数据处理工具,数据库中的执行计划是数据库中必不可少的部分,提高了数据库的处理过程,但是随着时间的发展,数据库中部分执行计划不被经常使用,导致了存储空间的浪费,当前业内需要定期对执行计划进行清除,以保证数据库系统的高效运行。
现有数据库执行计划的清除通过数据库系统为每个执行计划分配一个引用计数,来监测执行计划是否被引用,初始引用计数为0。每当执行计划被引用的时候,其对应的引用计数加1。只有引用计数为0时,表示执行计划没有被引用,该执行计划才可以被清除。图1是数据库中执行计划相互引用的示例图,参见图1,执行计划A和B相互引用,形成闭环,无法利用常规方法清除执行计划,造成数据库的缓存被占用,降低了数据库的运行效率。
发明内容
本发明提供一种数据库执行计划清除方法、装置、设备和存储介质,以实现相互引用的执行计划的清除,降低数据库缓存空间占用率,提高数据库的运行效率。
第一方面,本发明实施例提供了一种数据库执行计划清除方法,该方法包括:
获取预先设置失效的各失效执行计划,其中,各所述失效执行计划包括引用计数和失效引用计数;
根据各所述引用计数和所述失效引用计数确定所述失效执行计划的被引用关系;
根据所述被引用关系清除各所述失效执行计划。
第二方面,本发明实施例提供了一种数据库执行计划清除装置,该装置包括:
失效获取模块,用于获取预先设置失效的各失效执行计划,其中,各所述失效执行计划包括引用计数和失效引用计数;
引用确定模块,用于根据各所述引用计数和所述失效引用计数确定所述失效执行计划的被引用关系;
计划清除模块,用于计划清除模块,用于根据所述被引用关系清除各所述失效执行计划。
第三方面,本发明实施例提供了一种设备,该设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例中任一所述的数据库执行计划清除方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的数据库执行计划清除方法。
本发明实施例的技术方案,通过获取预先设置失效的各失效执行计划,通过失效执行计划的引用计数和失效引用计数确定失效执行计划的被引用关系,根据被引用关系清除失效执行计划,实现了相互引用的执行计划的清除,减少了数据库缓存空间的占用率,提高了数据库的运行效率。
附图说明
图1是数据库中执行计划相互引用的示例图;
图2是本发明实施例一提供的一种数据库执行计划清除方法的步骤流程图;
图3是本发明实施例一提供的一种失效引用计数的示例图;
图4是本发明实施例一提供的一种失效执行计划的清除示例图;
图5是本发明实施例二提供的一种数据库执行计划清除方法的步骤流程图;
图6是本发明实施例二提供的一种执行计划缓存空间的示例图;
图7a是本发明实施例二提供的一种相互引用执行计划失效的示例图;
图7b是本发明实施例二提供的一种引用计数和失效引用计数关系示例图;
图8是本发明实施例三提供的一种数据库执行计划清除装置的结构示例图;
图9是本发明实施例四提供的一种设备的结构示例图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构,此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
图2是本发明实施例一提供的一种数据库执行计划清除方法的步骤流程图,本实施例可适用于清除数据库中无效执行计划的情况,该方法可以由数据库执行计划清除装置来执行,该装置可以采用硬件和/或软件的方式来实现,参见图2,本发明实施例的数据库执行计划清除方法包括:
步骤101、获取预先设置失效的各失效执行计划,其中,各所述失效执行计划包括引用计数和失效引用计数。
其中,失效可以是数据库中执行计划涉及的字典对象被删除或者定义被修改后执行计划无法正常使用的情况;失效执行计划可以是数据库中无法正常工作的执行计划,失效执行计划对应的字典对象发生改变;引用计数和失效引用计数可以是数据库执行计划的属性信息,引用计数可以表征引用该执行计划的执行计划的个数,失效引用计数可以是引用该执行计划的执行计划为失效执行计划的个数,图3是本发明实施例一提供的一种失效引用计数的示例图,参见图3,执行计划包括引用计数N_FIX和失效引用计数N_DIS_FIX,执行计划初始状态为存在4个引用执行计划的父执行计划,当引用执行计划的父执行计划失效时,失效引用计数N_DIS_FIX的计数变为2,可以表示2个父执行计划无效,失效引用计数N_DIS_FIX的计数变为4,可以表明执行计划的4个父执行计划全部无效。
具体的,失效执行计划可以是被标记为失效的执行计划,可以将失效执行计划存储到固定存储区域,当需要对失效执行计划进行清除时,可以在固定存储区域内获取各失效执行计划,例如,可以将失效执行计划存储到失效链表中,可以查询失效链表获取到失效执行计划。
步骤102、根据各所述引用计数和所述失效引用计数确定所述失效执行计划的被引用关系。
其中,被引用关系可以是失效执行计划被其他执行计划引用的关系,可以包括未被其他执行计划引用、被其他执行计划引用且其他执行计划为失效执行计划、被其他执行计划引用且其他执行计划为有效执行计划,在清除失效执行计划时必须确保失效执行计划未被有效执行计划引用,因此可以确定失效执行计划的被引用关系。
在本发明实施例中,可以针对各失效执行计划获取到对应的引用计数和失效引用计数,通过引用计数和失效引用计数的大小关系,确定出失效执行计划的被引用关系,例如,1)若引用计数为0,则对应的失效执行计划未被其他执行计划引用;2)若引用计数大于0,且引用计数大于失效引用计数,则对应的失效执行计划被其他有效执行计划引用;3)若引用计数大于0,且引用计数等于失效引用计数,且被失效的间接父执行计划引用,则说明对应的失效执行计划未被其他有效的执行计划引用;4)若引用计数大于0,且引用计数等于失效引用计数,且被有效的间接父执行计划引用,则说明对应的失效执行计划被其他有效的执行计划引用。
步骤103、根据所述被引用关系清除各所述失效执行计划。
其中,清除可以是将失效执行计划从数据库中清除的操作,可以包括将失效执行计划对应的缓存空间清除和将失效执行计划的属性信息进行初始化,示例的,清除失效执行计划可以包括先将失效执行计划的属性信息初始化,可以在下次调度时,将失效执行计划的缓存空间清除。
具体的,可以获取各失效执行计划的被引用关系,可以根据被引用关系的情况清除失效执行计划,当失效执行计划未被引用时,可以将该失效执行计划清除,当引用该失效执行计划的执行计划均为失效执行计划时,可以将该失效执行计划清除,其中,引用该失效执行计划可以包括直接引用该失效执行计划和间接引用该失效执行计划,当引用该失效执行计划的执行计划存在有效执行计划时,可以等待引用该失效执行计划的有效执行计划失效时,再清除该失效执行计划。
示例性的,图4是本发明实施例一提供的一种失效执行计划的清除示例图;参见图4,示例中包括失效执行计划11、失效执行计划12和有效执行计划13,失效执行计划11、失效执行计划12和有效执行计划13之间的引用关系如图4所示,可以先将失效执行计划11和失效执行计划12加入到失效链表。其中,失效执行计划11的引用计数N_FIX等于失效引用计数N_DIS_FIX,可以将失效执行计划11加入待检查区域,其中,待检查区域可以标识失效执行计划11的被引用关系标记为失效引用关系。可以对待检查区域中的失效执行计划11进行检查,确定引用该失效执行计划的执行计划是否均存在于待检查区域或者待清除区域,其中,待清除区域中的失效执行计划的被引用关系可以为无引用关系,由于引用失效执行计划11的失效执行计划12还未进入待清除区域或者待检查区域,失效执行计划11不可以加入待清除区域进行删除。
本发明实施例的技术方案,通过获取失效执行计划,根据失效执行计划的引用计数和失效引用计数确定对应的被引用关系,根据被引用关系清除各所述失效执行计划,实现了相互引用的执行计划的清除,降低了数据库缓存空间的占用率,提高了数据库系统的运行效率。
实施例二
图5是本发明实施例二提供的一种数据库执行计划清除方法的步骤流程图,本发明实施例是以上述实施例为基础的具体化,通过不同的被引用关系清除对应的失效执行计划,参见图5,本发明实施例提供的数据库执行计划清除方法包括:
步骤201、根据失效信息将目标执行计划存储到失效链表作为失效执行计划。
其中,失效信息可以是数据库删除字典对象或者更新字典对象定义的信息,可以包括与执行计划的关联关系;失效链表可以是存储失效执行计划的数据链表,具体可以是存储有失效执行计划标识号的数据链表。
具体的,可以根据失效信息查找执行计划可以将查找到的执行计划作为目标执行计划,可以将目标执行计划的标识号存储到失效链表中,可以将标识号存储在失效链表中的目标执行计划作为失效执行计划。
步骤202、在所述目标执行计划对应的缓存空间设置禁用标识;更新所述目标执行计划引用的子执行计划的失效引用计数。
其中,缓存空间可以执行计划在数据库中对应的存储空间,缓存空间内可以保持执行计划的相关信息,图6是本发明实施例二提供的一种执行计划缓存空间的示例图,参见图6,执行计划对应的缓存空间object01_info可以包括包括总计划npln、逻辑计划描述、物理计划描述、分析信息和缓存项,总计划npln可以包括引用该执行计划的父执行计划的object01_info_list,禁用标识可以具体为文字、字母、数字和/或特殊符号组成的字符串,可以表征对应的目标执行计划无法被正常使用,保证数据库的正常运行。子执行计划可以引用目标执行计划,子执行计划中也可以包括失效引用计数和引用计数。
本发明实施例中,可以根据目标执行计划的标识号查找对应的存储空间,可以在对应的存储空间内部设置禁用标识,例如,可以在目标执行计划对应的缓存空间内的缓存项中标记禁用标识。示例性的,两个相互引用的执行计划object01和object02。执行计划object01和object02的引用计数可以分别为1,若object01为失效执行计划时,可以将Object01的属性信息object01_info设置失效,并加到失效链表。还可以将object01的object01_info中的缓存项设置禁用标记,防止Object01被调用。当目标执行计划被设置禁用标识后,该目标执行计划可以处于失效状态,则该目标执行计划的子执行计划的引用关系发生失效,可以将该子执行计划的失效引用计数根据目标执行计划失效的个数进行更新,例如,若子执行计划引用的目标执行计划失效后,可以将对应的失效引用计数加1。
步骤203、定时获取失效链表内存储的各失效执行计划。
具体的,可以每隔固定时间获取失效链表内存储的失效执行计划的标识号,可以根据标识号获取到对应的失效执行计划,进一步的,还可在获取到失效信息时获取失效链表内的失效执行计划,也就是当数据库更新字典对象定义或者删除字典对象时获取失效链表内的失效执行计划。
步骤204、获取各所述失效执行计划的引用计数和失效引用计数。
具体的,可以针对各失效执行计划对应的缓存空间内存储的引用计数和失效引用计数。
步骤205、当失效执行计划的引用计数为0时,确定所述失效执行计划的被引用关系为无引用关系。
具体的,当失效执行计划的引用计数为0时,可以确定该失效执行计划未被其他执行计划引用,因此可以直接对该失效执行计划进行清除操作,可以将该失效执行计划的被引用关系确定为无引用关系,例如,可以将失效执行计划存储到一个待清除队列以标识为无引用关系,其中,无效引用关系具体可以为被引用关系对应的标识,可以具体为数字、字母和/或特殊符号组成的字符串。
步骤206、当失效执行计划的引用计数等于失效引用计数时,确定所述失效执行计划的被引用关系为失效引用关系。其中,失效引用关系可以用于表征引用该失效执行计划的父执行计划均为失效状态,失效引用关系具体可以为标识信息,可以由数字、字母和/或特殊符号组成。
具体的,可以将失效执行计划的引用计数与失效引用计数进行对比,若引用计数的数值等于失效引用计数的数值,则确定引用该执行计划的直接父执行计划均为失效状态,可以将失效执行计划标记为失效引用关系,例如,可以将为失效引用关系的失效执行计划存储到一个待检查队列。
步骤207、若失效执行计划的被引用关系为无引用关系,则清除所述失效执行计划。
在本发明实施例中,可以对无效引用关系的失效执行计划进行清除,可以将为无引用关系的失效执行计划预先存储在待清除执行队列中,可以将待清除执行队列中的失效执行计划逐个清除。
步骤208、若失效执行计划的被引用关系为失效引用关系,且引用所述失效执行计划的父执行计划满足预设清除条件时,清除所述失效执行计划,其中,所述预设清除条件包括所述父执行计划为失效引用计划且被引用关系为无引用关系或失效引用关系。
其中,父执行计划可以是引用失效执行计划的执行计划,父执行计划可以为失效执行计划,也可以为有效执行计划,父执行计划可以是直接引用失效执行计划的执行计划或者间接引用失效执行计划的执行计划,例如,执行计划A引用执行计划B,执行计划B引用执行计划C,执行计划C引用执行计划D,则执行计划A、B和C均可以是D的父执行计划,C可以是直接父计划,A和B可以是D的间接父计划,可以理解的是,间接父计划可以通过间接引用多次产生。
具体的,可以获取失效执行计划的被引用关系,若被引用关系为失效引用关系,可以获取该失效执行计划的属性信息,可以通过属性信息查找到引用该失效执行计划的父执行计划,可以对各父执行计划进行判断,若各父执行计划满足预设的清除条件,则该失效执行计划清除。示例性的,可以先将失效执行计划的引用关系全部去除,可以再将失效执行计划的引用计数和失效引用计数置为0。
进一步的,在本发明实施例中,所述预设清除条件包括所述父执行计划为失效引用计划且被引用关系为无引用关系或失效引用关系。
在本发明实施例中,可以通过待检查队列标记失效引用关系,以及通过待清除队列对无引用关系进行标记,当失效执行计划在待检查队列时,该失效执行计划可以为失效引用关系,当失效执行计划在待清除队列时,该失效执行计划可以为失效引用关系或无引用关系,可以对待检查队列中的父执行计划进行判断,若该失效执行计划的所有父执行计划在待清除队列和/或待检查队列时,可以确定各父执行计划满足预设清除条件,可以优先将该失效执行计划和父执行计划清除。
示例性的,可以由数据库调度线程从待检查队列中逐个获取失效执行计划,可以将判断引用该失效执行计划的父执行计划是否存在于待清除队列或者在待检查队列,若是,则将获取到的失效执行计划和父执行计划一起清除。
本发明实施例的技术方案,通过根据失效信息将目标执行计划存储到失效链表作为失效执行计划,在失效执行计划对的存储空间设置禁用标识,定时获取失效链表内的失效执行计划,针对各失效执行计划获取引用计数和失效引用计数,当引用计数为0,则对应的失效执行计划的被引用关系为无引用关系,当引用计数等于失效引用计数,则对应的失效执行计划的被引用关系为失效引用关系,直接清除无引用关系的失效执行计划,对为失效引用关系的失效执行计划,当该失效执行计划的父执行计划均满足清除条件时,清除该失效执行计划,实现了相互引用的执行计划的清除,减少了数据库的缓存空间,提高了数据库的运行效率。
进一步的,一种实施方式中,根据所述被引用关系清除各所述失效执行计划,包括:
若失效执行计划的被引用关系为无引用关系,则清除所述失效执行计划;若失效执行计划的被引用关系为失效引用关系,则获取各所述失效执行计划的父执行计划,确定各所述失效执行计划对应的父执行计划的引用关系为失效引用关系或无引用关系,清除所述失效执行计划。
具体的,可以将被引用关系为无引用关系的失效执行计划清除。对于被引用关系为失效引用关系的失效执行计划,可以针对各失效执行计划内存储的引用关系确定对应的父执行计划,其中,父执行计划可以是直接引用失效执行计划的执行计划,若各失效执行计划对应的父执行计划的被引用关系为失效引用关系或者无引用关系,可以将所有被引用关系为失效引用关系的失效执行计划一起删除。示例性的,对于一个失效执行计划满足,该失效执行计划的所有父执行计划位于标识失效引用关系的待检查队列或者位于标识无引用关系的待清除队列中时,该待清除队列中所有父执行计划失效,满足待清除条件,当所有失效执行计划均满足待删除条件时,可以将所有失效执行计划删除。
进一步的,在上述发明实施例的基础上,所述清除所述失效执行计划包括:
获取所述失效执行计划引用的子执行计划;若存在所述子执行计划,则更新各所述子执行计划的引用计数和失效引用计数并清除所述失效执行计划的缓存空间;若不存在所述子执行计划,则清除所述失效执行计划的缓存空间。
在本发明实施例中,可以确定各失效执行计划是否存在引用的子执行计划,清除失效执行计划时,在数据库的调度线程再次调用该失效执行计划时,清除该执行计划对应的缓存空间,可以同时该失效执行计划引用的子执行计划的失效引用计数更新,可以相应的将失效引用计数和引用计数减去1,如果失效执行计划不存在引用的子执行计划,可以直接清除对应的缓存空间。可以理解的是,失效执行计划清除的个数可以是对应的子执行节点失效引用计数更新的个数,一个子执行计划A的失效引用计数为4,引用A的失效执行计划清除了2个,可以将A的引用计数和失效引用计数更新为2。
示例性的,执行计划清除过程可以通过下述过程实现:第一步:相互引用的执行计划A和B都失效,则执行计划A和B的缓存都可以淘汰。图7a是本发明实施例二提供的一种相互引用执行计划失效的示例图,参见图7a,为了能成功处理失效的执行计划,为执行计划A和B引入了一个失效引用计数的概念(表示有多少个引用其的执行计划已经失效)。可以先给相互引用的执行依次增加失效引用计数,当一个执行计划的缓存被置失效时,可以同时增加其引用的所有对象计划缓存的失效引用计数N_dis_fix(非级联增加)。这样导致互相引用的执行计划的失效引用计数均增加。A失效了,那么B的N_dis_fix加1;B失效了,那么A的N_dis_fix加1。第二步:图7b是本发明实施例二提供的一种引用计数和失效引用计数关系示例图,参见图7b,调度线程会定时搜集失效执行计划,当A引用B且A失效时,则B满足引用计数为1,失效引用计数也为1。B可以满足一个执行计划的失效引用计数等于引用计数时,可以表示B不再被有效的缓存引用,也就是引用B的执行计划全部失效。因此,B可以进入到待检查队列。第三步:可以对待检查队列中的执行计划进行检查,可以从待检查计划队列中,找到最先加入的一个执行计划(例如B),看引用B的其它计划(例如CA)是否全部在待检查计划中,也就是引用它的执行计划全部失效。如果是(例如ABC都在),则将A、B和C都加入待清除计划队列中。如果否(还有一部分引用对象不在,例如B在,CA不在),则可以重新执行第一步。
实施例三
图8是本发明实施例三提供的一种数据库执行计划清除装置的结构示例图,本发明实施例提供的数据库执行计划清除装置可执行本发明任意实施例所提供的数据库执行计划清除方法,具备执行方法相应的功能模块和有益效果。该装置可以由软件和/或硬件实现,具体包括:失效获取模块301、引用确定模块302和计划清除模块303。
其中,失效获取模块301,用于获取预先设置失效的各失效执行计划,其中,各所述失效执行计划包括引用计数和失效引用计数。
引用确定模块302,用于根据各所述引用计数和所述失效引用计数确定所述失效执行计划的被引用关系。
计划清除模块303,用于根据所述被引用关系清除各所述失效执行计划。
本发明实施例的技术方案,通过失效获取模块获取失效执行计划,引用确定模块根据失效执行计划的引用计数和失效引用计数确定对应的被引用关系,计划清除模块根据被引用关系清除各所述失效执行计划,实现了相互引用的执行计划的清除,降低了数据库缓存空间的占用率,提高了数据库系统的运行效率。
进一步的,在上述发明实施例的基础上,还包括失效模块,具体用于:
根据失效信息将目标执行计划存储到失效链表作为失效执行计划;在所述目标执行计划对应的缓存空间设置禁用标识;更新所述目标执行计划引用的子执行计划的失效引用计数。
进一步的,在上述发明实施例的基础上,失效获取模块301具体用于:
定时获取失效链表内存储的各失效执行计划。
进一步的,在上述发明实施例的基础上,引用确定模块302包括:
参数获取单元,用于获取各所述失效执行计划的引用计数和失效引用计数。
无引用单元,用于当失效执行计划的引用计数为0时,确定所述失效执行计划的被引用关系为无引用关系。和/或
失效引用单元,用于当失效执行计划的引用计数等于失效引用计数时,确定所述失效执行计划的被引用关系为失效引用关系。
进一步的,在上述发明实施例的基础上,计划清除模块303包括:
第一清除单元,用于若失效执行计划为无引用关系,则清除所述失效执行计划。和/或
第二清除单元,用于若失效执行计划的被引用关系为失效引用关系,且引用所述失效执行计划的父执行计划满足预设清除条件时,清除所述失效执行计划;其中,所述预设清除条件包括所述父执行计划为失效引用计划且被引用关系为无引用关系或失效引用关系。
进一步的,在上述发明实施例的基础上,计划清除模块303还包括:
失效清除单元,用于若失效执行计划的被引用关系为无引用关系,则清除所述失效执行计划。
清除执行单元,用于若失效执行计划的被引用关系为失效引用关系,则获取各所述失效执行计划的父执行计划,确定各所述失效执行计划对应的父执行计划的引用关系为失效引用关系或无引用关系,清除所述失效执行计划。
进一步的,计划清除模块303中清除所述失效执行计划包括:
获取所述失效执行计划的引用子执行计划;若存在所述子执行计划,则更新各所述子执行计划的引用计数和失效引用计数并清除所述失效执行计划的缓存空间;若不存在所述子执行计划,则清除所述失效执行计划的缓存空间。
实施例四
图9是本发明实施例四提供的一种设备的结构示例图,如图9所示,该设备包括处理器90、存储器91、输入装置92和输出装置93;设备中处理器90的数量可以是一个或多个,图9中以一个处理器90为例;设备中的处理器90、存储器91、输入装置92和输出装置93可以通过总线或其他方式连接,图9中以通过总线连接为例。
存储器91作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据库执行计划清除方法对应的程序指令/模块(例如,数据库执行计划清除装置中的失效获取模块301、引用确定模块302和计划清除模块303)。处理器90通过运行存储在存储器91中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的数据库执行计划清除方法。
存储器91可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器91可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器91可进一步包括相对于处理器90远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置92可用于接收输入的数字或字符信息,以及产生与设备9的用户设置以及功能控制有关的键信号输入。输出装置93可包括显示屏等显示设备。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据库执行计划清除方法,该方法包括:
获取预先设置失效的各失效执行计划,其中,各所述失效执行计划包括引用计数和失效引用计数;
根据各所述引用计数和所述失效引用计数确定所述失效执行计划的被引用关系;
根据所述被引用关系清除各所述失效执行计划。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据库执行计划清除方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述数据库执行计划清除装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (7)
1.一种数据库执行计划清除方法,其特征在于,包括:
获取预先设置失效的各失效执行计划,其中,各所述失效执行计划包括引用计数和失效引用计数;
根据各所述引用计数和所述失效引用计数确定所述失效执行计划的被引用关系;
根据所述被引用关系清除各所述失效执行计划;
其中,所述预先设置失效各失效执行计划包括:
根据失效信息将目标执行计划存储到失效链表作为失效执行计划;
在所述目标执行计划对应的缓存空间设置禁用标识;
更新所述目标执行计划引用的子执行计划的失效引用计数;
其中,所述根据所述被引用关系清除各所述失效执行计划,包括:
若失效执行计划的被引用关系为无引用关系,则清除所述失效执行计划;
若失效执行计划的被引用关系为失效引用关系,且引用所述失效执行计划的父执行计划满足预设清除条件时,清除所述失效执行计划;
其中,所述预设清除条件包括所述父执行计划为失效引用计划且被引用关系为无引用关系或失效引用关系;还包括:
获取所述失效执行计划引用的子执行计划;
若存在所述子执行计划,则更新各所述子执行计划的引用计数和失效引用计数并清除所述失效执行计划的缓存空间;
若不存在所述子执行计划,则清除所述失效执行计划的缓存空间。
2.根据权利要求1所述的方法,其特征在于,所述获取预先设置失效的各失效执行计划,包括:
定时获取失效链表内存储的各失效执行计划。
3.根据权利要求2所述的方法,其特征在于,所述根据各所述引用计数和所述失效引用计数确定所述失效执行计划的被引用关系,包括:
获取各所述失效执行计划的引用计数和失效引用计数;
当失效执行计划的引用计数为0时,确定所述失效执行计划的被引用关系为无引用关系;和/或
当失效执行计划的引用计数等于失效引用计数时,确定所述失效执行计划的被引用关系为失效引用关系。
4.根据权利要求1所述的方法,其特征在于,所述根据所述被引用关系清除各所述失效执行计划,包括:
若失效执行计划的被引用关系为无引用关系,则清除所述失效执行计划;
若失效执行计划的被引用关系为失效引用关系,则获取各所述失效执行计划的父执行计划,确定各所述失效执行计划对应的父执行计划的引用关系为失效引用关系或无引用关系,清除所述失效执行计划。
5.一种数据库执行计划清除装置,其特征在于,包括:
失效获取模块,用于获取预先设置失效的各失效执行计划,其中,各所述失效执行计划包括引用计数和失效引用计数;
引用确定模块,用于根据各所述引用计数和所述失效引用计数确定所述失效执行计划的被引用关系;
计划清除模块,用于根据所述被引用关系清除各所述失效执行计划;
失效模块,用于根据失效信息将目标执行计划存储到失效链表作为失效执行计划;在所述目标执行计划对应的缓存空间设置禁用标识;更新所述目标执行计划引用的子执行计划的失效引用计数;
其中,所述计划清除模块,包括:
失效清除单元,用于若失效执行计划的被引用关系为无引用关系,则清除所述失效执行计划;
清除执行单元,用于若失效执行计划的被引用关系为失效引用关系,则获取各所述失效执行计划的父执行计划,确定各所述失效执行计划对应的父执行计划的引用关系为失效引用关系或无引用关系,清除所述失效执行计划;
其中,所述清除执行单元,具体还用于取所述失效执行计划的引用子执行计划;若存在所述子执行计划,则更新各所述子执行计划的引用计数和失效引用计数并清除所述失效执行计划的缓存空间;若不存在所述子执行计划,则清除所述失效执行计划的缓存空间。
6.一种数据库执行计划清除设备,其特征在于,该设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的数据库执行计划清除方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一所述的数据库执行计划清除方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911319980.0A CN111078670B (zh) | 2019-12-19 | 2019-12-19 | 数据库执行计划清除方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911319980.0A CN111078670B (zh) | 2019-12-19 | 2019-12-19 | 数据库执行计划清除方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078670A CN111078670A (zh) | 2020-04-28 |
CN111078670B true CN111078670B (zh) | 2023-06-20 |
Family
ID=70315904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911319980.0A Active CN111078670B (zh) | 2019-12-19 | 2019-12-19 | 数据库执行计划清除方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078670B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0422877A2 (en) * | 1989-10-13 | 1991-04-17 | International Business Machines Corporation | A method for invalidating access plans in a database system |
US6356887B1 (en) * | 1999-06-28 | 2002-03-12 | Microsoft Corporation | Auto-parameterization of database queries |
CN102262636A (zh) * | 2010-05-25 | 2011-11-30 | 中国移动通信集团浙江有限公司 | 生成数据库分区执行计划的方法及装置 |
CN102542379A (zh) * | 2010-12-20 | 2012-07-04 | 中国移动通信集团公司 | 一种计划任务处理方法、系统及装置 |
CN106897343A (zh) * | 2016-07-20 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 执行计划的查找方法、存储方法及装置 |
CN107451203A (zh) * | 2017-07-07 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 数据库访问方法及装置 |
CN107566460A (zh) * | 2017-08-16 | 2018-01-09 | 微梦创科网络科技(中国)有限公司 | 分布式部署计划任务的方法和系统 |
CN107943453A (zh) * | 2016-10-12 | 2018-04-20 | 厦门雅迅网络股份有限公司 | 一种实现运维系统自定义计划任务的方法及系统 |
CN109408539A (zh) * | 2018-10-22 | 2019-03-01 | 上海达梦数据库有限公司 | 数据操作方法、装置、服务器和存储介质 |
CN110222072A (zh) * | 2019-06-06 | 2019-09-10 | 江苏满运软件科技有限公司 | 数据查询平台、方法、设备和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7461057B2 (en) * | 2005-12-30 | 2008-12-02 | Sap Ag | Query plan execution by implementation of plan operations forming a join graph |
US8954401B2 (en) * | 2011-01-14 | 2015-02-10 | Symantec Corporation | Systems and methods for providing increased scalability in deduplication storage systems |
US8935234B2 (en) * | 2012-09-04 | 2015-01-13 | Oracle International Corporation | Referentially-complete data subsetting using relational databases |
-
2019
- 2019-12-19 CN CN201911319980.0A patent/CN111078670B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0422877A2 (en) * | 1989-10-13 | 1991-04-17 | International Business Machines Corporation | A method for invalidating access plans in a database system |
US6356887B1 (en) * | 1999-06-28 | 2002-03-12 | Microsoft Corporation | Auto-parameterization of database queries |
CN102262636A (zh) * | 2010-05-25 | 2011-11-30 | 中国移动通信集团浙江有限公司 | 生成数据库分区执行计划的方法及装置 |
CN102542379A (zh) * | 2010-12-20 | 2012-07-04 | 中国移动通信集团公司 | 一种计划任务处理方法、系统及装置 |
CN106897343A (zh) * | 2016-07-20 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 执行计划的查找方法、存储方法及装置 |
CN107943453A (zh) * | 2016-10-12 | 2018-04-20 | 厦门雅迅网络股份有限公司 | 一种实现运维系统自定义计划任务的方法及系统 |
CN107451203A (zh) * | 2017-07-07 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 数据库访问方法及装置 |
CN107566460A (zh) * | 2017-08-16 | 2018-01-09 | 微梦创科网络科技(中国)有限公司 | 分布式部署计划任务的方法和系统 |
CN109408539A (zh) * | 2018-10-22 | 2019-03-01 | 上海达梦数据库有限公司 | 数据操作方法、装置、服务器和存储介质 |
CN110222072A (zh) * | 2019-06-06 | 2019-09-10 | 江苏满运软件科技有限公司 | 数据查询平台、方法、设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
徐昂 ; 成科扬 ; .基于关系型数据库的SQL检索优化研究.电子设计工程.2019,(11),全文. * |
赵君,高景昌,李泽海,何益斌.利用重用查询计划实现数据库性能的优化.吉林大学学报(信息科学版).2003,(04),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111078670A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7284238B2 (en) | Multithread tracing method and apparatus | |
Mondal et al. | Automatic identification of important clones for refactoring and tracking | |
CN106294206B (zh) | 一种缓存数据处理方法以及装置 | |
CN106991002B (zh) | 用于实现任务调度管理的方法及设备 | |
JP2007148728A (ja) | ポリシ制御方法、装置及びプログラム | |
CN111258850B (zh) | 一种基于Linux系统的更新软件信息的方法及装置 | |
CN106878038B (zh) | 一种通信网络中故障定位方法及装置 | |
WO2014065115A1 (ja) | ルール分配サーバ、イベント処理システム、方法及びプログラム | |
CN106909457A (zh) | 内存管理方法及装置 | |
CN113297042B (zh) | 一种告警消息的处理方法、装置及设备 | |
CN111078670B (zh) | 数据库执行计划清除方法、装置、设备和存储介质 | |
CN106713032A (zh) | 一种实现网管业务管理的方法及装置 | |
CN107798086B (zh) | 服务器信息更新方法、装置、系统及电子设备 | |
CN114564281A (zh) | 容器调度方法、装置、设备及存储介质 | |
CN107330031B (zh) | 一种数据存储的方法、装置及电子设备 | |
CN115495424A (zh) | 数据处理的方法、电子设备和计算机程序产品 | |
JP2019528493A (ja) | 電子装置、名簿エントリの重複排除方法及びコンピュータ読み取り可能な記憶媒体 | |
CN113268401B (zh) | 日志信息的输出方法、装置及计算机可读存储介质 | |
CN115914387A (zh) | 资源共享及数据查询的方法、装置和服务器 | |
JP2009217617A (ja) | メモリリーク箇所の特定方法及び装置 | |
CN115809150A (zh) | 一种分布式死锁检测方法、装置及电子设备 | |
JP2002132543A (ja) | 計算機システムの管理方法 | |
CN110990611A (zh) | 图片缓存方法、装置、电子设备及存储介质 | |
JP2016143388A (ja) | ログ情報分類装置、ログ情報分類方法、及びプログラム | |
CN106959888B (zh) | 云存储系统中的任务处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |