首页> 中国专利> 提高网管自动发现业务效率的方法及装置

提高网管自动发现业务效率的方法及装置

摘要

本发明提供一种提高网管自动发现业务效率的方法,包括以下步骤:分析自动发现业务中与入库操作INSERT INTO语句和更新操作UPDATE语句有关的数据表,列出各数据表之间存在的依赖关系;为INSERT INTO语句涉及到的数据表设置第一批量BCP入库类和第一入库接口;将使用UPDATE语句更新的字段从与其它数据表存在依赖关系的源表中分离出来,形成一个新表,并为新表设置第二BCP入库类和第二入库接口;将设置好入库类集成到自动发现业务代码,调用入库接口,以替代INSERT INTO语句和UPDATE语句对数据库的操作。本发明还提供一种提高网管自动发现业务效率的装置。本发明所提供的方法或装置,可提升网管自动发现业务的效率。

著录项

  • 公开/公告号CN102799582A

    专利类型发明专利

  • 公开/公告日2012-11-28

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN201110133974.3

  • 发明设计人 夏振宇;刘晓艳;

    申请日2011-05-23

  • 分类号G06F17/30;G06F9/44;

  • 代理机构深圳市世纪恒程知识产权代理事务所;

  • 代理人胡海国

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部

  • 入库时间 2023-12-18 07:26:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-06-03

    授权

    授权

  • 2013-03-20

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20110523

    实质审查的生效

  • 2012-11-28

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,尤其涉及一种提高网管自动发现业务效率的 方法及装置。

背景技术

随着通信技术的迅猛发展,光网络中管理的业务数量越来越多,数据量 日趋庞大,对网管的要求也不断提升。在对业务的自动发现方面,不仅要求 网管具有对各种不同速率业务的发现能力,还要求具有业务的增量发现能力, 甚至提出了对错误配置的业务应该具有容错能力。这样一来,直接导致网管 的业务数据量增大。数据量一增大,效率自然成了一个重要的问题。因此, 怎样提升网管自动发现业务的效率成了目前亟待解决的问题。

发明内容

本发明的主要目的在于提供一种提高网管自动发现业务效率的方法及装 置,旨在提高网管自动发现业务的效率。

为了实现发明目的,本发明提供一种提高网管自动发现业务效率的方法, 包括以下步骤:

分析自动发现业务中与入库操作INSERT INTO语句和更新操作UPDATE 语句有关的数据表,列出各数据表之间存在的依赖关系;

为INSERT INTO语句涉及到的数据表设置第一批量BCP入库类和第一 入库接口;

将使用UPDATE语句更新的字段从与其它数据表存在依赖关系的源表中 分离出来,形成一个新表,并为所述新表设置第二BCP入库类和第二入库接 口;

将设置好的第一BCP入库类和第二BCP入库类集成到自动发现业务代 码,调用第一入库接口和第二入库接口,以替代INSERT INTO语句和UPDATE 语句对数据库的操作。

优选地,所述将使用UPDATE语句更新的字段从与其它数据表存在依赖 关系的源表中分离出来,形成一个新表,并为所述新表设置第二BCP入库类 和第二入库接口包括:

分析UPDATE语句,把需要更新的字段从源表中删除,选择一个主键作 为新表的外键使用;

将移出的字段连同选择的外键形成一个新表,设置好新表的属性。

优选地,所述为INSERT INTO语句涉及到的数据表设置第一批量BCP 入库类和第一入库接口包括:

调用低层应用程序编程接口API对INSERT INTO语句中使用的字段进行 封装,并设置好入库接口函数。

优选地,所述分析自动发现业务中与入库操作INSERT INTO语句和更新 操作UPDATE语句有关的数据表包括:

判断INSERT INTO语句和更新操作UPDATE语句是否造成效率瓶颈,若 否,则结束流程。

优选地,上述与入库操作INSERT INTO语句有关的数据表包括路径信息 表;与UPDATE语句有关的数据表包括时隙交叉表。

本发明还提供一种提高网管自动发现业务效率的装置,包括:

分析单元,用于分析自动发现业务中与入库操作INSERT INTO语句和更 新操作UPDATE语句有关的数据表,列出各数据表之间存在的依赖关系;

第一设置单元,用于为INSERT INTO语句涉及到的数据表设置第一批量 BCP入库类和第一入库接口;

第二设置单元,用于将使用UPDATE语句更新的字段从与其它数据表存 在依赖关系的源表中分离出来,形成一个新表,并为所述新表设置第二BCP 入库类和第二入库接口;

执行单元,用于将设置好的第一BCP入库类和第二BCP入库类集成到自 动发现业务代码,调用第一入库接口和第二入库接口,以替代INSERT INTO 语句和UPDATE语句对数据库的操作。

优选地,所述第二设置单元包括:

UPDATE语句分析模块,用于分析UPDATE语句,把需要更新的字段从 源表中删除,选择一个主键作为新表的外键使用;

新表成形模块,用于将移出的字段连同选择的外键形成一个新表,设置 好新表的属性。

优选地,所述第一设置单元具体用于:

