基于ORACLE数据库的索引处理方法、系统、设备和存储介质与流程

文档序号:21973079发布日期:2020-08-25 19:04阅读:146来源:国知局
基于ORACLE数据库的索引处理方法、系统、设备和存储介质与流程

本发明涉及计算机应用技术领域,更为具体而言,涉及一种基于oracle数据库的失效索引处理方法、系统、设备和存储介质。



背景技术:

oracle(甲骨文)数据库在使用过程中有多种原因可能会导致出现索引失效的情况。索引失效会影响原本使用此索引的sql语句的执行效率。此外,如果失效的索引是唯一索引会导致向基表的数据插入操作失败。然而,由于oracle数据库的索引失效是一种正常机制,所以oracle数据库自身不会在索引失效时报错,需要自行实现失效索引的监控。

但是,由于不同数据库上运行的业务特点不同,有些数据库可能会出现每天在特定的时间范围内有特定的一些索引出现失效的情况,这些是计划范围内的失效情况,而一旦发现索引失效的情况就立刻进行告警,将会产生很多无意义的告警。



技术实现要素:

为解决上述现有技术存在的问题,本发明提供了一种基于oracle数据库的失效索引处理方法、系统、设备和存储介质,通过配置对应的配置内容,使失效索引的监控具备针对性,并通过对符合配置内容对应的告警条件的失效索引进行告警,能够避免产生无意义的告警,使得对失效索引的监控处理更加完善。

根据本发明的第一方面,本发明实施方式提供了一种基于oracle数据库的失效索引处理方法,包括:获取配置文件中的配置内容;查询当前处于失效状态的索引,判断处于失效状态的索引是否满足所述配置内容对应的告警条件;对判断为满足所述告警条件的处于失效状态的索引进行告警。

本发明上述实施方式通过获取的配置文件,得到索引对应的具备针对性的配置内容,并通过对符合配置内容对应的告警条件的失效索引进行告警,可以避免产生无意义的告警,进而对告警内容进行有针对性的处理。

在本发明的一些实施方式中,所述配置内容包括监控时间段,所述告警条件包括处于失效状态的索引处于所述监控时间段内。

本发明上述实施方式通过设置监控时间段,可以针对处于监控时间段内的失效索引进行告警,避免对计划范围内的失效索引进行无意义的告警。

在本发明的一些实施方式中,所述配置内容还包括失效时间阈值,所述告警条件还包括处于失效状态的索引的持续失效时间超过所述失效时间阈值。

本发明上述实施方式通过设置失效时间阈值,可以针对持续失效时间超过失效时间阈值的失效索引进行告警,避免一旦发现索引失效就立即告警的情况。

在本发明的一些实施方式中,所述配置内容还包括索引白名单,所述告警条件还包括处于失效状态的索引不处于所述索引白名单中。

本发明上述实施方式通过设置索引白名单,可以针对不处于索引白名单中的失效索引进行告警,避免对处于索引白名单中的失效索引进行告警,实现对需要进行告警的失效索引的筛选,使得针对失效索引的监控和处理更具有针对性。

根据本发明的第二方面,本发明实施方式提供了一种基于oracle数据库的失效索引处理系统,包括:配置信息获取模块,用于获取配置文件中的配置内容;判断模块,用于查询当前处于失效状态的索引,判断处于失效状态的索引是否满足所述配置内容对应的告警条件;告警模块,用于当所述判断模块判断处于失效状态的索引满足所述告警条件时进行告警。

本发明上述实施方式通过获取的配置文件,得到索引对应的具备针对性的配置内容,并通过对符合配置内容对应的告警条件的失效索引进行告警,可以避免产生无意义的告警,进而对告警内容进行有针对性的处理。

在本发明的一些实施方式中,所述配置内容包括监控时间段,所述告警条件包括处于失效状态的索引处于所述监控时间段内。

本发明上述实施方式通过设置监控时间段,可以针对处于监控时间段内的失效索引进行告警,避免对计划范围内的失效索引进行无意义的告警。

在本发明的一些实施方式中,所述配置内容还包括失效时间阈值,所述告警条件还包括处于失效状态的索引的持续失效时间超过所述失效时间阈值。

