专利名称:一种实现数据库系统自动优化的系统和方法
技术领域:
本发明涉及数据库领域,特别涉及一种实现数据库系统自动优化的系统和方法。
背景技术:
数据库管理作为一种使数据具有完整性、安全性和共享性的数据管理方式,被越来越广泛的应用于各领域中。数据库管理可以使用数据库系统和应用系统进行简单描述。应用系统需要调用的各种数据都存储在数据库系统的数据表中,当应用系统需要对这些数据进行诸如查询、删除、插入、修改等操作时向数据库系统提出请求,数据库系统通过系统内的数据库服务器针对请求为应用系统提供各种针对数据库的服务,数据库服务器可以针对多个数据库为应用系统提供服务。该过程也可以简述成应用系统通过对数据库系统的访问对存储在数据库系统中的数据进行操作。数据库系统和应用系统都需要以操作系统为运行平台。
数据库系统对数据的操作可以通过结构化查询语言(SQL)来实现。SQL是用来在数据库系统中定义对象和操作数据的标准化语言,数据库系统通过运行SQL进行数据的查询、更新、插入和删除,其中运行SQL进行数据的查询时,通过引用为数据库系统的数据列表建立的索引提高数据查询效率。
数据库系统的配置通常包括磁盘性能、索引配置、锁的使用、优化器和数据库服务器相关配置等,其中数据库服务器的相关配置包括内存配置、高速缓存配置和CPU配置等,是数据库系统配置中非常重要的组成部分。上述数据库系统的配置直接影响数据库系统的查询速度、操作速度和运行效率等性能。通常在应用系统的软件产品开发时,会对该应用系统软件需要使用的数据库系统的各项指标进行配置,作为实际使用时数据库系统的默认配置值,但在默认配置下数据库系统的性能并不是最优的。数据库系统的优化一般分为开发时优化和现场优化,开发时优化是在应用系统的软件产品开发过程中,针对普遍情况对数据库系统的各项配置进行优化,而现场优化是在应用系统的软件产品发布之后,针对应用现场的具体情况对数据库系统的各项配置进行优化,提高数据库系统的性能。因此现场优化对于数据库系统的实际应用更有意义。
应用系统的软件产品发布之后,在应用中需要对数据库系统进行部署,即安装数据库服务器、建立要使用的数据库,在这一过程结束后诸如磁盘性能和软件程序代码都已经不可变更,因此对于数据库系统的现场优化一般主要针对数据库服务器相关配置,即包括索引配置、高速缓存配置、内存配置等,以及优化器进行。
目前,针对数据库系统的现场优化主要有以下三种方式第一、数据库系统的现场优化主要使用手工进行,数据库工程师到达数据库系统运行现场,手工查询数据库系统的运行状态,根据运行状态以及经验对数据库系统的各项配置进行优化。这种方式的缺点是,优化依靠人工进行,对调优人员技能要求高,耗时耗力成本高,并且调优人员只能对数据库系统进行很短时间内的跟踪,不能根据综合的情况动态调优,进而获得最好的调优方法。如果用户改变了一种应用习惯和应用场景,还需要重新再进行人工优化。
第二、在数据库系统中集成内存自动调优的功能,可以有限的对数据库系统已经分配的内存进行调整。这种方式的缺点是,只能针对数据库系统已经分配的内存进行调整,并不能针对数据库系统的其他配置进行调整,并且只有某些数据库系统提供了这项技术,不具有通用性。
第三、利用数据库系统内部的优化器对SQL直接进行优化,实现对数据库系统性能的优化。这种方式的缺陷是,优化器只能根据数据库系统内部现有数据表及索引进行有限优化,无法做到对索引的全面优化,以配合SQL提高数据库系统的性能,并且只能根据SQL进行无语义的优化,无法根据应用情况做到全面优化。
可见,上述三种对数据库系统现场优化的方式,都不能实现根据应用现场情况对数据库系统进行全面长期的自动优化。
发明内容
本发明实施例提供一种实现数据库系统自动优化的系统,该系统能实现根据应用现场情况对数据库系统进行全面长期的自动优化。
本发明实施例提供一种实现数据库系统自动优化的方法,该方法能实现根据应用现场情况对数据库系统进行全面长期的自动优化。
本发明实施例提供一种实现数据库系统自动优化的系统,该系统包括采集模块和专家模块;所述采集模块,采集影响数据库系统性能的相关数据提供给专家模块;所述专家模块,通过采集模块提供的采集数据分析数据库系统性能,按照优化规则对数据库系统配置进行优化。
本发明实施例提供一种实现数据库系统自动优化的方法,该方法包括A、采集影响数据库系统性能的相关数据;B、通过采集数据分析数据库系统的性能,按照优化规则对数据库系统的配置进行优化。
本发明实施例提供的实现数据库系统自动优化的系统,采集模块采集影响数据库系统性能的相关数据,专家模块根据采集模块提供的数据分析数据库系统的性能情况,自动启动对数据库系统配置的优化,实现对数据库系统全面长期的自动优化。
本发明实施例提供的实现数据库系统自动优化的方法,通过采集影响数据库系统性能的相关数据,分析数据库系统的性能情况,自动启动对数据库系统配置的优化,实现对数据库系统全面长期的自动优化。
图1为本发明实施例实现数据库系统自动优化的系统结构示意图;图2为本发明实施例实现数据库系统自动优化的系统与数据库系统、应用系统的关系示意图;图3为本发明实施例数据库系统和数据库系统自动优化系统同一进程示意图;图4为本发明实施例实现数据库系统自动优化的方法较佳实施方式流程图;图5为本发明实施例实现数据库系统自动优化的方法基于图1所示系统的流程图。
具体实施例方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图,对本发明实施例进一步详细说明。
本发明实施例提供的实现数据库系统自动优化的系统,该系统包括采集模块和专家模块。采集模块,用于采集影响数据库系统性能的相关数据,将采集的数据提供给专家模块。专家模块,用于通过采集模块提供的数据分析数据库系统性能,按照优化规则对数据库系统配置进行优化。
本发明实施例提供的实现数据库系统自动优化的方法,该方法首先采集影响数据库系统性能的相关数据,然后通过采集的数据分析数据库系统的性能,按照优化规则对数据库系统配置进行优化。
首先,对本发明实施例提供的实现数据库系统自动优化的系统进行详细描述。图1为本发明实施例提供的实现数据库系统自动优化的系统结构示意图,该系统包括采集模块101和专家模块102,其中采集模块101包括SQL运行数据采集模块103和性能数据采集模块104。
采集模块101,用于采集影响数据库系统性能的相关数据提供给专家模块102。本发明实施例中,上述影响数据库系统性能的相关数据可以包括数据库系统、和/或操作系统、和/或应用系统的性能数据,和/或数据库系统的SQL运行数据,将采集模块101采集上述所有数据作为一种较佳实施方式。在此情况下,采集模块101中可以进一步包括SQL运行数据采集模块103和性能数据采集模块104。
性能数据采集模块104,用于采集操作系统、应用系统和数据库系统的性能数据,将采集的数据提供给专家模块102使用。本发明实施例中,性能数据采集模块104采集的性能数据包括操作系统内存分布数据、数据库系统和应用系统的内存使用数据、操作系统的CPU占用数据、数据库系统和应用系统的CPU占用数据和数据库系统的高速缓存使用数据。由于数据库系统和应用系统都以操作系统为操作平台,本发明实施例中性能数据采集模块104可以通过操作系统提供的应用程序接口(API)或者工具软件,获得操作系统内存分布数据,采集操作系统、数据库系统和应用系统的内存使用数据;通过操作系统提供的API或者工具软件,采集操作系统、数据库系统和应用系统的CPU占用数据。另外数据采集模块104通过数据库系统提供的API采集数据库系统高速缓存使用数据。本发明实施例将上述采集方式作为一种较佳实施方式,也可以只采集上述数据中的一种或几种作为性能数据采集模块104采集的性能数据。
SQL运行数据采集模块103,用于采集数据库系统的SQL运行数据,将采集的数据提供给专家模块102使用。本发明实施例中,SQL运行数据采集模块103采集的数据包括以执行频度高为排序项的SQL语句列表、以访问频度高、更新频度高为排序项的数据表列表和执行SQL时数据表索引的使用情况数据。SQL运行数据采集模块103也可以只采集上述数据中的一种或几种作为SQL运行数据。
上述性能数据采集模块104和SQL运行数据采集模块103,采集数据的方式可以为定时采集,即根据实际需要具体设置采集的时间间隔。本发明实施例将采集性能数据和SQL运行数据作为一种较佳实施方式,也可以只采集性能数据或只采集SQL运行数据,可以根据实际优化的需要灵活运用。
专家模块102,用于接收性能数据采集模块104提供的操作系统、应用系统和数据库系统的性能数据,接收SQL运行数据采集模块103提供的数据库系统SQL运行数据,通过分析上述接收到的数据,分析得出数据库系统性能曲线,按照优化规则,对数据库系统配置进行优化。专家模块102可以将数据库系统性能下降,作为开始优化的触发条件,即当数据库系统性能曲线反映的数据库系统性能下降时,专家模块102按照优化规则,对引起数据库系统性能下降的对应配置进行优化。
本发明实施例中,设置的数据库系统优化规则包括以下几项1)内存分配优化规则,该规则具体描述了内存分配优化的依据,即如果操作系统内存的最大分布值大于操作系统、数据库系统和应用系统内存的最大使用值,给数据库系统分配其内存最大使用值,如果操作系统内存的最大分布值小于操作系统、数据库系统和应用系统内存的最大使用值,根据应用情况加权为数据库系统分配内存使用值。应用本优化规则,需要采集操作系统、应用系统和数据库系统的内存使用数据,本发明实施例是通过操作系统提供的API或者工具软件,获得操作系统内存分布数据,采集操作系统、数据库系统和应用系统的内存使用数据。
2)CPU分配优化规则,该规则具体描述了CPU分配优化的依据,即综合考虑应用情况,加权配置数据库系统、操作系统和应用系统的CPU占用值。应用本优化规则,需要采集操作系统、应用系统和数据库系统的CPU占用数据,本发明实施例是通过操作系统提供的API或者工具软件,采集操作系统、应用系统和数据库系统的CPU占用数据。
3)高速缓存优化规则,该规则具体描述了数据库系统的高速缓存优化的依据,即根据应用的实际情况,为数据库系统分配高速缓存使用值。应用本优化规则,需要采集数据库系统的高速缓存使用数据,本发明实施例中通过数据库系统提供的API采集数据库系统的高速缓存使用数据。
4)索引优化规则,该规则具体描述了索引优化的依据,即如果数据库系统中存在某个索引使用错误或缺少索引导致数据库系统性能下降的情况,在数据库系统空闲时重新创建该索引,如果存在某个索引始终没有使用到或使用频率较低且数据空间容量不足的情况,删除该索引。应用本优化规则,需要采集数据库系统的索引使用数据,本发明实施例中通过采集数据库系统的SQL运行数据采集索引使用数据。
5)SQL语句优化规则,该规则具体描述了对SQL语句优化的依据,即如果存在由于使用频率较高的SQL语句的编写问题,导致其索引没有正确使用的情况,则根据预定义的语义调整SQL语句。应用本优化规则,需要采集数据库系统的SQL运行数据。
上述1)-5)项优化规则为本发明实施例提供的一种较佳实施方式,在实际应用中,根据实际优化需要也可以选择上述优化规则中的几项作为数据库系统的优化规则。
针对上述各项数据库系统的优化规则,专家模块102分析性能数据采集模块104提供的操作系统、应用系统和数据库系统的性能数据,以及SQL运行数据采集模块103提供的数据库系统SQL运行数据,得到数据库系统性能曲线,按照上述优化规则,对数据库系统配置进行优化。该优化规则可以存储在专家模块102中,也可以存储在与专家模块102相连的一个存储模块中,根据需要可以采用不同的情况实现。
以上所述本发明实施例提供的实现数据库系统自动优化的系统,SQL运行数据采集模块103和性能数据采集模块104采集数据库系统、应用系统和操作系统的性能数据和数据库的SQL运行数据,采集的方式可以为定时采集;专家模块102通过分析上述采集到的数据得到数据库系统性能曲线,按照优化规则,对数据库系统配置进行优化,启动优化的条件可以是数据库系统性能下降。该系统可以对数据库系统性能进行长期跟踪,按照设置的优化规则进行全面的自动优化,而无需人工参与,能适应应用场景和应用习惯发生变更的情况。
本发明实施例提供的实现数据库系统自动优化的系统,专家模块102中还可以进一步包括检测模块,用于对数据库系统优化后的性能进行检测。如果该检测模块检测出优化后数据库系统的性能得到了提升,可以不执行操作并重新按照上述系统工作方式进行新的优化,如果该检测模块检测出优化后数据库系统性能反而下降,将自主学习数据库系统性能下降的配置,在优化规则中更新造成数据库系统性能下降的相关配置对应的优化规则,并将数据库系统的所有配置恢复到上一次优化后的配置状态。因此,本发明实施例提供的实现数据库系统自动优化的系统中,优化规则可以动态更新,更新的依据就是检测模块对优化后数据库性能的检测结果。在对数据库系统进行第一次优化时,使用的优化规则是优化开始之前设置的优化规则,在第一次优化之后的优化中,使用的优化规则是本次优化之前最近一次优化中更新后的优化规则。
专家模块102中进一步包括检测模块后,本发明实施例提供的实现数据库系统自动优化的系统每一次对数据库系统的配置进行自动优化后,都将检查优化后数据库系统性能的提升情况,因此当自动优化后如果数据库系统的性能没有按照预期得到提升,可以自动恢复上一次成功优化后的配置状态,不会对数据库系统造成影响。并且,专家模块102中的检测模块可以自主学习引起数据库系统性能下降的相关配置,更新这些优化规则,使优化规则不断得到修正,从而防止数据库系统优化后可能导致性能下降的情况。
图2示出了本发明实施例实现数据库系统自动优化的系统与数据库系统及应用系统的关系,即应用系统通过该自动优化系统访问数据库系统。
数据库系统、应用系统和本发明实施例提供的实现数据库系统自动优化系统都以操作系统为平台运行,而操作系统中的操作都按照进程划分。本发明实施例提供的实现数据库系统自动优化的系统,可以是一个独立进程,也可以和应用系统是同一进程。图3示出了应用系统和数据库系统自动优化系统的同一进程示意图。在实际应用中,数据库系统自动优化系统的进程也可以是不同于应用系统的单独进程,例如图2也可以表示数据库系统自动优化系统与应用系统是不同的进程。
下面对本发明实施例提供的实现数据库系统自动优化的方法进行详细说明,图4示出了本发明实施例提供的实现数据库系统自动优化的方法较佳实施方式流程,该流程包括步骤401采集数据库系统、操作系统、应用系统的性能数据和数据库系统的SQL运行数据。
本步骤中,采集数据的方式可以为根据实际需要设置采集数据的时间间隔,再按照设置时间间隔进行定时数据采集。每一种数据的配置情况都与数据库系统的性能有直接关系。上述采集数据的方式为一种较佳实施方式,也可以根据实际应用情况采集上述数据的一种或几种作为后续优化的分析依据。
步骤402通过采集的数据分析数据库系统性能,根据优化规则对数据库系统配置进行优化。
本步骤中,分析步骤401中采集的数据,获得对应这些数据配置的数据库系统性能曲线。按照优化规则,对数据库系统相关配置进行优化。优化启动的条件可以为数据库系统性能下降。
本发明实施例提供的实现数据库系统自动优化的方法,可以根据采集到的性能数据和SQL运行数据,对数据库系统配置进行优化,优化可以依据优化规则进行。按照这种方法,实现对数据库系统全面长期的自动优化,无需专人维护优化,可以降低维护成本。如果考虑对优化后的数据库系统性能进行检测,所述步骤302之后可以进一步包括检测优化后数据库系统的性能。
上述本发明实施例提供的实现数据库系统自动优化的方法较佳实施方式可以应用在图1所示的系统中,图5示出了本发明实施例实现数据库系统自动优化的方法基于图1系统的流程,流程开始后包括以下步骤步骤501性能数据采集模块采集操作系统、数据库系统和应用系统的性能数据,提供给专家模块。
本步骤中,性能数据采集模块通过操作系统提供的API或者工具软件,获得操作系统内存分布数据,采集操作系统、数据库系统和应用系统的内存使用数据;通过操作系统提供的API或者工具软件,采集操作系统、数据库系统和应用系统的CPU占用数据;通过数据库系统提供的API,采集数据库系统高速缓存使用数据。这些性能数据的配置均对数据库系统的性能有直接影响。可以预先设置采集数据的时间间隔,按照时间间隔定时采集上述数据。
步骤502SQL运行数据采集模块采集数据库系统的SQL运行数据,提供给专家模块。
本步骤中,SQL运行数据采集模块采集以执行频度高为排序项的SQL语句列表、以访问频度高、更新频度高为排序项的数据表列表和执行SQL时数据表索引的使用情况数据。SQL运行数据对数据库系统的性能有直接影响。可以预先设置一个采集数据的时间间隔,按照该时间间隔实时采集上述数据。
上述步骤501和步骤502的执行顺序还可以有以下两种情况。第一种为步骤501和步骤502交换执行顺序,即SQL运行数据采集模块先采集数据库系统的SQL运行数据,性能数据采集模块再采集操作系统、数据库系统和应用系统的性能数据。第二种为步骤501与步骤502可以并行执行,即同SQL运行数据采集模块采集数据库系统的SQL运行数据,以及性能数据采集模块采集操作系统、数据库系统和应用系统的性能数据可以并行执行。上述描述的步骤501和步骤502执行顺序的改变不会对后续数据库系统的性能分析造成影响。
步骤503专家模块通过性能数据采集模块提供的性能数据,以及SQL运行数据采集模块提供的SQL运行数据,分析数据库系统性能,按照优化规则对数据库系统的配置进行优化。
本步骤中,专家模块分析性能数据采集模块提供的性能数据,以及SQL运行数据采集模块提供的SQL运行数据,获得数据库系统的相关性能曲线。根据对数据库性能的分析结果,专家模块对数据库系统的配置进行优化,优化时依据优化规则,其中启动优化的条件可以为数据库系统性能下降。本步骤中所述的优化规则在初始设置之后可以动态更新,也就是说第一次数据库系统的优化流程所使用的优化规则是流程开始前设置的初始优化规则,第一次优化流程之后的每一次数据库系统的优化流程中所使用的优化规则,都是本次优化流程之前最近一次优化流程中更新过的优化规则。优化规则的具体更新方法在后续步骤中详细描述。
步骤504专家模块中的检测模块对优化后的数据库系统性能进行检查。
本步骤中,专家模块中的检测模块在数据库系统配置优化后,自动检查优化后的数据库系统性能。
步骤505判断步骤504中检测的数据库性能是否提升,如果优化后数据库系统性能得到提升,则返回流程开始状态,如果优化后数据库系统性能下降继续执行步骤506。
本步骤中,如果步骤504中的检测结果是优化后数据库系统性能得到了提升,则专家模块可以不执行操作。本步骤中的返回流程开始状态是指,在本步骤之后继续按照步骤501~步骤505所述的流程对数据库系统的性能进行优化。如果检测结果是优化后数据库系统性能反而下降,则继续执行步骤506。
步骤506专家模块中的检测模块自主学习数据库系统性能下降的配置,在优化规则中更新造成数据库系统性能下降的相关配置对应的优化规则。
本步骤中,专家模块中的检测模块检查出优化后的数据库系统性能反而下降,则自主学习引起数据库系统性能下降的相关配置。在设置的优化规则中,找到引起数据库系统性能下降的相关配置所依据的优化规则,修改或删除该优化规则。
步骤507专家模块中的检测模块将数据库系统的所有配置恢复到上一次优化后的配置状态,返回流程开始状态。
本步骤中,专家模块中的检测模块将数据库系统的所有配置都恢复到上一次优化后的配置状态,所述返回流程开始状态是指专家模块将数据库系统的所有配置都恢复到上一次优化后的配置状态之后,继续按照步骤501~步骤506进行新的优化,新的优化流程中所使用的优化规则为本次流程中更新后的优化规则。
上述步骤506和步骤507也可以交换执行顺序,即专家模块中的检测模块先将数据库系统的所有配置恢复到上一次优化后的配置状态,再自主学习引起数据库系统性能下降的相关配置,删除或修改该配置对应的优化规则,更新优化规则后返回流程开始状态,继续按照步骤501~步骤506进行新的优化,新的优化流程中所使用的优化规则为本次流程中更新后的优化规则。
上述步骤501~步骤507描述的本发明实施例实现数据库系统自动优化的方法较佳实施方式基于图1所示系统的流程,实现对数据库系统性能的长期且全面的优化,无需专人进行优化维护,降低维护成本,每次优化后的数据库系统性能检测,保证优化后数据库系统性能下降时将数据库系统配置恢复到上一次优化后的配置状态,防止由于优化导致数据库系统性能下降造成的影响。
本发明实施例提供的实现数据库系统自动优化的方法及系统,可以针对各种数据库系统,例如Sybase ASE数据库系统、MS SQL Server数据库系统、IBM DB2数据库系统或Oracle数据库系统等。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种实现数据库系统自动优化的系统,其特征在于,该系统包括采集模块和专家模块;所述采集模块,采集影响数据库系统性能的相关数据提供给专家模块;所述专家模块,通过采集模块提供的采集数据分析数据库系统性能,按照优化规则对数据库系统配置进行优化。
2.如权利要求1所述的系统,其特征在于,所述影响数据库系统性能的相关数据包括数据库系统、和/或操作系统、和/或应用系统的性能数据,和/或数据库系统结构化查询语言SQL运行数据;所述采集模块包括性能数据采集模块和SQL运行数据采集模块;所述性能数据采集模块,采集数据库系统、和/或操作系统、和/或应用系统的性能数据,将采集的数据提供给专家模块;所述SQL运行数据采集模块,采集数据库系统的SQL运行数据,将采集的数据提供给专家模块。
3.如权利要求1或2所述的系统,其特征在于,所述专家模块中进一步包括检测模块,用于检测优化后的数据库系统性能,优化后数据库系统性能下降时自主学习引发数据库系统性能下降的配置,更新优化规则,并将数据库系统的所有配置恢复到上一次优化后的配置状态。
4.一种实现数据库系统自动优化的方法,其特征在于,该方法包括A、采集影响数据库系统性能的相关数据;B、通过采集数据分析数据库系统的性能,按照优化规则对数据库系统的配置进行优化。
5.如权利要求4所述的方法,其特征在于,所述影响数据库系统性能的相关数据包括数据库系统、和/或操作系统、和/或应用系统的性能数据,和/或数据库系统的SQL运行数据;步骤A所述采集影响数据库系统性能的相关数据的方法为设置采集间隔时间,定时采集数据库系统、和/或操作系统、和/或应用系统的性能数据,和/或数据库系统的SQL运行数据。
6.如权利要求5所述的方法,其特征在于,所述数据库系统、和/或操作系统、和/或应用系统的性能数据包括数据库系统的内存使用数据、中央处理器CPU占用数据、高速缓存使用数据,和/或操作系统的内存分布数据、CPU占用数据,和/或应用系统的内存使用数据、CPU占用数据;所述采集数据库系统、和/或操作系统、和/或应用系统的性能数据的方法为通过操作系统提供的应用程序接口API或工具软件获取操作系统内存分布数据,采集操作系统、数据库系统和应用系统的内存使用数据;通过操作系统提供的API或工具软件,采集操作系统、数据库系统和应用系统的CPU占用数据;通过数据库系统提供的API,采集数据库系统高速缓存使用数据。
7.如权利要求5所述的方法,其特征在于,所述数据库系统的SQL运行数据包括以执行频度高为排序项的SQL语句列表,和/或以访问频度高、更新频度高为排序项的数据表列表,和/或执行SQL时数据表索引的使用情况数据。
8.如权利要求4或5所述的方法,其特征在于,步骤B所述通过采集数据分析数据库系统性能的方法为通过采集数据得到数据库系统性能曲线,通过曲线分析数据库系统的性能。
9.如权利要求4所述的方法,其特征在于,所述优化规则包括内存分配优化规则,和/或中央处理器CPU分配优化规则,和/或高速缓存优化规则,和/或索引优化规则,和/或SQL语句优化规则,其中所述内存分配优化规则,定义操作系统的内存分布最大值大于操作系统、数据库系统和应用系统内存最大使用值之和时,为数据库系统分配其内存最大使用值;操作系统的内存分布最大值小于操作系统、数据库系统和应用系统内存最大使用值之和时,根据应用情况为数据库系统加权分配内存使用值;所述CPU分配优化规则,定义根据应用需要为数据库系统、应用系统和操作系统配置占用的CPU数量;所述高速缓存优化规则,定义根据应用需要为数据库系统配置需要的高速缓存使用值;所述索引优化规则,定义存在索引使用错误或缺少索引时,在数据库系统空闲时重新创建该索引;存在索引始终没有使用或使用频率低,且数据空间容量不足时,删除该索引;所述SQL语句优化规则,定义由于使用频率高的SQL语句的编写,导致其索引没有正确使用时,根据SQL语义重新编写该SQL语句。
10.如权利要求9所述的方法,其特征在于,所述步骤B之后进一步包括C、检查优化后的数据库系统性能,如果数据库系统性能下降,自主学习引起数据库系统性能下降的相关配置,在优化规则中查找自主学习所得的引起数据库系统性能下降的相关配置对应的优化规则,删除或修改该优化规则,并将数据库系统的所有配置恢复到上一次优化后的配置状态。
全文摘要
本发明公开了一种实现数据库系统自动优化的系统,该系统包括采集模块和专家模块。所述采集模块,采集影响数据库系统性能的相关数据提供给专家模块;所述专家模块,通过采集模块提供的采集数据分析数据库系统性能,按照优化规则对数据库系统配置进行优化。本发明还公开了一种实现数据库系统自动优化的方法。应用本发明,可以实现对数据库系统进行全面长期的自动优化。
文档编号G06F17/30GK101059810SQ200710087530
公开日2007年10月24日 申请日期2007年3月16日 优先权日2007年3月16日
发明者林云凌 申请人:华为技术有限公司