浅谈数据库对电信计费的优化及应用

来源 :科技资讯 | 被引量 : 0次 | 上传用户:hbimac
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:随着数据库应用系统中数据的增加,系统的响应速度成为系统设计中需要解决的主要问题。由于用户对数据库的要求越来越高,因此必须对数据库进行优化。系统优化的一个很重要的方面就是SQL语句本身的优化,文章从应用的角度论述了SQL语句优化的一些方法。
  关键词:数据库 优化 SQL Oracle
  中图分类号:TP3 文献标识码:A 文章编号:1672-3791(2012)12(b)-0031-01
  在信息化告诉发展的今天,数据库的竞争和更新技术日新月异,部署有ERP、CRM等关键应用的企业中,数据库是不可或缺的组成部分。本文结合Orac数据库,并通过多年的工作经验,谈谈SQL的一些优化方法在计费帐务核查中应用。
  1 SQL的一些优化方法在计费帐务稽核中的应用
  在目前的帐务稽核中,所有的检查都是通过编写SQL语句向数据库提交需求的,面对全省同时提交的数百个数据需求,服务器接受的任务过多,往往会出现任务被吊起、长时间不响应的现象,甚至影响了帐务结算工作。经过核查,造成死锁的原因很大部分是因为提交的语句存在各种语法或逻辑问题,易造成死锁,极大的浪费了系统资源。因此必须对编写和提交的SQL语句进行优化,减少系统资源被无效占用和损耗,这是提高帐务结算及稽核效率,按期完成工作的前提。
  1.1 依据“共享池中重用SQL语句”的原则,规定统一的语句语法
  Oracle提供在数据库中存储代码的能力。当应用系统开始运行时,从数据库中读取代码传递到共享池中去处理。从数据库中取出的代码是编译过的并驻留在共享池中。当SQL语句被传递给Oracle处理时,如果Oracle接受了一个与共享池中的语句相一致的语句,就重用共享池中的语句。两条SQL语句必须是语法、文本完全相同,才能视为可共享的SQL,利用Oracle的共享区。
  帐务稽核工作是由全省各地本地网的人员同时参与,人员较多且语句的编写思路均存在差异,但最终的需求是一致的,依据共享原则,由区公司帐务处理部门按照稽核要求和内容,规定稽核点和稽核方法,下发经过整理的具有标准格式、大小写以及相同变量等遵循约定的稽核语句和过程,从而可以最大限度的重用共享池中的SQL语句。
  1.2 对索引的有效利用
  在Oracel的执行规则中,如果目标表无索引、语句中无条件限定、条件指定为NULL或者是不相等、或将条件在表达式里使用以及使用Like操作以及值以‘%’开始等等,系统会进行全表扫描,效率低下,因此在语句的编写中应避免上述情况,尽量采用能够使用索引的条件,对于必须使用到的列在使用前务必建立相应的索引。
  最基本的客户、账户、用户三级关系,在查询或其他应用中均会用到这三列,系统内的表在这三列上均建有索引,因此在进行帐务稽核或者后期的数据提取中,应对涉及到此字段的临时表建立相同的单列索引,在有索引的列上进行条件限定,如下实例:
  (1)及时建立索引:
  create table tmp_alt_check_1009 as
  select*from tmp_alt_check_1009_dsb
  union all
  select*from tmp_alt_check_1009_yhz;
  create index tmp_alt_check_1009_serv on tmp_alt_check_1009 (serv_id);
  create index tmp_alt_check_1009_cust on tmp_alt_check_1009 (cust_id);
  create index tmp_alt_check_1009_acct on tmp_alt_check_1009 (acct_id);
  上述应用中对新建表tmp_alt_check_1009分别建立了serv_id,acct_id,cust_id的单列索引,以便在其后的使用中提高搜索效率。
  (2)条件限定时避免使用Like操作或者限定值以‘%’开始,不使用NULL或者是不相等。
  如:将select*from product_offer_t where region_id like‘1020%’;
  替換为:
  select*from product_offer_t where region_id=’1020’;
  将select*from product_offer_t
  Where pricing_pla_id is not null or pricing_pla_id<>0;
  替换为:
  select*from product_offer_t Where pricing_pla_id>0;
  通过以上细节的注意和替换,可避免系统对全表进行扫描,有效利用索引,提高系统响应效率。
  1.3 使用选择性好的索引
  索引的选择性是指索引列里不同值的数目与表中记录数的比。最好的可能性选择是1.0,即表内索引列上无重复记录。
  在做帐务稽核中,常常会基于某种条件和需求建立一些临时表,并为临时表建立索引,在临时表的建立和使用中,应判断建立索引的字段的选择性和有效性的好坏,避免低效率的操作和资源的浪费。
  1.4 根据实际情况区别使用UNION ALL和UNION操作
  最常用的集操作是UNION和UNION ALL操作,UNION操作使多个记录集联结成为单个集,返回记录的单个集并且没有重复的行,进行表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。UNION ALL是一个行操作,操作允许重复,不要求SORT UNIQUE操作,从而节省了开销。当UNION ALL操作产生巨大的结果集时,不需要任何排序便返回记录给应用,检索的响应时间更快,对临时空间的要求也更低。
  在稽核过程中,需要根据需求确定是否需要滤重,尽量避免不需滤重的情况下而用UNION操作,如果作为结果子集时,更应该避免使用UNION操作,浪费排序的时间和空间资源。
  稽核中最常见的需求是对营业区或着支局或某个帐目、事件等产生的费用或话务量进行与历月的对比,以确定发生的数据是否脱离了正常规律,结果是否正确。若采用UNION会把重复记录滤除掉,结果是不符合需求的,且采用UNION ALL操作,系统的响应速度更快,最终根据需求确定此类稽核都需要采用UNION ALL操作,来保留所有完整的数据记录。
  1.5 将复杂的多子集连接操作转化为小的带索引的临时表
  在帐务稽核中,往往需要把符合条件的几部分数据汇总,形成一个新的结果表,处理方式有两种:一种是用直接union all操作把各个查询子集连接形成最终的结果表;另一种是分别将各个子集建成新的小表,再将小表用union all操作建成最终的结果表。第一种方法需要大量的临时空间作为查询结果子集的临时存储空间,对系统资源的占用也较大,经过实践验证,采用第二种方式往往能获得更快的响应速度。
  2 结语
  文章结合省电信公司的收费系统,结合Oracle数据库,简单讨论了数据库库的应用,在生活中,数据库的应用还很多,比如数据库在电信收入保障的应用等等。
  参考文献
  [1] 郎宇征,贾美英.服务器集群为数据库系统搭台[J],2005.
  [2] 党正科,王新英.Oracle8.X For Windows NT实用教程[M].清华大学出版社,1999.