调用低层应用程序编程接口API对INSERT INTO语句中使用的字段进行 封装,并设置好入库接口函数。

优选地,所述分析单元包括:

判断模块,判断INSERT INTO语句和更新操作UPDATE语句是否造成效 率瓶颈,若否,则结束流程。

本发明所提供的提高网管自动发现业务效率的方法或装置,对INSERT INTO语句进行替换,利用BCP入库方式来代替INSERT INTO,解决了INSERT INTO带来的效率上的损失;对于UPDATE语句首先分析表格关系,分离出 那些需要更新的字段形成新表,利用外键来关联新表与与其它数据表存在依 赖关系的源表之间的关系,然后采用BCP入库的方式将更新数据转换为插入 数据,解决了UPDATE语句带来的效率瓶颈问题,大大提升了网管自动发现 业务的效率;并且,本发明消除了数据表的冗余数据和传递依赖,使得表格 之间满足第三范式的要求,也使得表格之间的关系更为明确。

附图说明

图1为本发明一实施方式中提高网管自动发现业务效率的方法的流程图;

图2为本发明中路径信息表、时隙交叉表以及新表的结构示意图;

图3为本发明一实施装置方式中提高网管自动发现业务效率的装置的结 构示意图;

图4为本发明一实施例中提高网管自动发现业务效率的装置的工作流程 图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步 说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限 定本发明。

图1示出了本发明的一个实施方式中提高网管自动发现业务效率的方法 流程。该流程包括以下步骤:

步骤S10,分析自动发现业务中与入库操作INSERT INTO语句和更新操 作UPDATE语句有关的数据表,列出各数据表之间存在的依赖关系;例如, 参照图2,用来存储路径信息的路径信息表SubnetworkConnection需要大量的 使用INSERT INTO语句来插入路径信息;存储交叉信息的时隙交叉表 CrossConnection的所属路径字段Trai Value依赖于路径信息表的Name value 字段,而时隙交叉表CrossConnection的这个字段需要采用UPDATE语句进行 更新。大数据量时,这个与路径信息表存在依赖关系的UPDATE语句执行时, 就会带来效率问题。

步骤S20,为INSERT INTO语句涉及到的数据表设置第一批量BCP入库 类和第一入库接口;使用INSERT INTO语句往数据库里面插入数据的时候存 在两个效率瓶颈,第一就是对语句的解析所作的开销,数据库需要理解这条 SQL(Structured Query Language,结构化查询语言)语句的目的和分析其中 所携带的数据和约束;第二就是不能进行批量操作。如果一条条的往数据库 里面插入数据,而且每次都要解析语句、分析数据和约束,这个速度可想而 知,开销自然很大,效率问题突出。本发明采用BCP(Batch Communications  Program,批量通信程序)入库方式,利用内存的缓存机制,把需要入库的数 据首先放到数据库里面缓存起来,然后再将数据成批的写入数据库,这样就 大大提高了入库效率。现代关系型数据库产品大都提供了低层API (Application Programming Interface,应用程序编程接口)供操作数据库,可 以封装这些底层操作,实现BCP入库方式。跟具体的数据库产品结合起来, 为路径信息表SubnetworkConnection抽象出专门的类,例如CBcpSnc,调用 数据库产品低层API提供的内存缓存批量入库的函数,对INSERT INTO语句 中使用的字段进行封装,设计好入库接口。BCP入库方式会在内存分配一块 数据缓冲空间,每提交一条记录,缓冲区就增加一条相应的数据,直到缓冲 区满了才一次性批量的把内存数据写入磁盘,以提高入库速度,而且也无解 析SQL语句带来的负荷。

例如语句:

“INSERT INTO SubnetworkConnection(id,value)Values(...)”

可以为类CBcpSnc设置入库各字段的函数接口Set_Id()、Set_Value()来对 内存缓冲区进行操作。这些接口可根据具体的表格和具体的字段来设置。

对于其他的表格只要涉及到INSERT INTO语句,都可以为表格设计专门 的BCP入库类,用来提高入库的速度。这样就可以大大提高自动发现业务的 效率。

步骤S30,将使用UPDATE语句更新的字段从与其它数据表存在依赖关 系的源表中分离出来,形成一个新表,并为所述新表设置第二BCP入库类和 第二入库接口;例如自动发现业务发现完成一条业务后都需要更新时隙交叉 表CrossConnection表,用来表示交叉所属的路径。SQL语句如下:

UPDATE CrossConnection

SET Trail_if=1,Trail_Name=’SNC’,Trail_Value=’SNC{12-2412-231-1}’

WHERE CrossId=1233

这条更新语句对三个字段进行更新操作,那么,可以将这三个字段从时 隙交叉表CrossConnection中移出,形成一个新表CroConnTrailRela,新表与 源表之间用主键CrossId联系起来,CrossId作为新表CroConnTrailRela的外 键使用。第二入库接口的设置可参照第一入库接口的设置方法,例如,对于 新表CroConnTrailRela可以设置为Set_Id()、SetCrossId()、Set_TrailName()、 Set_TrailValue()作为入库接口。本发明将从时隙交叉表中分离出来的字段形 成新表CroConnTrailRela,采用外键CrossId来关联时隙交叉,这样就把对 Trail_value的更新转换为对新表CroConnTrailRela的插入操作,速度大大提高。 同时也使得表格之间的关系明确,消除了数据表的冗余数据和传递依赖。