本发明上述实施方式通过设置失效时间阈值,可以针对持续失效时间超过失效时间阈值的失效索引进行告警,避免一旦发现索引失效就立即告警的情况。

在本发明的一些实施方式中,所述配置内容还包括索引白名单,所述告警条件还包括处于失效状态的索引不处于所述索引白名单中。

本发明上述实施方式通过设置索引白名单,可以针对不处于索引白名单中的失效索引进行告警,避免对处于索引白名单中的失效索引进行告警,实现对需要进行告警的失效索引的筛选,使得针对失效索引的监控和处理更具有针对性。

根据本发明的第三方面,本发明实施方式提供一种计算机存储介质,其上存储有计算机可读指令,所述计算机可读指令被处理器执行时,使得计算机执行如下操作:所述操作包括如上任意一种实施方式所述失效索引处理方法所包含的步骤。

根据本发明的第四方面,本发明实施方式提供一种包括存储器和处理器的计算机设备,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时能够实现如上任意一种实施方式所述的失效索引处理方法。

本发明实施方式提供的基于oracle数据库的失效索引处理方法、系统、存储介质和设备,通过配置对应的配置内容使得对失效索引的监控处理更加有针对性,并通过对符合配置内容对应的告警条件的失效索引进行告警,过滤掉不需要告警的失效索引,避免产生无意义的告警,进而对告警内容进行有针对性的处理。

附图说明

图1是根据本发明一种实施方式的基于oracle数据库的失效索引处理方法的流程示意图;

图2是根据本发明另一种实施方式的基于oracle数据库的失效索引处理方法的流程示意图;

图3是根据本发明一种实施方式的基于oracle数据库的失效索引处理系统的架构图。

具体实施方式

以下结合附图和具体实施方式对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或处理方式可以按各种不同配置进行组合和设计。

下面对本文中使用的术语进行简要说明。

索引,在oracle数据库中,索引是一种供服务器在表中快速查找一个行的数据库结构。

图1是根据本发明一种实施方式的基于oracle数据库的失效索引处理方法的流程示意图。

如图1所示,在本发明的一种实施方式中,基于oracle数据库的失效索引处理方法可包括:步骤s11、步骤s12和步骤s13,下面对上述步骤进行具体的描述。

在步骤s11中,获取配置文件中的配置内容。在可选的实施方式中,所述配置内容可以包括但不限于以下几项:监控时间段、失效时间阈值、索引白名单。可选的,配置文件中配置内容的各项参数的值,可以是统一设置,也可以是针对不同的索引单一设置,由此,使得对失效索引的监控和处理更具有针对性。

在步骤s12中,查询当前处于失效状态的索引,判断处于失效状态的索引是否满足所述配置内容对应的告警条件。

在可选的实施方式中,所述告警条件可以包括:处于失效状态的索引处于监控时间段内、处于失效状态的索引的持续失效时间超过失效时间阈值、处于失效状态的索引不处于索引白名单中。

在步骤s13中,对判断为满足所述告警条件的处于失效状态的索引进行告警。需要说明的是,针对上述不同的告警条件的判断,没有明确的先后顺序,只有在处于失效的索引满足告警条件时,才进行告警。

采用本发明实施方式的上述方法,通过配置对应的配置内容,使失效索引的监控具备针对性,并通过对符合配置内容对应的告警条件的失效索引进行告警,能够避免产生无意义的告警,由此,可以及时针对真正需要进行告警的失效索引(例如,因误操作或操作方案不完善等情况导致的计划外的索引失效情况)实现告警,进而对告警的问题进行有针对性的处置。

图2是根据本发明另一种实施方式的基于oracle数据库的失效索引处理方法的流程示意图。

如图2所示,在本发明的另一种实施方式中,基于oracle数据库的失效索引处理方法包括:步骤s21、步骤s22、步骤s23、步骤s24、步骤s25、步骤s26和步骤s27,且该处理方法由shell语言实现,下面对上述步骤进行具体的描述。

在步骤s21中,加载存放于配置文件中的配置项,其中,所述配置项包括监控时间段、持续失效时间阈值、索引白名单。

在步骤s22中,查询数据库中当前失效索引信息。具体的,脚本连接数据库,通过oracle数据库中自带的dba_indexes,dba_ind_partitions,dba_ind_subpartitions等视图,查询当前处于失效状态的索引,并针对当前处于失效状态的每个索引执行下列步骤:

