利用SQL语句提取网络优化所需数据.docx
- 文档编号:7219055
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:10
- 大小:161.17KB
利用SQL语句提取网络优化所需数据.docx
《利用SQL语句提取网络优化所需数据.docx》由会员分享,可在线阅读,更多相关《利用SQL语句提取网络优化所需数据.docx(10页珍藏版)》请在冰点文库上搜索。
利用SQL语句提取网络优化所需数据
利用SQL语句提取网络优化所需数据
(南阳分公司网络部陈飞)
从事网络优化的同行可能深有体会,在实际网络优化工作中,网优工具的运用对于网络运行数据的提取和分析甚至提出问题的解决方案都起着非常重要的作用。
在网络优化工具中,最基本的工具就是直接利用网管提供的SQLplus界面,自己编写SQL语句,提取网络优化中所需的各种数据。
下面笔者就编写SQL语句的心得体会,介绍如何利用SQL语句提取网络优化所需的数据。
要自己编写SQL语句,必须首先了解好网管中的表、所需数据的计算公式和SQLplus语法。
BSC、MSC、HLR、配置、告警等的测量报告在网管中都是以表的格式存储的,每张表都有自己的名字,表的内容包含列名和对应的数据,我们就是要从这些表中通过不同的公式组合来取出我们需要的数据,值得注意的是,由于网管的容量有限,网管中只保存最近一周的数据,我们也只能从网管中提取最近一周的数据。
网管中表的命名具有一定的规律性,比如表p_nbsc_load,p表示该表是记录网络性能数据的,nbsc表示该表是关于bsc的测量数据,load表示该表是关于负荷的数据,从表的名字我们可以看出,此表是关于bsc的负荷性能的测量报告。
常用的表可以归结为4类,分别是性能表、配置表、故障表和网络元素表。
上面的例子就是一张性能表,这些均以p开头,下划杠后面紧跟着网络元素对象,常见的有nbsc、msc、hlr等,紧跟着下一个下划杠后面是性能类别,比如话务量、负荷、资源可用性等。
性能表的例子如下:
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的参数配置情况,注意由于网管有时候更新不及时,在提取这些参数时,需要先在网管上做UPLOAD,以便配置参数与现网保持一致。
故障表以f开头,主要记录有关网络的告警,比如f_cause、f_waf_lock等分别记录网络的不同告警。
网络元素表主要有objects,主要记录网络的各个元素,包括HLR、MSC、BSC、BCF、BTS等。
对于我们编写SQL语句来说,弄清表的列名和数据类型是非常关键的。
表的列名和数据类型可以利用Reflection软件的在线字典功能查看。
下面是表p_nbsc_load的列名及数据类型。
对于BSS的测量报告,表的列名及描述可以参考下面文件:
对于表的内容,还以p_nbsc_load为例,内容如下:
在了解清楚表的数据格式和内容后,就需要了解所需的计算公式,计算公式可以从省公司下发的考核指标定义中获取,其他也有一些NOKIA公司定义的公式。
下面的文件是关于BSC测量的一些计算公式,供参考。
SQLplus的学习可以参考相关的书籍,书市上有很多关于SQL的书籍,联系到网管的实际应用,建议选择专门的SQLplus的书籍查看,这样可以更好的了解在网管环境下SQL关键字的作用。
常用的SQL语句的格式如下:
select***from***where***having***groupby***orderby***
select后面跟的是所需要提取的数据,可以有多列,彼此之间用逗号隔开;from后面跟的是数据的来源,很多时候,所取的数据来源于多个表,就需要把所用到的表依次罗列,彼此用逗号隔开;having后面跟的是提取数据的条件;groupby后面跟的是所取的数据以什么样的条件分组;orderby后面跟的是所取的的数据以什么样的顺序排序。
除了上面的关键字外,常用到的关键字还有:
desc、decode、substr、to_char、sum、avg、max、min等,分别对应不同的作用。
1:
tochar是把日期或数字转换为字符串
todate是把字符串转换为数据库中得日期类型
转换函数
TO_CHAR
使用TO_CHAR函数处理数字
TO_CHAR(number,'格式')
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、YY分别代表4位、3位、2位的数字年
YEAR年的拼写
MM数字月
MONTH月的全拼
MON月的缩写
DD数字日
DAY星期的全拼
DY星期的缩写
AM表示上午或者下午
HH24、HH1212小时制或24小时制
MI分钟
SS秒钟
SP数字的拼写
TH数字的序数词
“特殊字符”假如特殊字符
HH24:
MI:
SSAM15:
43:
20PM
DD“OF”MONTH12OFOCTOBER
DDSPTHfourteenth
Date的格式’18-5月-84’
2:
DESC是descend降序意思
asc是ascend升序的意思
3:
SQL指令—SUBSTR
SQL中的substring函数是用来抓出一个栏位资料中的其中一部分。
这个函数的名称在不同的资料库中不完全一样:
∙MySQL:
SUBSTR(),SUBSTRING()
∙Oracle:
SUBSTR()
∙SQLServer:
SUBSTRING()
最常用到的方式如下(在这里我们用SUBSTR()为例):
SUBSTR(str,pos):
由
请注意,这个语法不适用于SQLServer上。
SUBSTR(str,pos,len):
由
假设我们有以下的表格:
Geography表格
region_name
store_name
East
Boston
East
NewYork
West
LosAngeles
West
SanDiego
例1:
SELECTSUBSTR(store_name,3)
FROMGeography
WHEREstore_name='LosAngeles';
结果:
'sAngeles'
例2:
SELECTSUBSTR(store_name,2,4)
FROMGeography
WHEREstore_name='SanDiego';
结果:
'anD'
下面以例子来说明SQL语句的编写。
例一:
提取LAC区每天的最大用户数。
在以往的常见网优工具中,很少有网优工具能够直接提取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区用户数最大值的分组条件;to_char(t.period_start_time,'yyyymmdd')date1中的date1做为所取数据to_char(t.period_start_time,'yyyymmdd')的列名,两者之间用空格隔开,后面的其它列名和表名也是同样的道理;substr(o.name,1,6)msc是提取MSC的名称;t.loc_arealac是提取LAC区的代号;max(t.ave_subsc_in_la)是提取每个LAC区的最大用户数。
From语句中除了p_msc_vlr_la表外,又使用了表objects,主要是因为表p_msc_vlr_la中只有MSC的网管int_id号,没有MSC的名字,这样不便于辨别MSC,而表objects中同时有MSC的名字和MSC在网管中的int_id号,这样就可以利用int_id号的对应来提取MSC的名字。
Where语句中不同的条件之间用and隔开,o.int_id=t.int_id是将两个表的MSC的int_id相对应,以便提取MSC名字,substr(o.name,1,5)='NYMSC'限定只提取南阳的数据;t.loc_area<>0限定只提取在现网中运行的LAC,t.period_start_time>=to_date('&&start_time','yyyymmddhh24')限定提取数据的开始时间,
t.period_start_time<=to_date('&&end_time','yyyymmddhh24')限定提取数据的结束时间。
Groupby决定提取数据的结果如何分组;orderby决定提取的结果显示时如何排序。
提取的结果如下:
例二:
提取LAC区每天的最大话务量。
同LAC区的用户数一样,LAC区每天的最大话务量也是做LAC规划是需要参考的重要数据。
编写的SQL语句如下:
上面语句的编写思路是首先提取每个LAC的24小时的话务量,然后再从中提取24小时中的最大话务量。
SQL语句允许重复套用,即可以中第一次提取的结果中再次提取数据。
提取的结果如下:
例三:
提取小区每天的最大话务量。
小区的每天的最大话务量做为小区容量规划和优化的重要原始数据,在日常优化中起着重要的作用。
SQL语句如下:
提取结果如下:
注意:
此语句的好处是根据输入时间的不同,可以连续提取多日的小区的最大话务量,这为日常优化节省了很多时间。
在SQL语句编写好以后,利用FTP软件上传到自己的目录下,以后就可以直接提取了。
上传的格式如下:
总之,利用自己编写的SQL语句提取一些日常优化中所需要的数据,大大的提高了工作效率。
下面附上所编的SQL语句,供参考。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 SQL 语句 提取 网络 优化 数据