步骤S40,将设置好的第一BCP入库类和第二BCP入库类集成到自动发 现业务代码,调用第一入库接口和第二入库接口,以替代INSERT INTO语句 和UPDATE语句对数据库的操作。

本发明利用BCP入库方式替代INSERT INTO语句,大大提高了入库效 率,解决了INSERT INTO语句带来的瓶颈效应;而针对UPDATE语句带来的 效率问题,将UPDATE语句转换为BCP入库方式更新数据,从一个非常耗时 的操作转换为一个高速的数据库操作,大大提高了网管自动发现业务的效率。

本发明还提供了一种提高网管自动发现业务效率的装置,用以实现上述 方法。参照图3,该装置包括:

分析单元10,用于分析自动发现业务中与入库操作INSERT INTO语句和 更新操作UPDATE语句有关的数据表,列出各数据表之间存在的依赖关系; 例如,参照图2,用来存储路径信息的路径信息表SubnetworkConnection需要 大量的使用INSERT INTO语句来插入路径信息;存储交叉信息的时隙交叉表 CrossConnection的所属路径字段Trai_Value依赖于路径表的Name_value字 段,而时隙交叉表CrossConnection的这个字段需要采用UPDATE语句进行更 新。分析单元10用于分析路径信息表SubnetworkConnection和时隙交叉表 CrossConnection之间存在的依赖关系。

第一设置单元20,用于为INSERT INTO语句涉及到的数据表设置第一批 量BCP入库类和第一入库接口;第二设置单元20可调用低层API对INSERT INTO语句中使用的字段进行封装,并设计好入库接口。具体可参照前述方法 中步骤S20的设置方法。

第二设置单元30,用于将使用UPDATE语句更新的字段从与其它数据表 存在依赖关系的源表中分离出来,形成一个新表,并为所述新表设置第二BCP 入库类和第二入库接口;在一实施例中,第二设置单元30包括:

UPDATE语句分析模块31,用于分析UPDATE语句,把需要更新的字段 从源表中删除,选择一个主键作为新表的外键使用;

新表成形模块32,用于将移出的字段连同选择的外键形成一个新表,设 置好新表的属性。UPDATE语句分析模块31和新表成形模块32的具体用途 可参照下述实施例:例如自动发现业务发现完成一条业务后都需要更新时隙 交叉表CrossConnection,用来表示交叉所属的路径。SQL语句如下:

UPDATE CrossConnection

SET Trail_if=1,Trail_Name=’SNC’,Trail_Value=’SNC{12-2412-231-1}’

WHERE CrossId=1233

这条更新语句对三个字段进行更新操作,那么,可以将这三个字段从时 隙交叉表CrossConnection中移出,形成一个新表CroConnTrailRela,新表与 源表之间用主键CrossId联系起来,CrossId作为新表CroConnTrailRela的外 键使用。第二入库接口的设置可参照第一入库接口的设置方法,例如,对于 新表CroConnTrailRela可以设置为Set_Id()、SetCrossId()、Set_TrailName()、 Set_TrailValue()作为入库接口。

执行单元40,用于将设置好的第一BCP入库类和第二BCP入库类集成 到自动发现业务代码,调用第一入库接口和第二入库接口,以替代INSERT INTO语句和UPDATE语句对数据库的操作。执行单元40可将第一BCP入库 类和第二BCP入库类集成到程序,以替代INSERT INTO语句和UPDATE语 句对数据库的操作,从而提高自动发现业务的效率。

在一实施例中,第一设置单元20具体用于:

调用低层应用程序编程接口API对INSERT INTO语句中使用的字段进行 封装,并设置好入库接口函数。

分析单元10包括:

判断模块11,判断INSERT INTO语句和更新操作UPDATE语句是否造 成效率瓶颈,若否,则结束流程。

图4是本发明提高网管自动发现业务效率的装置的详细工作流程图。该 流程包括:

步骤S101,判断程序中的INSERT INTO语句和UPDATE语句是否形成 效率瓶颈;如果是,则执行步骤S102;如果否,则执行步骤S103;

步骤S102,为INSERT INTO语句涉及到的表设置第一BCP入库类,调 用数据库提供的底层API写好对应的第一入库接口;

步骤S103,结束流程,不作处理;

步骤S104,分析UPDATE语句,把需要更新的字段从源表中删除,选择 一个主键作为新表的外键使用;

步骤S105,把移出的字段连同选择的外键形成一个新表,设置好新表的 属性;

步骤S106,为新表设计第二BCP入库类,设置对应的第二入库接口;

步骤S107,将设置好的第一BCP入库类和第二BCP入库类集成到程序, 以替代INSERT INTO语句和UPDATE语句对数据库的操作。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是 利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间 接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号