亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于電信網(wǎng)管系統(tǒng)中查詢的研究

        2008-04-12 00:00:00巨春飛
        現(xiàn)代電子技術(shù) 2008年1期

        摘 要:在電信網(wǎng)管系統(tǒng)中,為了對電信設(shè)備進行管理和性能優(yōu)化,數(shù)據(jù)查詢操作是必不可少的。因為劣質(zhì)SQL語句和優(yōu)質(zhì)SQL語句之間的操作速度差別可達上百倍,因此采用了SQL語句優(yōu)化技術(shù)來提高查詢的效率,又因電信網(wǎng)管系統(tǒng)常需進行海量數(shù)據(jù)查詢,所以利用恰當(dāng)?shù)姆猪擄@示技術(shù),進一步提高系統(tǒng)的響應(yīng)速度。實踐證明了該方案的可性行。

        關(guān)鍵詞:電信網(wǎng)管系統(tǒng);查詢;SQL;分頁顯示

        中圖分類號:TP311 文獻標(biāo)識碼:A

        文章編號:1004373X(2008)0113703

        Study of Inquiry on Telecommunication Network Management System

        JU Chunfei

        (Xijing University,Xi′an,710123,China)

        Abstract:In telecommunication network management system,in order to carry on the management and the optimizing performance to the telecommunication equipment,the data inquiry operation is essential.Because the difference between SQL sentence operating speed may reach hundred times,therefore using the SQL sentence optimization techniques to enhance the efficiency of inquiry.And further because the telecommunication network management system often carry on the magnanimous data inquiry,so using Pagination-display further enhances the system the speed of response.The practice indicated that,this plan is feasibility.

        Keywords:telecommunication network management system;inquiry;SQL;pagination-display

        在設(shè)計電信網(wǎng)管系統(tǒng)時,為了提高設(shè)備的可維護性、可管理性及優(yōu)化設(shè)備的性能,相關(guān)數(shù)據(jù)的查詢和統(tǒng)計是必不可少的,可以說查詢的效率直接影響到系統(tǒng)的響應(yīng)速度。要想提高系統(tǒng)的響應(yīng)速度,可通過SQL語句的優(yōu)化來實現(xiàn),對于海量數(shù)據(jù),劣質(zhì)SQL語句和優(yōu)質(zhì)SQL語句之間的操作速度差別可以達到上百倍。此外,對大數(shù)據(jù)量的查詢結(jié)果,還可以采用分頁顯示技術(shù)來進一步減少系統(tǒng)的響應(yīng)時間。

        本文根據(jù)電信系統(tǒng)中數(shù)據(jù)查詢的特點,結(jié)合相關(guān)查詢技術(shù)研究的新進展,討論了如何在電信系統(tǒng)設(shè)計中應(yīng)用SQL語句優(yōu)化和分頁顯示等查詢技術(shù)提高系統(tǒng)的效率。對電信網(wǎng)管系統(tǒng)中統(tǒng)計和查詢模塊的設(shè)計具有一定的指導(dǎo)作用。

        1 SQL語句優(yōu)化技術(shù)

        1.1 SQL語句優(yōu)化的原因

        電信系統(tǒng)數(shù)據(jù)庫的優(yōu)化通??赏ㄟ^對網(wǎng)絡(luò)、硬件、操作系統(tǒng)、數(shù)據(jù)庫參數(shù)和應(yīng)用程序的優(yōu)化來進行。根據(jù)統(tǒng)計對網(wǎng)絡(luò)、硬件、操作系統(tǒng)、數(shù)據(jù)庫參數(shù)進行優(yōu)化所獲得的性能提升全部加起來只占數(shù)據(jù)庫應(yīng)用系統(tǒng)性能提升的40%左右,其余60%的系統(tǒng)性能提升全部來自對應(yīng)用程序的優(yōu)化。因此可以肯定,通過優(yōu)化應(yīng)用程序來對數(shù)據(jù)庫系統(tǒng)進行優(yōu)化能獲得更大的收益[1]。

        對應(yīng)用程序的優(yōu)化通??煞譃閮蓚€方面:源代碼的優(yōu)化和SQL語句的優(yōu)化。由于涉及到對程序邏輯的改變,源代碼的優(yōu)化在時間成本和風(fēng)險上代價很高。另一方面,源代碼的優(yōu)化對數(shù)據(jù)庫系統(tǒng)性能的提升有限,因為應(yīng)用程序?qū)?shù)據(jù)庫的操作最終要表現(xiàn)為SQL語句對數(shù)據(jù)庫的操作。

        對SQL語句進行優(yōu)化有以下一些直接原因:

        (1) SQL語句是對數(shù)據(jù)庫(數(shù)據(jù))進行操作的惟一途徑,應(yīng)用程序的執(zhí)行最終要歸結(jié)為SQL語句的執(zhí)行,SQL語句的效率對數(shù)據(jù)庫系統(tǒng)的性能起到了決定性的作用。

        (2) SQL語句消耗了70%~90%的數(shù)據(jù)庫資源。

        (3) SQL語句獨立于程序設(shè)計邏輯,對SQL語句進行優(yōu)化不會影響程序邏輯,相對于對程序源代碼的優(yōu)化,對SQL語句的優(yōu)化在時間成本和風(fēng)險上的代價都很低。

        (1) SQL語句可以有不同的寫法,不同的寫法在性能上的差異可能很大。

        (2) SQL語句易學(xué)難精通,SQL語句的性能往往同實際運行系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu)及記錄數(shù)量等有關(guān),不存在普遍適用的規(guī)律來提升性能。

        1.2 SQL語句優(yōu)化的難點及解決方案

        人們在使用SQL時往往會陷入一個誤區(qū),即太關(guān)注所得到的結(jié)果是否正確,而忽略了不同的實現(xiàn)方法之間可能存在的性能差異,這種性能差異在大型的或是復(fù)雜的數(shù)據(jù)庫環(huán)境中表現(xiàn)得尤為明顯。存在的問題有:不良的SQL往往來自于不恰當(dāng)?shù)乃饕O(shè)計、不充分的連接條件和不可優(yōu)化的WHERE子句。在對他們進行適當(dāng)?shù)膬?yōu)化后,其運行速度有了明顯地提高。下面將從這3個方面分別進行總結(jié)[4]:

        1.2.1 不合理的索引設(shè)計的解決方案

        (1) 有大量重復(fù)值、且經(jīng)常有范圍查詢(between,>,< ,>=,< =)和order by,group by發(fā)生的列,可考慮建立群集索引;

        (2) 同時存取多列,且每列都含有重復(fù)值可考慮建立組合索引,組合索引要盡量使關(guān)鍵查詢形成索引覆蓋,其前導(dǎo)列一定是使用最頻繁的列。

        1.2.2 不充分的連接條件的解決方案

        表操作在被實際執(zhí)行前,查詢優(yōu)化器會根據(jù)連接條件,列出幾組可能的連接方案并從中找出系統(tǒng)開銷最小的最佳方案。因此要充分考慮帶有索引的表、行數(shù)多的表;內(nèi)外表的選擇可由公式:外層表中的匹配行數(shù)*內(nèi)層表中每一次查找的次數(shù)確定,乘積最小為最佳方案。

        1.2.3 不可優(yōu)化的WHERE子句的解決方案

        優(yōu)化即WHERE子句利用了索引,不可優(yōu)化即發(fā)生了表掃描或額外開銷。

        (1) 對列的操作都將導(dǎo)致表掃描,他包括數(shù)據(jù)庫函數(shù)、計算表達式等,查詢時要盡可能將操作移至等號右邊。

        (2) in,or子句常會使用工作表,使索引失效。如果不產(chǎn)生大量重復(fù)值,可以考慮把子句拆開,拆開的子句中應(yīng)該包含索引。

        綜上所述SQL語句優(yōu)化的實質(zhì)就是在結(jié)果正確的前提下,用優(yōu)化器可以識別的語句,充分利用索引,減少表掃描的I/O次數(shù),盡量避免表搜索的發(fā)生。根據(jù)電信系統(tǒng)查詢的特點,可把索引建立在日期上,因為他可以縮小查詢的范圍,而且是電信查詢中最頻繁使用和最需要排序的字段。

        1.3 SQL語句優(yōu)化的實現(xiàn)

        1.3.1 建立“適當(dāng)”的索引

        經(jīng)分析電信網(wǎng)管系統(tǒng)的庫表結(jié)構(gòu),發(fā)現(xiàn)設(shè)備告警和日志的庫表中都有入庫時間,設(shè)備性能庫表中都有起始時間和中止時間,而且重復(fù)較少。又因為我們的WHERE子句使用了多個列作為SELECT的條件,所以可以在庫表的多個列上建立復(fù)合索引。由于設(shè)備告警和日志都需要以設(shè)備名為統(tǒng)計限制條件,而性能是以設(shè)備號為限制條件的,所以我們可以在入庫時間、起始時間、中止時間、設(shè)備名和設(shè)備號上建立組合索引,進一步提高效率。

        以日志為例建立索引:

        建立好索引后,就要設(shè)計WHERE子句盡量使關(guān)鍵查詢形成索引覆蓋,只有這樣才可以很好地利用建立的索引,以提高統(tǒng)計和查詢的效率。

        1.3.2 優(yōu)化WHERE子句

        經(jīng)過分析和研究,我們發(fā)現(xiàn)WHERE子句按照以下規(guī)則編寫可以提高效率。

        (1) 選擇一個好的表連接順序。當(dāng)在WHERE子句中有多個表連接時,WHERE子句中排在最后的表應(yīng)當(dāng)是返回行數(shù)可能最少的表,有過濾條件的子句應(yīng)放在WHERE子句中的最后。

        (2) 最好不要在WHERE子句中使用函數(shù)或表達式,如果要使用的話,最好統(tǒng)一使用相同的表達式或函數(shù),這樣便于以后使用合理的索引。

        (3) 同一個SQL子句應(yīng)該盡可能簡單,將復(fù)雜的SQL 子句改寫為簡單的SQL子句。

        (4) 使用WHERE (NOT)EXISTS來代替(NOT)IN子句,使用NOTEXISTS 子句可以有效地利用索引。

        (5) 通過使用>=、<=等,避免使用NOT命令。

        (6) 在查詢時盡量少用格式轉(zhuǎn)換。

        (7) ORDERBY語句。ORDERBY語句決定了數(shù)據(jù)庫如何將返回的查詢結(jié)果排序。任何在ORDER BY語句的非索引項或者有計算表達式都將降低查詢速度。仔細檢查ORDERBY語句以找出非索引項或者表達式,他們會降低性能。解決這個問題的辦法就是重寫ORDERBY語句以使用索引,也可以為使用的列建立另外一個索引,同時應(yīng)絕對避免在ORDERBY子句中使用表達式。

        (8) ISNULL與ISNOTNULL。不能用NULL作索引,任何包含NULL值的列都將不會被包含在索引中。即使索引有多列這樣的情況下,只要這些列中有一列含有NULL,該列就會從索引中排除。也就是說如果某列存在空值,即使對該列建索引也不會提高性能。任何在WHERE子句中使用ISNULL或ISNOTNULL的語句優(yōu)化器是不允許使用索引的。

        根據(jù)以上總結(jié),我們進行統(tǒng)計的SQL語句可以組合為以下形式:

        (1) 日志查詢

        select count(*) from日志庫表 where username = 用戶名 and devtype=設(shè)備類型 and devname=設(shè)備名 and cmdtime>=某時間 and cmdtime<某時間

        (2) 告警查詢

        select count(*) from告警庫表 where devtype=設(shè)備類型and devname=設(shè)備名and alarmtype =告警類型and cmdtime>=某時間 and cmdtime<某時間

        在以上的SQL語句中使用>=、<=等,避免使用NOT命令,以提高查詢的效率,又因為cmdtime(入庫時間)、startime(起始時間)和 endtime(結(jié)束時間)的過濾條件比較確定,能大大縮小查詢范圍,所以我們將最具有選擇性的cmdtime,startime和 endtime放在WHERE子句中的最后。接下來在進行日志和告警統(tǒng)計時,把devname的過濾條件放在時間過濾條件的前面,形成了索引覆蓋,進一步提高了效率。

        2 數(shù)據(jù)分頁顯示技術(shù)

        2.1 數(shù)據(jù)分頁顯示技術(shù)的比較

        由于電信系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)量較大,在進行網(wǎng)管數(shù)據(jù)查詢的時候,需要遍歷數(shù)據(jù)庫中的每一條記錄。經(jīng)試驗當(dāng)查詢的結(jié)果超過8萬條記錄時,查詢結(jié)果的顯示就會出現(xiàn)問題,因此需要采用分頁顯示技術(shù),使查詢結(jié)果更快、更好地顯示給用戶 [2]。

        目前比較廣泛使用的分頁顯示方式是將查詢結(jié)果緩存在內(nèi)存中,翻頁的時候從緩存中取出一頁數(shù)據(jù)顯示。這種方法有兩個主要的缺點:一是用戶可能看到的是過期的數(shù)據(jù);二是如果數(shù)據(jù)量非常大時第一次查詢遍歷結(jié)果集會耗費很長時間,并且緩存的數(shù)據(jù)會占用大量內(nèi)存,效率明顯下降。

        經(jīng)典的數(shù)據(jù)分頁方法是:ADO記錄分頁法,也就是利用ADO自帶的分頁功能(利用游標(biāo))來實現(xiàn)分頁。但是這種分頁方法僅適用較小數(shù)據(jù)量的情形,因為游標(biāo)本身有缺點:游標(biāo)是存放在內(nèi)存中,很費內(nèi)存;游標(biāo)一旦建立,就將相關(guān)的記錄鎖住,直到取消游標(biāo);對于多表和大表中定義的游標(biāo)(大的數(shù)據(jù)集合),循環(huán)很容易使程序進入一個漫長的等待甚至死機。尤其對于非常大的數(shù)據(jù)模型而言,分頁檢索時,如果按照傳統(tǒng)的每次都加載整個數(shù)據(jù)的方法是非常浪費資源的。

        較好的分頁顯示做法應(yīng)該是每次翻頁的時從數(shù)據(jù)庫里檢索頁面大小塊區(qū)的數(shù)據(jù),從而加快數(shù)據(jù)的顯示,也不會耗費大量的資源。

        2.2 數(shù)據(jù)分頁顯示的實現(xiàn)

        根據(jù)電信網(wǎng)管的特點,利用SQL語言的游標(biāo),確定需要返回的當(dāng)前頁的搜索結(jié)果,并將其保存在內(nèi)存中,后續(xù)的記錄再通過連數(shù)據(jù)庫取得,下面是分頁的實現(xiàn)。

        在數(shù)據(jù)庫中創(chuàng)建一個存儲函數(shù),這個存儲函數(shù)的輸入?yún)?shù)是:當(dāng)前的頁數(shù)、每一頁的記錄數(shù)和從數(shù)據(jù)庫得到的要輸出的總記錄數(shù)。根據(jù)以上輸入?yún)?shù),得到要顯示頁的內(nèi)容。具體的存儲過程如下:

        名稱:sta[CD#*2]pageView

        參數(shù)設(shè)置:

        實現(xiàn)過程:

        (1) 根據(jù)用戶輸入的查詢條件,統(tǒng)計出符合條件的總的記錄數(shù),記錄在@recordcount 中,假設(shè)用戶要訪問id號為 @pageid頁的內(nèi)容。

        Select @recordcount = count ( * )from sta[CD#*2]pageView where pageid = @pageid

        (2) 為上述的查詢結(jié)果定義游標(biāo)。一方面可以節(jié)省資源,另一方面可以避免掃描整個記錄集,提高定位速度。

        (3) 利用游標(biāo)和我們設(shè)定的參數(shù),確定當(dāng)前頁的第一條記錄和最后一條記錄的絕對位置,并把他們存在 @pagebegin 和 @pageend 中。

        (4) 返回 @pagebegin 和 @pageend之間的記錄,即我們要訪問的那頁記錄。

        最后在查詢模塊中調(diào)用以上存儲過程,將記錄集保存在一個二維數(shù)組中。遍歷這個二維數(shù)組,就可以獲得所有本頁的內(nèi)容,并以適當(dāng)?shù)男问斤@示出來。

        2.3 數(shù)據(jù)分頁顯示性能分析

        (1) 每次只傳回一頁記錄,而且只形成一個記錄集,而不必像傳統(tǒng)的游標(biāo)法用:s.next來輸出Recordset記錄,讀取速度得到提高。

        (2) 數(shù)據(jù)庫沒有用到臨時表,比轉(zhuǎn)儲記錄集的速度大大提高。

        (3) 采用一個滾動游標(biāo),而且游標(biāo)只經(jīng)過2個操作就完成定位,速度也會大大提高。

        選擇不同的數(shù)據(jù),測試采用分頁顯示方法前后的效率和差異。測試數(shù)據(jù)和測試結(jié)果見表1。

        從測試結(jié)果可以看出,采用了這種分頁顯示方法后,查詢速度隨著查詢量的增大而明顯提高。

        3 結(jié) 語

        隨著電信網(wǎng)管技術(shù)的不斷發(fā)展,人們對網(wǎng)絡(luò)性能數(shù)據(jù)的統(tǒng)計和分析的重視程度越來越高,因而對數(shù)據(jù)查詢的效率和精度的要求也在不斷提高,從而在對網(wǎng)管中設(shè)備的定性分析基礎(chǔ)上,為網(wǎng)絡(luò)管理提供維護和建設(shè)的依據(jù)。而查詢的效率和精度的提高與多種技術(shù)有關(guān),并且很多技術(shù)也在不斷更新,所以要及時了解相關(guān)研究的新進展,及時采用新技術(shù),充分發(fā)揮查詢在電信網(wǎng)管中的作用。

        參 考 文 獻

        [1]閔翔.人工智能數(shù)據(jù)庫系統(tǒng)優(yōu)化的捷徑[J].中國計算機報,2001,16(5):14-16.

        [2]勾成圖,張璟,李軍懷.海量數(shù)據(jù)分頁機制在Web信息系統(tǒng)中的應(yīng)用研究[J].計算機應(yīng)用,2005,8(8):11-13.

        [3]王雄英,韓衛(wèi)占.通信網(wǎng)管理技術(shù)[M].北京:國防工業(yè)出版社,2003.

        [4]Poetier P J.數(shù)據(jù)庫技術(shù)大全[M].北京:電子工業(yè)出版社,1999.

        [5]劉宇雷,錢淘.WWW對大量數(shù)據(jù)查詢的一種實現(xiàn)[J].微計算機應(yīng)用,2001,22(6):344-346.

        [6]羅駿,何羽.SQL實用簡明教程[M].北京:清華大學(xué)出版社,2004.

        [7]蔡葵.SQL語句的查詢優(yōu)化分析[J].華南金融電腦,2004(8):45-46.

        [8]盤莉莉.SQL語句優(yōu)化原則[J].福建電腦,2004(8):12-42.

        [9]馬寧.如何提高SQL語句的查詢效率[J].江西電力職業(yè)技術(shù)學(xué)院學(xué)報,2005,18(2):37-38.

        [10]Thomas Connolly,Carolyn Begg.Database Systems A Practical Approach to Design,Implementation and Management[M].Third Edition.北京:機械工業(yè)出版社,2005.

        [11]Paulley G,Larson P.Exploiting Uniqueness in Query Optimization[C].In:IEEEInt.Conf.on Data Engineering,1994.

        作者簡介 巨春飛 女,1974年出生,陜西省興平縣人,助教,碩士。主要從事軟件工程方向的研究。

        注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。”

        国产一区视频在线免费观看| 国产综合色在线视频区| 亚州中文字幕乱码中文字幕| 久久综合激情的五月天| 人妻少妇精品视频一区二区三| 99久久国产精品网站| 无码国内精品人妻少妇蜜桃视频| 亚洲日韩欧美一区、二区| 亚洲色成人网站www永久四虎| 一本无码人妻在中文字幕免费 | 亚洲国产一区久久yourpan| 综合图区亚洲偷自拍熟女| 久久精品国产在热亚洲不卡| 中文字幕免费人成在线网站| 一边做一边说国语对白| 九九热线有精品视频86| 欧美亚洲日本国产综合在线| 中文字幕在线亚洲一区二区三区| 精品国产福利片在线观看| 日日噜噜夜夜狠狠久久av| 青青草在线公开免费视频| 日韩一区二区三区精品视频| 强奷乱码中文字幕| 少妇人妻200篇白洁| 亚洲狼人社区av在线观看| 中文字幕成人精品久久不卡| 成人国产高清av一区二区三区| 日韩女优av一区二区| 精品国产乱码久久久久久婷婷| 黄瓜视频在线观看| 无码人妻精品一区二区三区66 | 日韩中文字幕免费视频| 久久国产精久久精产国| 亚洲综合色秘密影院秘密影院| 国产极品视觉盛宴在线观看| 国产午夜福利av在线麻豆| av在线高清观看亚洲| 亚洲精品一区二区三区麻豆| 日日av拍夜夜添久久免费| 亚洲一区sm无码| 色琪琪一区二区三区亚洲区|