其他文献
把德育放在素质教育的核心地位,是我们党的基本教育方针,同时也是素质教育本身的要求.文章阐述了德育教育在高校素质教育中的核心地位及如何加强高校德育工作的几点措施.
道路桥梁养护工作不同于一般工作,具有技术性强、人员素质全面、维修反应迅速、机械化程度高、安全措施严格等内在要求。但是目前由于受较为落后的养护管理体制和运行机制的
协调性宫缩乏力在临床上比较常见,我们采用了祖国医学的穴位注射结合西医的维生素B1的治疗方案。在临床观察应用中,我们把按照常规治疗的病人列为常规组,把辅有穴位注射维生素B1
教学方法的改革和创新是提高教育质量的重要因素,要培养学生的创新精神,必须对传统的教学方法进行改革.
学习共同体的学习方式有别于传统的教师主讲式的课堂授课形式。学习共同体特别强调"师-生"之间,"生-生"之间缔结一个相互联系、相互制约、彼此促进的共同体来完成学生的学习
发自内心里的感受还是感受就如同这风天天在吹过
摘 要:介绍了二氧五环产品工艺生产过程及质量控制分析项目。总结了二氧五环质量控制分析项目的原理、方法,利用“中性水”来解决非水体系中pH值测定难题,指出了二氧五环控制分析和产品质量的关键因素。  关键词:二氧五环 生产 质量控制  中图分类号:TQ252 文献标识码:A 文章编号:1672-3791(2012)11(b)-0033-02  1 工艺过程质量控制  1.1 二氧五环反应  二氧五环反
摘要:对于广东天然气管网项目一期工程北江穿越,从穿越方式比选,穿越层位选择,断面设计与敷设方式.深卵石层处理措施,风险分析、组织管理措施等几方面进行了研讨。  关键词:地质 土洞 穿越层位 固结 卡钴  中图分类号:TB21 文献标识码:A 文章编号:1672-3791(2012)02(a)-0086-01  广东省天然气管网项目一期工程是广东天然气管网的重要组成部分,承接西气东输二线和川氣东送气
目的:了解脂肪肝患者血清学各项检测指标的变化情况,为脂肪肝的防治提供诊断依据。方法:对在我院体检查行健康体查的4626例进行血清学生化各项指标进行检测,其中脂肪肝者3603例(脂
研究早產儿视网膜病(ROP)发生的危险因素,从而早期干预,对降低其发生率和致盲率有着极为重要的意义。为此笔者对2006年2月至2010年2月来我院就诊的早产儿进行了筛查,并对ROP的发生与危险因素进行了探讨。