利用SQL语句提取网络优化所需数据_第1页
利用SQL语句提取网络优化所需数据_第2页
利用SQL语句提取网络优化所需数据_第3页
利用SQL语句提取网络优化所需数据_第4页
利用SQL语句提取网络优化所需数据_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 利用SQL语句提取网络优化所需数据 (南阳分公司网络部 陈飞) 从事网络优化的同行可能深有体会,在实际网络优化工作中,网优工具的运用对于网络运行数据的提取和分析甚至提出问题的解决方案都起着非常重要的作用。在网络优化工具中,最基本的工具就是直接利用网管提供的SQL plus界面,自己编写SQL语句,提取网络优化中所需的各种数据。下面笔者就编写SQL语句的心得体会,介绍如何利用SQL语句提取网络优化所需的数据。 要自己编写SQL语句,必须首先了解好网管中的表、所需数据的计算公式和SQL plus语法。 BSC、MSC、HLR、配置、告警等的测量报告在网管中都是以表的格式存储的,每张表都有自己的名

2、字,表的内容包含列名和对应的数据,我们就是要从这些表中通过不同的公式组合来取出我们需要的数据,值得注意的是,由于网管的容量有限,网管中只保存最近一周的数据,我们也只能从网管中提取最近一周的数据。 网管中表的命名具有一定的规律性,比如表p_nbsc_load,p表示该表是记录网络性能数据的,nbsc表示该表是关于bsc的测量数据,load表示该表是关于负荷的数据,从表的名字我们可以看出,此表是关于bsc的负荷性能的测量报告。常用的表可以归结为4类,分别是性能表、配置表、故障表和网络元素表。上面的例子就是一张性能表,这些均以p开头,下划杠后面紧跟着网络元素对象,常见的有nbsc、msc、hlr等,

3、紧跟着下一个下划杠后面是性能类别,比如话务量、负荷、资源可用性等。性能表的例子如下: p_nbsc_traffic p_nbsc_load p_nbsc_ho p_msc_vlr_la p_msc_vlr_subsc p_msc_ho p_hlr_load p_hlr_subs_vlr 配置表的表名以c开头,主要记录网络当前的参数配置情况,比如c_bsc,c_bts,c_handover_control, c_power_control, c_adjacent_cell,c_trx等,分别记录BSC、BTS、HO、PC、ADJ、TRX的参数配置情况,注意由于网管有时候更新不及时,在提取这些参数

4、时,需要先在网管上做UPLOAD,以便配置参数与现网保持一致。 故障表以f开头,主要记录有关网络的告警,比如f_cause、f_waf_lock等分别记录网络的不同告警。网络元素表主要有objects,主要记录网络的各个元素,包括HLR、MSC、BSC、BCF、BTS等。对于我们编写SQL语句来说,弄清表的列名和数据类型是非常关键的。表的列名和数据类型可以利用Reflection软件的在线字典功能查看。下面是表p_nbsc_load的列名及数据类型。对于BSS的测量报告,表的列名及描述可以参考下面文件: 对于表的内容,还以p_nbsc_load为例,内容如下: 在了解清楚表的数据格式和内容后,

5、就需要了解所需的计算公式,计算公式可以从省公司下发的考核指标定义中获取,其他也有一些NOKIA公司定义的公式。下面的文件是关于BSC测量的一些计算公式,供参考。 SQL plus的学习可以参考相关的书籍,书市上有很多关于SQL的书籍,联系到网管的实际应用,建议选择专门的SQL plus的书籍查看,这样可以更好的了解在网管环境下SQL关键字的作用。 常用的SQL语句的格式如下: select * from * where * having * group by * order by * select后面跟的是所需要提取的数据,可以有多列,彼此之间用逗号隔开;from后面跟的是数据的来源,很多时候

