APP下载

基于轻量数据挖掘方法的数据库锁表优化研究

2014-07-25陈震

赤峰学院学报·自然科学版 2014年24期
关键词:预测器数据库系统数据挖掘

陈震

(福州外语外贸学院,福建 福州 350202)

基于轻量数据挖掘方法的数据库锁表优化研究

陈震

(福州外语外贸学院,福建 福州 350202)

数据库系统负担着重要的事务处理任务,为了保证在负载过大时也可以提供事务处理能力,必须加强数据库系统,并且对其性能进行合理优化.通过DBA分析性能数据,并且优化系统是十分困难的办法,随着使用时间增长,系统负载波动与结构越来越复杂,利用数据库具备的系统进行自动优化,是解决当前问题的有效途径.本文分析了轻量数据挖掘如何优化数据库系统,并且着重研究了数据库锁表管理办法,使用性能优化数据,建立了基于锁表预测系统的神经网络预测器.经过实验证明,数据库系统可以得到16%的性能提升.

轻量数据;数据挖掘;锁表优化

大型信息系统需要DBMS进行统一调控,信息系统已经开始向网络化转移,用户可能在任何时间进行并发操作,加大了DBMS系统的负载.为了解决负载情况,释放系统资源,需要对数据库系统进行优化,提高系统反应速度,及时处理查询工作,这也是数据库系统最为重要的一项功能.由于DBA人工优化手段无法适应日益复杂的数据库系统,所以建立自我调节的数据库锁表系统十分重要,通过锁表测试神经网络,适当调整相关参数,优化系统性能,提高系统执行效率.

1 神经元网络特点

神经元网络是将简单神经元按照规则连接,通过网络化模拟大脑结构,采取学习算法收集信息,将知识存储在网络单元之间.神经网络与传统AI相比,具备较强的直观感与抗噪能力,根据不同的网络模型与算法,可以做到分类、优化、识别、预测和控制,进行数据挖掘时,主要使用前向神经网络分类规则.神经网络也存在一些缺点,黑箱性是其中最难以理解的学习过程,所以我们要建立完善的白化机制,并且根据规则确定权值矩阵,为数据挖掘提供有效手段.解决方案有两种,其一是使用系统辅助,在神经网络运行阶段,将输入与输出通过辅助系统处理,然后反向关联,完成神经元网络自动推理.此类方法可以将网络运行与解释分为两套系统,但是建设投资较大,灵活性低,所以在网络中使用训练好的规则,是当前数据挖掘中较为常见的方法.

在网络中进行数据挖掘,其目的主要有两点,即结构分解与非线性映射.结构分解主要以隐层节点与输出点作为目标,将网络分为单层子网,在简单的子网结构中挖掘信息.比较常见的算法是KT与MofM,但是KT算法通用性较差,并且对网络环境有一定要求,演算过程较为复杂,容易引起组合爆炸.为了解决这个问题,在处于大规模网络时,必须对网络结构进行删减,去除冗余节点.去除网络多余部分时,可以通过两段法进行调整,通过预处理修整动态部分,构造出联接情况不同的拓扑结构,清除多余节点.如果初始网络存在错误,就可以通过结构学习法进行处理,将隐层结点生成与网络删除变为动态控制,构建出简洁方便的结构.

在使用非线性映射进行网络提取时,通过网络输出与输入数据进行操作,避免网络隐层结构提升演算难度.根据相似权值提出的CSW算法,是非常典型的算法,但是目前在数据挖掘领域还存在很多问题,为了降低算法的复杂度,必须加强提取规则的适用性与理解性.在制定神经网络提取规则时,可以通过评估标准与训练提高网络性能,这也是今后研究的重点方向.

2 数据库锁表原理

数据库性能由多种因素决定,其中查询优化、信息更新、负载学习、资源分配等因素都会造成一定影响.其中资源分配是非常重要的部分,合理的分配可以大幅度加强系统性能,资源包括硬件与软件两种,硬件区域包括内存、CPU、网络设备等,软件包括缓冲、锁表、后台等.为了对锁表进行优化处理,必须了解锁表原理,根据运行机制提高系统性能,构建合理的优化模型.

