首页 > 范文大全 > 正文

Kalman原理在数据库性能中的应用研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇Kalman原理在数据库性能中的应用研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要: 受系统环境的影响和制约,数据库系统在运行过程中性能会慢慢下降,为减小数据库管理员工作盲目性,应用kalman原理提出预测数据库性能模型。数据库查询划分为三个“静态SQL模型”,介绍kalman(卡尔曼)滤波原理和优化器分析中利用kalman原理预测数据库性能的方法。

关键词: kalman算法 ;关系数据库;数据库性能预测模型

0 引言

1960年,R.E.Kalman提出了卡尔曼滤波,这是一个不断地预测、修正的递推过程,在求解时不需要将大量的观测数据进行存储,在得到新的观测数据时,可随时计算得出新的参数滤波值,卡尔曼滤波在动态定位数据处理中得到广泛应用。

卡尔曼滤波模型中,要求观测方程是线性形式、动态噪声和测量噪声是白噪声,而实际的观测量与状态参数间是非线性函数。非线性二次以上高次项舍去,以及周跳等观测粗差等原因,使观测方程产生模型误差。卡尔曼滤波线性模型的最优估计是建立在给定函数模型和随机模型基础上的,如果实际的函数模型和随机模型存在误差,不仅得不到最优估计,而且可能造成滤波发散。本文基于Kalman理论,在数据库性能优化方面进行了研究,希望在数据库性能下降前利用Kalman理论能够有所预测和对策,以达到性能优化的目的。

在关系数据库进行SQL查询时,客户端首先把SQL语句发给服务器端,然后服务器端进行SQL语句解析:查询高速缓存是否存在相同语句的执行计划、语句合法性检查、语言含义检查、获得对象解析锁、数据访问权限的核对、确定最佳执行计划。最后执行SQL语句,提取数据库数据发送到客户端。

随着计算机应用以及人们对系统需求的复杂化,数据库在查询性能优化方面面临着一定的挑战:一是计算机资源、工作负载;二是优化器性能;三是SQL语句复杂性不断增加,导致执行计划衰退。

据此,我们给出如下的查询优化过程:1)首先确定基线。这个基线就是保持数据库正常运转的基本指标。例如:sql缓存区缓存命中率、数据字典缓存命中率、内存排序命中率。2)提出假设,模拟故障,找出解决方案。3)采集操作系统和数据库的统计数据,与关系数据库基线进行比较。4)建立数据库查询性能模型。5)实现和测量这个模型,检查瓶颈的解决。对于第4)点,由于数据库的性能数据是线性非连续的数据,所以可以利用kalman滤波原理建立数据库查询优化性能模型, 正确预测关系数据库系统在高负载情况下的性能。

1 模拟数据库性能模型数学方法

考虑用以下两种数学方法进行数据统计分析。

2 通过性能工具Statspack对性能测量

3 应用Kalman原理分析数据库

1)首先,确定系统环境。

假设系统环境:数据库优化器无问题;CPU频率比较低;计算机工作负载呈高斯分布。通过预测SQL复杂度比较高时的执行时间来对SQL语句进行预处理以此实现数据库性能提高。

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)与MATLAB包结合实现Kalman原理,并与现有的三个“静态SQL模型”进行比较,排查导致系统故障的可能原因。

4 结论

我们通过以上的Kalman原理将数据库各种状态和环境下的结果(例如:在优化器和计算机资源都有问题的情况下的模型)保存到一个知识库,然后通过逻辑推理和数据挖掘方法预测出关系数据库在通常情况下查询优化过程容易出现的问题点,我们以便给出优化措施。

参考文献:

[1]秦永元等编著,《卡尔曼滤波与组合导航原理》,西北工业大学出版社,2004.7.

[2]陆恺等编,《最优估计理论及其在导航中应用》,上海交通大学出版社,1990.8.

[3]梁国业、廖健平、编著,数学建模,冶金工业出版社,2004.