6、,所取的数据来源于多个表,就需要把所用到的表依次罗列,彼此用逗号隔开;having后面跟的是提取数据的条件;group by后面跟的是所取的数据以什么样的条件分组;order by后面跟的是所取的的数据以什么样的顺序排序。除了上面的关键字外,常用到的关键字还有:desc、decode、substr、to_char、sum、avg、max、min等,分别对应不同的作用。1: to char 是把日期或数字转换为字符串 to date 是把字符串转换为数据库中得日期类型 转换函数Ø TO_CHAR² 使用TO_CHAR函数处理数字 TO_CHAR(number, '格式

7、') TO_CHAR(salary,$99,999.99); 使用TO_CHAR函数处理日期 TO_CHAR(date,格式); TO_NUMBER² 使用TO_NUMBER函数将字符转换为数字 TO_NUMBER(char, '格式') TO_DATE² 使用TO_DATE函数将字符转换为日期 TO_DATE(char, '格式') 数字格式格式² 9 代表一个数字 0 强制显示0 $ 放置一个$符 L 放置一个浮动本地货币符 . 显示小数点 , 显示千位指示符 ² 日期格式 格式控制 描述 YYYY、YYY、Y

8、Y 分别代表4位、3位、2位的数字年 YEAR 年的拼写 MM 数字月 MONTH 月的全拼 MON 月的缩写 DD 数字日 DAY 星期的全拼 DY 星期的缩写 AM 表示上午或者下午 HH24、HH12 12小时制或24小时制 MI 分钟 SS 秒钟 SP 数字的拼写 TH 数字的序数词 “特殊字符” 假如特殊字符 HH24:MI:SS AM 15:43:20 PM DD “OF” MONTH 12 OF OCTOBER DDSPTH fourteenth Date的格式 18-5月-842: DESC 是descend 降序意思 asc 是ascend 升序的意思3: SQL指令 SUB

9、STR                                       SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的资料库中不完全一样:· My

10、SQL: SUBSTR(), SUBSTRING() · Oracle: SUBSTR() · SQL Server: SUBSTRING() 最常用到的方式如下 (在这里我们用SUBSTR()为例):SUBSTR(str,pos): 由<str>中,选出所有从第<pos>位置开始的字元。请注意,这个语法不适用于SQL Server上。SUBSTR(str,pos,len): 由<str>中的第<pos>位置开始,选出接下去的<len>个字元。假设我们有以下的表格:Geography 表格 region_names

11、tore_nameEastBostonEastNew YorkWestLos AngelesWestSan Diego例1:SELECT SUBSTR(store_name, 3) FROM Geography WHERE store_name = 'Los Angeles'结果:'s Angeles'例2:SELECT SUBSTR(store_name,2,4) FROM Geography WHERE store_name = 'San Diego'结果:'an D' 下面以例子来说明SQL语句的编写。 例一:提取LAC区每

12、天的最大用户数。 在以往的常见网优工具中,很少有网优工具能够直接提取LAC的用户数,然而这一数据在做LAC区规划时是非常重要的。从相关的网管表和公式中可以了解到表p_msc_vlr_la中的 ave_subsc_in_la列中的数据就是每小时的LAC的用户数,从一天24小时的每个LAC的用户数中取最大值,就为每个LAC区的最大用户数。 表p_msc_vlr_la的内容如下: 表p_msc_vlr_la中的int_id为LAC所属的MSC在网管中的int_id号。 所编写的SQL语句如下: select语句中的to_char的作用是将网管中的日期/时间格式进行转化,转化后做为取LAC区用户数最大

13、值的分组条件;to_char(t.period_start_time, 'yyyymmdd') date1中的date1做为所取数据to_char(t.period_start_time, 'yyyymmdd')的列名,两者之间用空格隔开,后面的其它列名和表名也是同样的道理;substr(,1,6) msc是提取MSC的名称;t.loc_area lac是提取LAC区的代号;max(t.ave_subsc_in_la)是提取每个LAC区的最大用户数。 From语句中除了p_msc_vlr_la表外,又使用了表objects,主要是因为表p_msc_v

14、lr_la中只有MSC的网管int_id号,没有MSC的名字,这样不便于辨别MSC,而表objects中同时有MSC的名字和MSC在网管中的int_id号,这样就可以利用int_id号的对应来提取MSC的名字。 Where语句中不同的条件之间用and隔开,_id = _id是将两个表的MSC的int_id相对应,以便提取MSC名字,substr(,1,5)='NYMSC'限定只提取南阳的数据;t.loc_area<>0限定只提取在现网中运行的LAC,t.period_start_time >= to_date('&

15、;&start_time','yyyymmddhh24')限定提取数据的开始时间,t.period_start_time <= to_date('&&end_time','yyyymmddhh24') 限定提取数据的结束时间。 Group by决定提取数据的结果如何分组;order by决定提取的结果显示时如何排序。 提取的结果如下: 例二:提取LAC区每天的最大话务量。 同LAC区的用户数一样,LAC区每天的最大话务量也是做LAC规划是需要参考的重要数据。 编写的SQL语句如下: 上面语句的编写思路是首先提取每个LAC的24小时的话务量,然后再从中提取24小时中的最大话务量。 SQL语句允许重复套用,即可以中第一次提取的结果中再次提取数据。 提取的结果如下: 例三

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论