2.1 数据加锁粒度

数据库系统内容庞大,为了保证数据不出现偏差,在更新前必须进行加锁.系统可根据不同系统提供相应级别的锁粒度,方便系统进行记录与储存,锁粒度由数据大小决定,例如一条记录更新时,需要加行级锁,但是大量数据更新时,就需要加表级锁.在用户同一时段大量操作时,都会选择小粒度锁,防止加锁冲突,一旦行级锁数量过多,超过锁表最大容量,系统就会自动转换一个行级锁为表级锁,节约锁表空间.表级锁粒度较大,容易降低系统并发度,行级锁粒度小,但是对内存空间消耗过多,这是一个固定的矛盾,只能合理安排储存方案,根据负载情况进行优化,使系统性能平稳运行.

2.2 内存资源分配

为了接纳并发用户提出的加锁要求,需要根据内存增加锁表大小,单纯增加锁表大小并不能带来优势,甚至可能带来负面影响.没有使用的内存空间完全可以应用在数据缓存之中,增大缓冲区可以提高存取命中率.锁表数量减少时,可以适当减小锁表大小,留出内存空间,扩大缓冲区域,提高系统整体性能.

2.3 解决死锁问题

一旦在同一时段内有大量并发数据进行存取,就可能导致死锁现象发生,目前解决死锁问题的方案有两种,分别为检测和预防.大多数DBMS都采取检测方法,发现死锁后,如果事务工作量较少,就需要回转事务,使停止的事务重新执行.系统需要定期进行检测,如果间隔过长,就会导致一些死锁存留,降低系统响应速度,如果间隔过短,就会浪费死锁检测开销,降低系统性能.死锁检测必须根据运行情况确定,并及时进行调整,确保系统高效运行.

2.4 加锁超时参数

SQL执行时,需要设置加锁超时参数,参数主要用于规定加锁时间,如果规定时间内没有获得锁资源,就需要将SQL语句回转.超时参数设置需要牺牲SQL执行力,确保并发度不被影响,保证系统总吞吐量.在设置参数时,必须参考数据冲突状况,如果数据冲突少,就表示SQL语句有更多数据加锁机会,所以将参数设置为较长的时间比较有利,如果时间过短,可能导致无法进行数据加锁,SQL语句自动退出,浪费执行资源.

3 系统优化实现方法

3.1 优化架构

优化系统主体模块为:数据采集、训练、规则引擎、预测器等,具体架构如图一所示.

图一 优化架构图

性能数据采集模块主要负责监视收集锁表参数,性能数据在训练过程中通过预测器处理,在优化阶段通过规则引擎二次处理.通过收集到的数据,对预测器进行基本训练,大量数据训练可以提高系统性能,并且根据预测器制定锁表参数,提高神经网络预期性能.规则引擎承担全部优化过程,通过专家知识对锁表进行调整优化,通过规则集转变为形式化数据,规则引擎负责运行.选择规则集调整参数,通过预测器确定调整幅度,规则引擎由ABLE语言进行描述.预测器的主要功能为预测系统性能,根据收集到的大量数据进行训练,挖掘数据中存在的知识,经过训练后可以提高预测能力,辅助规则引擎改变参数,并且提出调整幅度.

3.2 锁表性能指标

锁表性能主要定义为死锁率与平均锁时间,死锁率由10000个样本组成,平均锁时间是加锁时间总和除以加锁数量得到的平均数,参数可以在DBMS中获得.锁表性能由热点访问、并发事务、锁表大小、数据分布等情况决定.

3.3 训练数据收集

锁表性能受死锁检测、锁表大小、SQL语句锁、容纳总量等参数影响,为了找出性能与参数之间的关系,需要进行针对性实验.每个实验分别考察不同参数的影响情况,设置缺省值,对考察参数进行小范围调整,将参数与锁表性能的关系联系起来.由于参数组合穷尽难度极大,所以在获得基本数据后(10000组样本),可以通过预测器学习与固化关系,通过预测器的辅助能力确定组合参数.

