交通行业基于业务型数据库性能分析的一种程序优化检测方法

2021-09-26 12:43郭尽朝阿娜高子琴
中国信息化 2021年9期
关键词:视图程序数据库

郭尽朝 阿娜 高子琴

一、引言

当前交通行业在开发、实施各种业务类应用程序时,往往有以下两大痛点。一是,程序的性能质量无法评估和考核。当前的现状是,使用方通常能够轻易确认功能需求是否已实现,但难以确认为实现这些功能,其后台的代码质量、结构质量是否合理,是否造成了其他方面的影响。从而使程序上线之后,因性能质量不佳,为使用者带来的风险和经济损失。二是程序所需的系统资源无法精确评估。程序投入真实运营之前,无法较为精确的评估程序所需要的各种系统资源的数量,从而使企业在部署这些程序时,要么资源过多造成了较大的设备浪费,要么资源不足,影响上线之后的系统性能。本研究通过一种程序优化检测方法及系统,对企业研发的应用程序进行质量评估,从而确保应用程序开发的质量和运营效果。

二、研究对象与特点

(一)研究对象

本次研究对象为交通行业,所选取的样本为神朔铁路所有已经上线的业务系统。

(二)研究特点

当前交通行业的各种业务系统其业务源端都是关系数据库,在数据库端借助数据库的性能视图,可以了解和掌握各种业务软件访问数据库的代码特征和程序所对应的数据结构特征,这些特征表现为数据库运行期间的各种性能统计信息,并从这些统计数据中导出获得性能量度,在紧急情况下,访问这些量度在与当前的情况做比较,通过查看这些过去的事件统计信息以给当前的问题带来启发,由于数据库管理员必须自始至终都密切关注可能会对他们所管理的各个系统的可用性或者性能有负面影响的潜在性能问题,因此不断采集相关统计数据对于性能分析变得很重要。

1. 借助数据库性能视图

本研究的基本方法是借助对关系数据库性能视图中数据的定期采集,通过分析、比对实现程序性能质量的评估。本研究正是借助这些保存在数据库内存性能视图中的原始运行数据,通工加工分析,实现业务程序性能质量的评估的。

2.以结果为导向

本研究是以结果为导向的性能评估方法。我们认为软件的性能质量评估的结果毫无疑问应当与最终结果,即用户体验相一致或相接近,因此,本研究中衡量性能质量的各个指标,反映的是以用户体验相对应的各个维度。

三、研究方案

我们通过两套数据采集和处理方式,实现对程序质量从基本面到具体问题点的追溯分析。

(一)第一套方案:周期性数据采集+三层数据加工方法

1.周期性数据采集

分为三个采样频率。周期性地采集数据库性能视图内的信息,如Oracle数据库的各种V$开头的性能视图,Sqlserver则多为dm_开头的性能视图,DB2多为sysibmadmin下的表或视图。这些信息包括且不限于数据库状态、数据库结构、性能指标计数器、等待事件、SQL执行统计、SQL执行计划等;通过周期性的收集整理数据库性能视图,从而对关系数据库端的应用程序质量、数据结构质量和配置质量进行分析。

2.三层次数据加工

将获取到的大量目标数据库的原始运行数据进行时间切片、特征箍选等一系列数据加工,采样到的原始数据最多会进行三轮的箍选和加工,从而为软件前端的功能显示准备好直观明确的呈现内容。

具体的采集和加工逻辑如下图:

(二)第二套方案:触发式采集+算法库数据处理

因扰企业的应用类问题有一个主要的特点是,问题的原因往往只在问题刚刚引发时能够追踪到痕迹,很多应用类问题事后是无法被重现和追溯的。因此,我们采用一套独创的触发式逻辑,以确保能在问题刚刚发生(或刚刚出现征兆时)追踪并保留下问题的根源数据。具体如下:

在第一种周期性采样中,每分钟会收集数据库的状态、性能计数器等信息,因为当系统出现异常时,首先会体现到这些状态和性能计数器上,这样当监测系统在发现收集到的指标有异常时,首先确定是何种指标异常,然后再根据事先设置好的程序逻辑,立刻针对性的采集与这种异常相关的程序运行信息。这里提到的“事先设置好的程序逻辑”,在于我们在本研究中专门为多种已知的、不同问题,分别准备一套不同的程序处理逻辑,我们将所有这些不同程序处理逻辑的集合,称之为算法库,以应对不同问题的不同处理方法。

简单来说,整个触发式采集+算法库处理逻辑大概分為三个步骤:

步骤1:借助第一种方法周期性采集中的短周期采集,如每分钟一次扫描数据库性能视图中的各项性能计数器和状态信息。

步骤2:如果在短周期性采集中,一旦发现某一数据库的性能计数器或数据库状态信息异常,则触发针对这类异常问题信息的收集和处理。

步骤3:这类异常问题具体的数据收集方式和数据处理方法将根据事先存放在软件算法库中的逻辑进行。

步骤4:算法库的作用不光是数据采集与处理,还包括针对具体问题的数据个性化展示,不同的问题以不同可视化方式进行呈现。

四、研究结果

根据以上两套研究方案,我们对神朔铁路各个业务系统进行程序质量评估以及具体问题的详细分析,以下是本次研究得到的信息:

猜你喜欢
视图程序数据库
给Windows添加程序快速切换栏
简化化学平衡移动教学程序探索
“程序猿”的生活什么样
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
英国与欧盟正式启动“离婚”程序程序
《投影与视图》单元测试题
数据库
Django 框架中通用类视图的用法
数据库