步骤s23,判断失效索引是否在索引白名单中,如果失效索引在索引白名单中,则执行步骤s24,如果失效索引不在索引白名单中,则执行步骤s25;

步骤s24,退出,而不进行告警;

步骤s25,判断失效索引的持续失效时间是否超过持续失效时间阈值,如果失效索引的持续失效时间超过持续失效时间阈值,则执行步骤s26,如果失效索引的持续失效时间没有超过持续失效时间阈值,则执行步骤s24;

步骤s26,判断失效索引当前是否处于监控时间段内,如果失效索引当前处于监控时间段内,则执行步骤s27,如果失效索引当前不处于监控时间段内,则执行步骤s24。

步骤s27,进行告警,告警结束后执行步骤s24退出。

采用本发明实施方式的上述方法,通过对符合配置内容对应的告警条件的失效索引进行告警,能够避免产生无意义的告警,仅针对真正需要进行告警的失效索引实现告警。

在本发明的可选实施方式中,可以调换步骤s23~s26这些判断步骤的顺序,也可以省略图2中的任意一项或两项判断步骤,或者增加新的判断步骤,实现更加详细的、具有针对性的失效索引处理。例如,在本发明的一种可选实施方式中,可以省略图2中步骤s25:判断失效索引的持续失效时间是否超过持续失效时间阈值。也就是说,首先加载的配置项包括监控时间段和索引白名单,然后查询数据库中当前失效索引信息,对每一个失效索引依次判断失效索引是否在索引白名单中,若失效索引不在索引白名单中,则再次判断失效索引当前是否处于监控时间段内,若处于监控时间段内,则进行告警后退出,而在判断失效索引处于索引白名单中,或失效索引当前不处于监控时间段内时,则直接退出而不进行告警。当然,也可以先判断失效索引是否处于监控时间段内,后判断是否在索引白名单中。这样的方法可以避免针对不需要告警的白名单内的失效索引和计划范围内的失效索引产生的告警。

图3是根据本发明一种实施方式的基于oracle数据库的失效索引处理系统的架构图。

如图3所示,所述失效索引处理系统包括:

配置信息获取模块310,用于获取配置文件中的配置内容。在可选的实施方式中,所述配置内容可以包括:监控时间段、失效时间阈值、索引白名单。可选的,配置文件中配置内容的各项参数的值,可以是统一设置,也可以是针对不同的索引单一设置,由此,使得对失效索引的监控和处理更具有针对性。

判断模块320,用于查询当前处于失效状态的索引,判断处于失效状态的索引是否满足所述配置内容对应的告警条件。

在可选的实施方式中,所述告警条件可以包括下述任意一种或多种:处于失效状态的索引处于监控时间段内、处于失效状态的索引的持续失效时间超过失效时间阈值、处于失效状态的索引不处于索引白名单中。

告警模块330,用于当所述判断模块220判断处于失效状态的索引满足所述告警条件时进行告警。本领域技术人员应当理解的是,针对上述不同的告警条件的判断,没有明确的先后顺序,只有在处于失效的索引满足告警条件时,才进行告警。

采用本发明的上述系统,通过配置对应的配置内容使得对失效索引的监控处理更加有针对性,并通过对符合配置内容对应的告警条件的失效索引进行告警,过滤掉不需要告警的失效索引,避免产生无意义的告警,进而对告警内容进行有针对性的处理,使得整个系统对失效索引的监控处理更加高效和有针对性。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施方式或者实施方式的某些部分所述的方法。

对应的,本发明实施方式还提供一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令被处理器执行时,使得计算机执行如下操作:所述操作包括如上任意一种实施方式所述基于oracle数据库的失效索引处理方法所包含的步骤,在此不再赘述。其中,所述存储介质可以包括:例如,光盘、硬盘、软盘、闪存、磁带等。

另外,本发明实施方式还提供一种包括存储器和处理器的计算机设备,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时能够实现如上任意一种实施方式所述的基于oracle数据库的失效索引处理方法。所述计算机设备可以是,例如,服务器、台式计算机、笔记本计算机、平板电脑等。

最后应说明的是:以上实施方式仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施方式对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施方式技术方案的精神和范围。因此本发明的保护范围应以权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1