4 实验

4.1 实验准备

为了确保算法有效,通过实验进行确认,服务器采取IBMSystemx3650M4(7915R51)双插槽服务器,该服务器拥有XeonE5-2650v22.6GH的CPU,内存容量为8GBECC DDR3,操作系统为WindowsServer,实验采取DB2进行模拟,通过TPC-C负载,规模为1GB.实验过程主要分为三阶段:初始化、预热、优化.为了保证迭代数据规模与特性相同,必须在运行前导入相同的数据文件,方便对比优化效果.数据库系统必须进行预热,基本为6-8分钟负载运行,保证性能指标处于稳定状态.运行自我优化算法,根据参数调整建议,进行局部调整.由于DB2并不能进行动态修改,所以需要在关闭DBMS后进行修改,根据参数值设置系统,启动DBMS后,测量数据库优化效果.

4.2 优化结果

根据实验统计,优化前系统吞吐量为3460tpmC,此数据由系统缺省参数得出.在使用本方案后,吞吐量上升为3985tpmc,系统性能与优化前相比有16%的提高,通过IBM ConfigurationWizard进行优化后,可达4280tpmC.由于IBM ConfigurationWizard进行系统调整时,将锁表参数、缓冲区、后台进程与其它关键因素都进行了综合优化,优化结果要明显好于单独进行数据库锁表优化.通过实验结果可以看出,对数据库锁表进行优化可以提高系统性能,为了全面优化系统,需要将DBMS子系统分别进行优化,确保子系统性能提升,保证系统良好运行.

5 结语

本文根据数据库的自我优化能力,以轻量数据挖掘方法为基本依据,进行了数据库锁表优化.同时以神经网络为原形,制作模型预测器,在基础数据中学习改进,并且具备较强的预测能力,为参数调整提供具体依据.数据库锁表需要利用规则引擎进行优化,根据引擎调整相关参数与方向,并且从预测器中获得调整幅度以及精准的调整参数,提高系统运行能力.根据实验证明,系统性能有很大提高,未来将逐步对负载波动与数据变化进行分析,加强预测器性能,同时进行算法扩展,使其性能得到大幅度提升,解决系统优化问题.

〔1〕王奕首,史彦军,滕弘飞.用改进的散射搜索法求解带平衡约束的圆形Packing问题 [J].计算机学报,2012,32(6):1214-1221.

〔2〕王晓晴,唐加福.基于分散搜索的零部件跨单元生产的单元管理方法[J].机械工程学报,2010(10):125-131.

〔3〕Weikum G,Monkeberg A,Hasse C,etal.Self-tuning databasetechnologyandinformationservices:fromwishful thinkingtoviableengineering[C].ProceedingsofInternationalConferenceVery Large Databases(VLDB).Hong Kong,China:VLDBEn-dowment,2012(01):20-31.

〔4〕邹志文,朱金伟.数据挖掘算法研究与综述[J].计算机工程与设计,2010(9):234-236.

〔5〕刘明亮,李雄飞,孙涛,等.数据挖掘技术标准综述[J].计算机科学,2010(6):5-9.

〔6〕王刚,黄丽华,张成洪,等.数据挖掘分类算法研究综述[J].科技导报,2012(12):73-75.

〔7〕张雪江,朱向阳,钟秉林,等.基于退火演化算法的知识获取机制的研究[J].控制理论与应用,2011(1):93-98.

TP311.13

A

1673-260X(2014)12-0023-02

猜你喜欢

预测器数据库系统数据挖掘
输入延迟系统的切换伪预测镇定控制器
探讨人工智能与数据挖掘发展趋势
一种改进型TAGE分支预测器的实现
微细铣削工艺数据库系统设计与开发
江苏省ETC数据库系统改造升级方案探讨
基于并行计算的大数据挖掘在电网中的应用
爱情预测器
实时数据库系统数据安全采集方案
核反应堆材料数据库系统及其应用
一种基于Hadoop的大数据挖掘云服务及应用