基于Kalman原理的关系数据库性能模型

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

11基于Kalman原理的数据库性能预测模型的研究刘竹林2(石家庄信息工程职业学院河北石家庄市050035)摘要:在数据库系统运行中,由于受系统环境的制约,其性能会慢慢会下降,对于数据库管理员经常为了提高数据库性能而绞尽脑汁,最后达不到应有效果。本文提出应用Kalman原理提前对性能进行预测来减小数据库管理员的盲目性。首先把数据库查询划分为三个“静态SQL模型”,介绍了kalman(卡尔曼)滤波原理和优化器分析中利用kalman原理预测数据库性能的方法。关键词:kalman算法;协方差;关系数据库;数据库性能预测;中图法分类号:TP302.7文献标识码:A1.引言卡尔曼滤波是一个不断地预测、修正的递推过程,由于其在求解时不需要存储大量的观测数据,并且当得到新的观测数据时,可随时算得新的参数滤波值,便于实时地处理观测结果,因此卡尔曼滤波被越来越多地应用于动态定位数据处理中。在卡尔曼滤波模型中,要求观测方程是线性形式、动态噪声和测量噪声是白噪声,而实际的观测量与状态参数间是非线性函数。非线性二次以上高次项舍去,以及周跳等观测粗差等原因,使观测方程产生模型误差。卡尔曼滤波线性模型的最优估计是建立在给定函数模型和随机模型基础上的,如果实际的函数模型和随机模型存在误差,不仅得不到最优估计,而且可能造成滤波发散。1960年,R.E.Kalman提出了卡尔曼滤波,它是一种时域滤波方法,采用状态空间方法描述系统,算法采用递推形式,数据存储量小,不仅可以处理平稳随机过程,也可以处理多维和非平稳随机过程。随着电子计算机的迅速发展和广泛应用,卡尔曼滤波以其设计简单易行、存储空间小、动态实时处理等优点在工程实践中受到了高度重视,成为推广研究和应用的主题。目前,卡尔曼滤波理论作为一种最重要的最优估计理论,已经被广泛应用于通信工程、系统工程、工业过程控制、遥感等各个领域,成为当前国际上研究的一大热点。本文基于Kalman理论,作者在数据库性能优化方面进行了研究,希望在数据库性能下降前利用Kalman理论能够有所预测和对策,以达到性能优化的作用。在关系数据库进行SQL查询时,客户端首先把SQL语句发给服务器端,然后服务器端进行SQL1刘竹林(1962-),男,河北石家庄人,硕士,副教授。主要研究方向:软件工程,数据库优化2语句解析:查询高速缓存是否存在相同语句的执行计划、语句合法性检查、语言含义检查、获得对象解析锁、数据访问权限的核对、确定最佳执行计划。最后执行SQL语句,提取数据库数据发送到客户端。但是,随着计算机应用和人们对系统需求的复杂性,数据库的查询性能优化面临着如下几个方面的挑战:(1)计算机资源、计算机工作负载(包括数据源和SQL的执行);(2)优化器(统计数据分析,SQL配置文件分析,访问路径分析,SQL结构分析,SQL处理引擎,生成优化方案)的性能。(3)SQL语句复杂性不断增加,导致执行计划衰退。据此,我们给出如下的查询优化过程:(1)首先确定基线。这个基线就是保持数据库正常运转的基本指标。例如:sql缓存区缓存命中率、数据字典缓存命中率、内存排序命中率。(2)提出假设,模拟故障,找出解决方案。(3)采集操作系统和数据库的统计数据,与关系数据库基线进行比较。(4)建立数据库查询性能模型。(5)实现和测量这个模型,检查瓶颈的解决。对于第(4)点,由于数据库的性能数据是线性非连续的数据,所以可以利用kalman滤波原理建立数据库查询优化性能模型,正确预测关系数据库系统在高负载情况下的性能。2.模拟数据库性能模型的数学方法为了把系统控制论应用到数据库性能优化中,可以考虑如下的两种数学方法作为数据统计分析工具。(1)高斯分布公式高斯分布是描述影响数据库性能的有效的统计方法。公式如下:a、b与c为实常数,且a0。由于数据库的查询优化性能数值的概率分布有时候不一定呈高斯分布,但是为了使用高斯白噪声(在这里白噪声可以认为是被研究的计算机系统资源本身不足造成的性能值)来模拟(可以大大简化性能模型),我们可以使用中心极限定理把数据库的性能数值的概率分布描述成一个高斯分布,然后使用MATLAB软件包或者SCILAB软件包等实现。(2)kalman原理的基本思想kalman原理的基本思想是:采用信号与噪声的状态空间模型,利用前一时刻的预测值(即根据以往数据给出的预测值)和现在时刻的测量值,结合各自的高斯白噪声来预测现在时刻的实际值。Kalman滤波原理的五个公式是这样的:X(k|k-1)=AX(k-1|k-1)+BU(k)3P(k|k-1)=AP(k-1|k-1)A’+QX(k|k)=X(k|k-1)+Kg(k)(Z(k)-HX(k|k-1))Kg(k)=P(k|k-1)H’/(HP(k|k-1)H’+R)P(k|k)=(I-Kg(k)H)P(k|k-1)其中:X(k|k-1)是k-1时刻的预测值,X(k-1|k-1)是k-1时刻的测量值。A和B是系统参数,已值量,对于多模型系统,它们是矩阵。对于单模型,A=B=1。U(k)是系统控制量。P(k|k-1)是X(k|k-1)对应的协方差。P(k-1|k-1)是X(k-1|k-1)对应的协方差。A’表示A的转置矩阵,Q和R是矩阵协方差。H是k时刻的动态干扰阵,X(k|k)是现在时刻k的预测值,Kg为Kalman增益。I是个矩阵,对于单模型,I=1。3.通过性能工具Statspack对性能测量本文以oracle数据库的性能测量为例,Statspack是DBA和Oracle专家用来诊断数据库性能的强有力的工具。通过Statspack我们可以很容易的确定Oracle数据库的瓶颈所在,记录数据库性能状态。Statspack正确安装以后,我们就可以设置定时任务,开始收集数据了。可以使用spatuo.sql来定义自动任务。dbms_job.submit(:jobno,'statspack.snap;',trunc(sysdate+1/24,'HH'),'trunc(SYSDATE+1/24,''HH'')',TRUE,:instno);这个job任务定义了收集数据的时间间隔:一天有24个小时,1440分钟,那么:1/24HH每小时一次,1/48MI每半小时一次,1/144MI每十分钟一次,1/288MI每五分钟一次最后生成分析报告SQL@spreport(调用spreport.sql可以生成分析报告)4.Kalman原理分析方法(1)首先,确定系统环境在实践中发现,影响数据库性能的因素除上面的三点外,还跟数据库的逻辑设计和物理实现有一定关系。我们不能抛开系统的物理环境来单独研究数据库性能。为了能够清楚描述关系数据库性能模型,我们假设系统环境如下:(1)数据库优化器没有任何问题,可以生成SQL最佳执行计划;(2)CPU频率较低,内存不足,因而导致SQL语句执行时间越来越长。(3)计算机的工作负载呈高斯分布。这种情况下,由于SQL语句在不同时刻执行时间是不同的,所以需要预测在SQL复杂度比较高时的执行时间以便对SQL语句进行预处理来提高数据库性能。4(2)计算k时刻的测量值X(k|k)的递归算法这样,当系统进入k+1状态时,算法就可以自回归的运算下去。对于前面的系统假设,数据库优化器是很好的,没有问题,所以系统属于单模型系统,A=1,I=1,U(k)=0。为描述方便,令干扰协方差Q=0.00001,R=0.001*0.001,初始协方差P(0|0)=1。(3)利用Kalman公式,结合MATLAB包来实现Kalman原理,然后和我们现有的三个“静态SQL模型”比较,可以找出系统可能的故障原因。5.结论利用Kalman滤波原理估算数据库性能,并利用过去的经验数据对未来状态进行预测的方法是一种将系统控制理论和数据库理论结合的大胆尝试,它用于实现一个预纠错型的预测器,在预先设定条件下可以实现预测错误协方差。这种把kalman数据库性能模型用于解决DBMS(数据库管理系统)的性能问题的思维方法将使数据库性能的研究和DBMS的研发应用得到更大提高。但是在实际应用过程中,我们不得不考虑如下问题:(1)在考虑提高数据库性能的同时也要考虑性能和安全的平衡问题:增加安全往往降低性能,增加性能可能威胁系统安全。(2)必须同时调整客户机、网络、服务器这三个相互依存的组成部分使其达到性能同步才能产生最佳的数据库性能。我们通过以上的Kalman原理对数据库各种状态和环境下的结果(例如:在优化器和计算机资源都有问题的情况下的模型)保存到一个知识库,然后通过逻辑推理和数据挖掘方法预测出关系数据库在通常情况下查询优化过程容易出现的问题点,我们以便给出优化措施。参考文献[1]《卡尔曼滤波与组合导航原理》秦永元等编著西北工业大学出版社2004.7[2]《最优估计理论及其在导航中应用》陆恺等编上海交通大学出版社1990.8[3]《数据库设计与ORACLE应用教程》刘竹林编著清华大学出版社2009。[4]《Oracle关系数据库实用教程》刘竹林编著北京师范大学出版社2007。[5]周概容编著,概率论与数理统计大讲堂,大连理工大学出版社,2004年10月。[6]梁国业廖健平编著,数学建模,冶金工业出版社,2004。5

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功