一种基于临时表的多归档文件查询方法

文档序号:6466115阅读:189来源:国知局

专利名称::一种基于临时表的多归档文件查询方法
技术领域
:本发明涉及使用数据库(Database)作为数据存储介质的软件开发
技术领域
,具体涉及一种基于临时表的多归档文件查询方法。
背景技术
:大型的数据库应用系统中,为了避免数据库空间溢出,必须对历史数据进行归档,同时支持对归档文件进行查询。比如,在电信网络管理系统中,大量的历史告警、性能等数据必须定期归档,对归档文件的查询采用了基于临时表的方式,这也是目前广泛使用的一种方式,其具体方案如下(1)在临时数据库中创建一个临时表;(2)将归档文件的内容装载到临时表中(3)从临时表中查询符合条件的记录上述查询方案能满足单个归档文件的查询需求,但有时用户需要一次查询多个归档文件,比如在电信网络管理系统中需要统计一段时间的告警记录,如果让用户逐个查询该时间段内的归档文件再进行汇总肯定不能很好地满足用户需求,这就需要一次性查询出该段时间内的所有告警归档文件;这种情况采用上述方案就同时存在空间和效率方面的问题。首先,如果一次查询涉及的归档文件多,比如要查询过去一个月的或者一个季度的,记录量太大,可能会导致临时数据库空间溢出;其次,如果采用逐条将归档文件中的记录插入临时表在记录量大的情况下整个装载过程会非常慢。另外,查询归档文件一般采用分页查询的方式,如果每一页查询都重新装载,效率上用户肯定不能接受,这个可以通过緩存装载的归档进行一定的优化,比如通过在系统中保存一个已装载的文件链表的方式,如果要查询的归档文件已经装载过就不需要重新装载,这对查单个归档文件来说是一个较好的解决方案,但对多归档文件就仍然满足不了需求。如果所有的归档文件都恢复到一个临时表中,緩存的粒度就太大,两次查询之间只要有一个文件不相同所有的文件都必须重新装载,而且也影响恢复的效率;如果每个文件恢复到一个单独的临时表中,可以实现以文件为单位的共享,但^^同时查询多个表实现分页查询或全网排序有难度,也不是理想的解决方案。可见现有技术中存在一定的问题,需要进一步地改进。
发明内容本发明的目的在于提供一种基于临时表的多归档文件查询方法,其能通过加快文件装载到临时表中的速度,并对已装载的归档进行两级緩存来优化多归档文件查询的效率。为实现上述目的,本发明采用如下技术方案本发明提供了一种基于临时表的多归档文件查询方法,所述方法包括以下步骤A、根据查询要求,过滤出待查询归档文件;B、估算出装载所述归档文件需要的临时数据库的空间大小;若临时数据库的空间足够,则执行步骤C;C、采用批量复制(BCP)方式将待查询归档文件中的记录逐个恢复到所述临时数据库中的临时表中,并使用两级緩存机制来实现多次查询之间以归档文件为单位的数据共享;D、根据查询条件,从所述临时表中获取数据。所述的方法,其中,所述步骤B中,若所述临时数据库的空间不够,则提示用户改变所述查询要求或扩展所述临时数据库的空间,并提供给用户所需要的临时数据库空间的最小值作为扩容参考。所述的方法,其中,所述查询要求为用户下发的查询时间段;所述步骤A包括以下步骤Al、遍历默认归档目录下的所有归档文件,A2、读取每个归档文件的备注信息文件,得到每个归档文件记录的时间段;—G、比较获得的时间段与所述查询时间段,将满足所述查询时间段要求的归档文件过滤出来,作为待查询归档文件。所述的方法,其中,所述步骤B中,所述估算过程按照以下步骤进行Bl、计算出待查询归档文件的记录条数总和;B2、从所述临时数据库中查询出每兆空间可存放的记录条数;B3、按照下述^^式计算装栽所述归档文件需要的临时数据库的空间大小,其中,0为所要计算的临时数据库的空间大小,M为所述步骤B1获得的记录条数总和,W为所述步骤B2获得的每兆空间可存放的记录条数,K为一至少大于2的比例系数。所述的方法,其中,所述步骤C包括以下步骤Cl、判断一公共临时表中存放的记录是否对应本次待查询的所有归档文件,如果否,则执行步骤C2;C2、判断待查询归档文件是否已装栽到临时创建的中间临时表中,如果否,则执行步骤C3;C3、采用批量复制(BCP)方式将待查询归档文件中的记录恢复到临时创建的中间临时表中,记录该归档文件和中间临时表的对应关系,并设置归档文件的装载时间;8C4、将所有中间临时表中的归档文件导入所述公共临时表中,并记录归档文件和公共临时表的对应关系。所述的方法,其中,所述^^共临时表在系统初始化时创建,并且每种历史数据类型在临时数据库中对应一个和归档数据表同名同结构的公共临时表。所述的方法,其中,所述中间临时表在查询过程中动态创建,并且每种历"^b据类型对应至少一个中间临时表。所述的方法,其中,所述步骤C2还包括以下步骤:若待查询归档文件没有装载到中间临时表中,则执行步骤C21;C21、判断临时数据库已使用空间是否达到门P艮值,如果是,则卸载掉装载时间最早的归档文件,删除该归档文件对应的中间临时表,清空该归档文件对应的公共临时表,并返回步骤C21;如果否,执行步骤C3。所述的方法,其中,所述步骤C3和C4之间还包括以下步骤C31、判断是否所有待查询归档文件都已装载完毕,如果否,则返回至步骤C2;如果是,则清空公共临时表,并执行步骤C4。所述的方法,其中,所述步骤C3中,采用批量复制(BCP)方式将待查询归档文件中的记录恢复到中间临时表的过程,包括以下步骤C31、从数据库系统表中获取待查询归档文件中归档数据表的字段信自.,&,C32、申请一个批量复制(BCP)访问接口对象,分配批量复制(BCP)緩存,初始化相关参数,该相关参数中包括一次批量复制(BCP)操作的记录条数;C33、读取待查询归档文件中归档数据文件的第一行,获取参与归档的字段名,并申请字段緩存,将字段信息和批量复制(BCP)访问接口绑定起来;C34、从待查询归档文件中读取一条记录,解析各个字段,并存放在预先分配好的字段緩存中;C35、调用执行函数将字段緩存中的各个字段值压入数据库的批量复制(BCP)緩存中,当记录条数达到设定的一次批量复制(BCP)操作的记录条数时,将批量复制(BCP)緩存中的记录提交入临时数据库;C36、判断待查询归档文件是否读取完毕,如果没有,则返回至C34,否则,将批量复制(BCP)緩存中最后一批记录提交入临时数据库。^7、释放申请的字段緩存和批量复制(BCP)访问接口对象。有益效果与现有技术相比,本发明优化了目前使用的基于临时表的归档文件查询方法,采用批量复制(BCP)方式将归档文件中的记录恢复到数据库中使得装载归档文件的速度有了数量级的提高,同时釆用两级緩存机制最大程度地减少了不必要的文件装载,实现了多次查询之间以文件为单位的数据共享,使得用户在一次查询多个归档文件时能获得较快的查询速度,且不会导致临时数据库空间溢出,同样,本发明也适用于单个归档文件的查询。图1是本发明多归档文件查询的流程图;图2是归档文件装载的流程图3是采用批量复制(BCP)方式将归档文件中的记录恢复到临时表的流程图。具体实施例方式采用本发明的方法进^f亍归档文件的查询时,首先有如下几个约定(1)归档文件有固定的格式,一个完整的归档包括一个归档备注信息文件和一个归档数据文件;其中,归档备注信息文件中记录该归档文件的数据库表名、归档时间字段、归档记录条数、归档记录的时间范围等等;归档数据文件第一行是归档数据表字段名,以逗号分隔,第二行起是实际的数据,每行一条记录,记录字段之间也是以逗号分隔。(2)归档文件之间没有重复记录,系统启动后的第一次归档是全量归档,之后的归档均是增量归档,就是只归档上次归档时间之后产生的记录,所以归档文件之间的记录是时间上连续且没有重叠的。采用本发明的方法进行一次查询多个归档文件的操作过程,如图1所110,根据用户下发的查询要求,过滤出待查询归档文件;120,估算出装载这些归档文件所需要的临时数据库的空间大小,如果临时数据库空间不够,则执行步骤150;否则,执行步骤140;140,采用批量复制(BCP)方式将需要装载的归档文件中的记录逐个恢复到所述临时数据库中的临时表中,装载管理器使用两级緩存机制来避免不必要的文件装载,实现多次查询之间以归档文件为单位的数据共享;150,提示用户改变查询要求或扩展临时数据库空间,并提供给用户所需要的临时数据库空间的最小值作为扩容参考,本次查询过程结束;160,从临时表中,根据查询条件获取所需要的数据。在上述步骤110中,所述查询要求为用户下发查询时间段,具体过程如下,首先,遍历默认归档目录下的所有归档文件;然后,读取每个归档的备注信息,得到每个归档文件记录的时间段;最后,比较获得的时间段与查询时间段,将满足所述查询时间段要求的归档文件过滤出来,作为待查询归档文件。假设,用户下发的时间段为[tl,t2],归档文件的记录时间段为[t3,t4],则需要查询的归档文件需要满足t3St2并且t4^tl。上述步骤120中,所述临时数据库空间大小的估算过程按照以下步骤进行首先,计算出待查询归档文件的记录条数总和;然后,从所述临时数据库中查询出每兆空间可存放的记录条数;其次,按照下述公式计算装载所述归档文件需要的临时数据库的空间大小,4中,0为所要计算的临时数据库的空间大小,M为上述步骤中获得的记录条数总和,W为获得的每兆空间可存放的记录条数,尺为一至少大于2的比例系数。从上述公式可以看出,本发明主要根据两个参数来估算归档文件所需要的临时数据库空间大小,一个是数据库中记录的每种类型的历史数据每M字节可以存放的记录条数见这是一个统计平均值;另一个是归档备注信息中记录的归档记录条数M。而对于尺值得设定,可以参见以下相关说明。本发明在查询过程中预先估算所需要的临时数据库空间,从而避免了装载过程中临时数据库空间溢出,导致归档文件装载失败。上述步骤140中,利用BCP方式和两级緩存装载才几制将归档文件逐个装载到上述临时数据库空间中,以实现以归档文件为单位的数据共享的方法如图2所示。下面先解释一下两级緩存机制,本发明在归档文件的装载过程中,会在临时数据库中创建两类临时表,一是公共临时表,其是在系统初始化时,为每种历史数据类型在临时数据库中创建的一个和归档数据表同名同结构的表;二是中间临时表,这是在查询过程中动态创建的,每种数据类型可能会有多个,以归档数据历史表名后加一个数字后缀来命名,这个数字后缀是从0开始并全局递增的。那么,内存中就会有两个数据结构,一个是需要记录归档文件和中间临时表的对应关系,这是一个1对1的对应关系,装载过程中每个归档文件会被恢复到一个中间临时表中;另一个是需要记录公共临时表和归档文件的对应关系,这个可能是1对多或1对1的关系,取决于特定的一次查询涉及到几个归档文件。一次查询涉及12的多个归档文件恢复到若干个中间临时表后,再逐个导入公共临时表供用户查询。从上述装栽过程的描述可知,装载所需要的临时数据库空间为所有归档文件中记录存储量之和的两倍,那么上述步骤120估算临时数据库空间大小的公式中,K至少应该为2,同时在结合实际操作过程中需要预留的空间大小,那么K至少要比2大。下面参见图2详细说明,上述步骤140的装载过程。—a,根据公共临时表和归档文件的对应关系,判断公共临时表中存放的记录是否对应本次待查询的所有归档文件,如果是,则更新所有归档文件的装载时间,本次装载过程结束;如果否,则执行步骤122;122,根据中间临时表和归档文件的对应关系,判断待查询归档文件是否已装载到中间临时表中,这里可以依次对每一个待查询归档文件进行判断,对于没有装载的归档文件,依次进行步骤124和125的过程。如果是,则执行步骤123;否则,创建一个中间临时表,并执行步骤124;123,更新该归档文件的装载时间,并转至步骤127;124,判断临时数据库已使用空间是否达到门限值,该门限值的设定是为了预留一部分用于其它的数据库操作,如果是,则执行步骤126;如果否,则执行步骤125;125,用BCP方式将归档文件中的记录恢复到中间临时表中,记录归档文件和中间临时表的对应关系,并设置归档文件的装载时间;126,卸载掉装载时间最早的归档文件,并返回步骤124。卸载归档时以文件为单位,并同时要删除其对应的中间临时表,并清空对应的公共临时表。127,判断是否所有待查询归档文件都已装栽完毕,如果否,则返回至步骤122,否则,执行步骤128;128,将所有待查询的归档文件对应的中间临时表逐个导入公共临时表中,并记录归档文件和公共临时表的对应关系,装载过程结束。上述过程中体现了两类表的应用过程,其中通过在多次查询之间,判断待查询的归档文件是否与临时表中装载的归档文件全部或部分相同,则只要这些归档文件还没有被卸载,就可以在多次查询过程之间以文件为单位共享,最大程度地减少不必要的装载,这样可以大大提高分页查询过程中#*的效率,对某个时间范围进行分段查询效率也可以得到很好的改善。上述步骤121、122及128是主要的装载过程,而其中增加步骤124的判断,是为了保证临时数据库空间的大小符合装载需要,避免因数据库空间不足而导致装载失败;增加步骤127的判断,是为了确保对所有待查询归档文件进行装载,避免遗漏。上述步骤125中,BCP方式是一种批量复制方式,用于数据库表和文本文件之间的记录导入导出,一次导入或导出的记录数越多效率越高。具体实现可以采用不同数据库提供的BCP编程接口。以sybase数据库为例,BCP方式将归档文件中的记录导入数据库步骤如图3所示。341,从数据库系统表中获取待查询归档文件中归档数据表的字段信息,其中包括字段类型、长度等信息;342,申请一个BCP访问接口对象,调用blk_alloc()、blkjnit(淋行函数分配BCP緩存,初始化相关参数,该相关参数包括一次BCP操作的记录条数;343,读取待查询归档文件中归档数据文件的第一行,获取参与归档的字段名,并申请字段緩存,通过调用blkj)ind()执行函数将这些字段的字段号、类型、长度、緩存地址等信息和BCP访问接口绑定起来;344,从待查询归档文件中读取一条记录,解析各个字段,并存放在预先分配好的字段緩存中;345,调用blk—rowxfer()执行函数将字段緩存中的各个字段值压入14sybase数据库的BCP緩存中;346,判断记录条数是否达到一次BCP操作的记录条数,若是,则执行步骤347;若否,则执行步骤348;347,当记录条数达到设定的一次BCP操作的记录条数,就调用blk—done()函数将BCP緩存中的记录提交入上述临时数据库;348,判断归档文件中的记录是否读取完毕,^*^否,则返回至步骤344;否则,执行步骤349;349,调用blk一done()执行函数将最后一批记录提交入上述临时数据库(这一次调用可能不够设定的一次BCP操作记录条数),释放申请的字段緩存和BCP访问接口对象。另外,考虑到查询归档操作并不是非常频繁,为了避免大量的归档数据长期占用临时数据库影响其它数据库操作的效率,需要一个卸载定时器周期卸载掉一段时间不用的归档文件。下面以电信网络管理系统中的常见操作-查询历史告警归档文件为为例,结合图1至图3详细说明采用本发明方法的查询过程。历史告警数据存放在历史库中的HistoryAlarm表中。系统初始化时会在临时数据库中创建临时表HistoryAlarm,结构同历史库中的HistoryAlarm表。第1步,根据用户下发的.查询时间段过滤出需要查询的归档文件。假设,用户需要查询2007年11月份的告警归档记录,该时间段内的归档文件有5个,详细信息如下表1所示。归档时间精确到秒,20071030120723表示2007年10月30日11点7分23秒。<table>tableseeoriginaldocumentpage15</column></row><table><table>tableseeoriginaldocumentpage16</column></row><table>第2步,估算出装载这些归档文件所需要的临时数据库空间大小,如果临时数据库空间不够则提示用户缩短查询时间段或扩展临时数据库空间,并提供给用户一个临时数据库空间最小值作为扩容参考,其中,估算数据库空间大小的过程如下力.l)计算出需要查询的归档文件总的记录条数。本例中5个归档文件总记录条数为112,3174条。(2.2)从数据库表TableRecordSize中查询出每M空间可以存放的历史告警条数,查询结果为9000条。(2.3)计算装载这些归档文件所需要的临时数据库空间1123174簡0x2=250M上述系数为2,是因为需要再临时数据库中建立两个临时表用于加载上述归档文件,但是基于临时数据库还要预留一部分空间用于其它的数据库操作,假设预留50%,则需要将上述结果再乘以2,那么临时数据库空间是500M。另夕卜,再考虑到估算的不准确性和后续扩展需要,给用户的建议值需要在此基础上增加20%,即结果再乘以1.2为600M。第3步,将需要查询的归档文件用BCP方式逐个装载到临时数据库,而在装载过程中,管理器使用两类临时表构成的两级緩存机制在多个查询过程之间以归档文件为单位共享装载,如typedef—NS—STD一map〈int,DumpLoadlnfo〉DumpLoadlnfoList;记录中间临时表和归档文件的对应关系,关键字为历史数据类型,历史告警取值为4,DumpLoadlnfo结构记录归档文件名、中间临时表名、装载时间等等;采用如下形式typedef一NS—STD一map<_STD—string,—NS—STD—deque〈一STD一string>>DumpLoadlnfoList2;记录公共临时表和归档文件的对应关系。如图2所示,将多个归档文件装载到临时表中的具体步骤3.1,查询公共临时表中已装载的文件链表DumpLoadlnfoList2,如果公共临时表HistoryAlarm中的装载文件链表刚好为本次待查询的归档文件,则更新本次查询的归档文件的装载时间,装载过程结束,否则转3,2;3.2,取得某个待装载文件,查询中间临时表已装载的文件链表DumptoadlnfoList,如果该文件已经净皮装载过,则更新DumpLoadlnfoList结构中文件的装载时间为当前时刻,转3.5;3.3,创建中间临时表HistoryAlarmN,N是从0开始,系统运行过程中全局递增的;3.4,获取临时数据库的空闲空间,如果空闲空间小于50%,则卸载掉装载时间最老的归档。卸载中需要删除归档文件对应的中间临时表,并将公共临时表HistoryAlarm清空。卸载过程要循环进行,直到空闲空间大于或等于50%。3.5,将待装载文件中的记录以BCP方式恢复到中间临时表HistoryAlarmN中,一次插入50,0000条记录。将装载文件名、中间临时表名、装载时间等信息填入DunpLoadlnfoList结构;3.6,如果所有文件都已经装载完毕,则转3.7,否则转3.2。3.7,清空公共临时表HistoryAlarm,将本次查询的归档文件对应的中间临时表的内容逐个导入公共临时表HistoiyAlarm中;在DumpLoadlnfoList2中记录公共临时表对应的归档文件。上述步骤3.5中采用BCP方式将归档文件中的记录恢复到临时表的方法如图3所示,这里不再赘述。第4步,从公共临时表HistoryAlarn中查询出符合条件的历史告警数据。上述实施例按照本发明所述的多归档文件查询方法,应用于电信网络管理系统历史告警归档文件查询,归档记录在100万条以下时第一页的查17询时间小于3分钟,后边的页查询时间小于30s,能较好地满足工程上的应用需求,相比普通的归档文件查询方式,查询效率有了很大的提高。综上所述,本发明的应用程序编写方便,调用公共的装载函数装载后直接从固定的表中查询即可,可以很方便的实现全网排序和各种统计功能。同时,本发明没有引入各种大型数据库的差异性,能满足各种大型数据库应用系统中的归档文件查询需求。^唾理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案的说明和具体实施方式做tt!各种可能的改变或替换,所有这些改变或替换都属于本发明的权利要求的保护范围。权利要求1、一种基于临时表的多归档文件查询方法,其特征在于,所述方法包括以下步骤A、根据查询要求,过滤出待查询归档文件;B、估算出装载所述归档文件需要的临时数据库的空间大小;若临时数据库的空间足够,则执行步骤C;C、采用批量复制方式将待查询归档文件中的记录逐个恢复到所述临时数据库中的临时表中,并使用两级缓存机制来实现多次查询之间以归档文件为单位的数据共享;D、根据查询条件,从所述临时表中获取数据。2、根据权利要求l所述的方法,其特征在于,所述步骤B中,若所述临时数据库的空间不够,则提示用户改变所述查询要求或扩展所述临时数据库的空间,并提供给用户所需要的临时数据库空间的最小值作为扩容参考。3、根据权利要求1或2所述的方法,其特征在于,所述查询要求为用户下发的查询时间段;所述步骤A包括以下步骤Al、遍历默i^归档目录下的所有归档文件,A2、读取每个归档文件的备注信息文件,得到每个归档文件记录的时间段;A3、比较获得的时间段与所述查询时间段,将满足所述查询时间段要求的归档文件过滤出来,作为待查询归档文件。4、根据权利要求1或2所述的方法,其特征在于,所述步骤B中,所述估算过程按照以下步骤进行Bl、计算出待查询归档文件的记录条数总和;B2、从所述临时数据库中查询出每兆空间可存放的记录条数;B3、按照下述公式计算装栽所述归档文件需要的临时数据库的空间大小,其中,^为所要计算的临时数据库的空间大小,M为所述步骤B1获得的4&#:条数总和,iV为所述步骤B2获得的每兆空间可存放的记录条数,《为一至少大于2的比例系数。5、根据权利要求1或2所述的方法,其特征在于,所述步骤C包括以下步骤C1、判断一公共临时表中存放的记录是否对应本次待查询的所有归档文件,如果否,则执行步骤C2;C2、判断待查询归档文件是否已装载到临时创建的中间临时表中,如果否,则执行步骤C3;C3、采用批量复制方式将待查询归档文件中的记录恢复到临时创建的中间临时表中,记录该归档文件和中间临时表的对应关系,并设置归档文件的装载时间;C4、将所有中间临时表中的归档文件导入所述公共临时表中,并记录归档文件和公共临时表的对应关系。6、根据权利要求5所述的方法,其特征在于,所述公共临时表在系统初始化时创建,并且每种历史数据类型在临时数据库中对应一个和归档数据表同名同结构的公共临时表。7、根据权利要求5所述的方法,其特征在于,所述中间临时表在查询过程中动态创建,并且每种历史数据类型对应至少一个中间临时表。8、根据权利要求5所述的方法,其特征在于,所述步骤C2还包括以下步骤若待查询归档文件没有装载到中间临时表中,则执行步骤C21;C21、判断临时数据库已使用空间是否达到门限值,如果是,则卸载掉装载时间最早的归档文件,删除该归档文件对应的中间临时表,清空该归档文件对应的公共临时表,并返回步骤C21;如果否,执行步骤C3。9、根据权利要求5所述的方法,其特征在于,所述步骤C3和C4之间还包括以下步骤C31、判断是否所有待查询归档文件都已装载完毕,如果否,则返回至步骤C2;如果是,则清空公共临时表,并执行步骤C4。10、根据权利要求5所述的方法,其特征在于,所述步骤C3中,采用批量复制方式将待查询归档文件中的记录恢复到中间临时表的过程,包括以下步骤C31、从数据库系统表中获取待查询归档文件中归档数据表的字段信台.,&,C32、申请一个批量复制访问接口对象,分配批量复制緩存,初始化相关参数,该相关参数中包括一次批量复制操作的记录条数;C33、读取待查询归档文件中归档数据文件的第一行,获取参与归档的字段名,并申请字段緩存,将字段信息和批量复制访问接口绑定起来;C34、从待查询归档文件中读取一条记录,解析各个字段,并存放在预先分配好的字段緩存中;C35、将字段緩存中的各个字段值压入数据库的批量复制緩存中,当记录条数达到设定的一次批量复制操作的记录条数时,将批量复制緩存中的记录提交入临时数据库;C36、判断待查询归档文件是否读取完毕,如果没有,则返回至C34,否则,将批量复制緩存中最后一批记录提交入临时数据库;C37、释放申请的字段緩存和批量复制访问接口对象。全文摘要本发明公开了一种基于临时表的多归档文件查询方法,其包括以下步骤A.根据查询要求,过滤出待查询归档文件;B.估算出装载所述归档文件需要的临时数据库的空间大小;若临时数据库的空间足够,则执行步骤C;C.采用批量复制方式将待查询归档文件中的记录逐个恢复到所述临时数据库中的临时表中,并使用两级缓存机制来实现多次查询之间以归档文件为单位的数据共享;D.根据查询条件,从所述临时表中获取数据。本发明能通过加快文件装载到临时表中的速度,并对已装载的归档进行两级缓存来优化多归档文件查询的效率。文档编号G06F17/30GK101639839SQ20081014222公开日2010年2月3日申请日期2008年7月30日优先权日2008年7月30日发明者鲁春怀申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1