• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Oracle數(shù)據(jù)庫優(yōu)化技術(shù)在鐵路貨運站生產(chǎn)管理信息系統(tǒng)中的應(yīng)用

      2014-05-08 08:43:54
      鐵路計算機應(yīng)用 2014年3期
      關(guān)鍵詞:貨運站數(shù)據(jù)表數(shù)據(jù)量

      伍 峰

      (中國鐵路總公司 信息技術(shù)中心,北京 100844)

      鐵路貨運站生產(chǎn)管理信息系統(tǒng)(以下簡稱貨運站系統(tǒng))在上海閔行車站試運行的一段時間內(nèi),隨著歷史數(shù)據(jù)的積累,各種業(yè)務(wù)的增多,系統(tǒng)運行速度逐漸減慢,響應(yīng)時間逐漸增長,效率變低,穩(wěn)定性變差。為有效地解決上述問題,本文詳細分析了常用的Oracle數(shù)據(jù)庫優(yōu)化技術(shù),結(jié)合貨運站系統(tǒng)的數(shù)據(jù)庫特點有針對性地研究了數(shù)據(jù)庫的升級、完善與優(yōu)化策略,通過采取數(shù)據(jù)庫優(yōu)化技術(shù),貨運站系統(tǒng)的運行狀況得到了很大的改善,進一步驗證了數(shù)據(jù)庫優(yōu)化方法的可行性,為貨運站系統(tǒng)的進一步推廣和實施奠定了基礎(chǔ)。

      1 Oracle數(shù)據(jù)庫優(yōu)化技術(shù)分析

      1.1 優(yōu)化客戶端應(yīng)用程序

      為高效率使用數(shù)據(jù)庫,在確保功能的同時,應(yīng)用程序的設(shè)計應(yīng)盡量把握如下原則:(1)盡量減少應(yīng)用程序與數(shù)據(jù)庫的交互頻率;(2)注意應(yīng)用程序中對數(shù)據(jù)庫操作的提交與回滾,避免數(shù)據(jù)表的鎖死;(3)減少與數(shù)據(jù)庫交互過程中網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量;(4)盡可能地多重復(fù)利用客戶端與數(shù)據(jù)庫的連接池,避免資源浪費;(5)設(shè)計時要考慮CPU及內(nèi)存的開銷情況;(6)應(yīng)用程序最好不使用數(shù)據(jù)庫游標。

      1.2 優(yōu)化數(shù)據(jù)庫表空間

      數(shù)據(jù)庫表空間是一個邏輯結(jié)構(gòu),是Oracle數(shù)據(jù)庫信息物理存儲的一個邏輯視圖,它和操作系統(tǒng)一樣是不可見的。在數(shù)據(jù)庫設(shè)計階段,需要注意以下幾點:(1)SYSTEM表空間用于存放Oracle系統(tǒng)的有關(guān)信息,為提高數(shù)據(jù)庫效率,可適當增加SYSTEM表空間大小,并避免一般用戶將對象建立在SYSTEM表空間上;(2)對于Oracle數(shù)據(jù)庫的應(yīng)用系統(tǒng),都應(yīng)該為其創(chuàng)建對應(yīng)的數(shù)據(jù)庫用戶、數(shù)據(jù)表空間、索引表空間和臨時表空間;(3)隨著系統(tǒng)的運行,數(shù)據(jù)量增長,數(shù)據(jù)表空間會產(chǎn)生碎塊,影響Oracle數(shù)據(jù)庫性能,所以應(yīng)定期檢查數(shù)據(jù)庫表空間的使用情況;(4)為提高數(shù)據(jù)庫數(shù)據(jù)的遷移速度,在遷移Oracle數(shù)據(jù)庫數(shù)據(jù)時,設(shè)置表空間為“快速更新,不生成重做日志且不可恢復(fù)”狀態(tài),待數(shù)據(jù)遷移完成后,再將表空間設(shè)置成“生成重做日志且不可恢復(fù)”。

      1.3 利用“中間表”

      “中間表”指中間數(shù)據(jù)表,合理的設(shè)計中間數(shù)據(jù)表在優(yōu)化數(shù)據(jù)庫的過程中非常必要。一方面,前臺應(yīng)用程序操作與后臺數(shù)據(jù)庫處理之間的中間數(shù)據(jù)表,有利于提高數(shù)據(jù)庫效率。(1)當應(yīng)用程序某個特定操作需要觸發(fā)數(shù)據(jù)庫多個表發(fā)生變化時,可設(shè)計中間數(shù)據(jù)表記錄前臺操作,利用數(shù)據(jù)庫存儲過程和觸發(fā)器等數(shù)據(jù)庫程序分析中間表中的記錄,從而觸發(fā)相關(guān)多個表的變化。(2)當多個客戶端的應(yīng)用程序需要同時訪問數(shù)據(jù)庫同一張表并進行各種操作時,應(yīng)用程序?qū)⒚總€客戶端的訪問記錄在中間表內(nèi),后臺數(shù)據(jù)庫程序通過分析中間表的內(nèi)容,按順序逐個對目標表執(zhí)行相應(yīng)操作,在保證高效地同時,避免邏輯沖突。

      另一方面,系統(tǒng)與系統(tǒng)之間的中間信息共享表,有利于提高系統(tǒng)安全和可靠性。當多個系統(tǒng)需要共享數(shù)據(jù)時,可使用中間表存儲接口信息,系統(tǒng)之間只需訪問中間表就可以實現(xiàn)信息的共享。

      1.4 優(yōu)化數(shù)據(jù)庫索引

      數(shù)據(jù)庫索引的原理非常簡單,但在復(fù)雜的數(shù)據(jù)表中正確使用索引卻不是易事,需要多方面全面考慮,并且具體問題具體分析。在創(chuàng)建數(shù)據(jù)庫索引時,需要考慮下列原則:(1)將索引和數(shù)據(jù)表建立在不同的表空間上,從而提高數(shù)據(jù)庫效率;(2)盡可能最大限度地發(fā)揮索引的作用,保證創(chuàng)建的索引經(jīng)常應(yīng)用于WHERE子句中;(3)對于數(shù)據(jù)查詢頻繁的大型分區(qū)表,根據(jù)分區(qū)創(chuàng)建的分區(qū)索引會影響查詢效率;(4)對于頻繁插入和更新的數(shù)據(jù)表,索引越多系統(tǒng)CPU和I/O的負擔就越重,所以每張表盡可能不要超過5個索引;(5)創(chuàng)建好索引后,盡量避免改變索引列的類型。

      1.5 優(yōu)化數(shù)據(jù)庫SQL語句

      SQL語句的效率直接影響了數(shù)據(jù)庫的性能,可通過以下幾個方面對SQL語句進行優(yōu)化:(1)減少對數(shù)據(jù)庫的查詢次數(shù),可以減少對數(shù)據(jù)庫系統(tǒng)資源的請求。具體可通過快照和顯形圖等分布式數(shù)據(jù)庫對象實現(xiàn);(2)從WHERE子句、SELECT子句和數(shù)據(jù)庫函數(shù)等方面入手,提升SQL語句處理速度;(3)盡量減少DISTINCT,U NION,MINUS,INTERSECT,ORDER BY等耗費數(shù)據(jù)庫資源的使用;(4)去除不必要的大型表的全表掃描,緩存小型表的全表保存。

      2 貨運站系統(tǒng)的數(shù)據(jù)庫優(yōu)化

      2.1 提高數(shù)據(jù)庫的訪問效率

      2.1.1 表空間設(shè)計

      創(chuàng)建Oracle數(shù)據(jù)庫后,適當擴充SYSTEM表空間的容量,根據(jù)業(yè)務(wù)數(shù)據(jù)量分析,為貨運站系統(tǒng)分別創(chuàng)建獨立的數(shù)據(jù)表空間、臨時表空間和索引表空間。

      2.1.2 將多個數(shù)據(jù)庫服務(wù)器的用戶整合至1臺服

      務(wù)器上

      梳理貨運站系統(tǒng)涉及到的所有數(shù)據(jù)庫用戶,對用戶性質(zhì)及作用進行分類,將功能相似的用戶進行合并,將分散在不同數(shù)據(jù)庫服務(wù)器上的用戶遷移至同一臺數(shù)據(jù)庫服務(wù)器,刪除大量不必要的數(shù)據(jù)鏈路,簡化相對應(yīng)的視圖。

      2.1.3 將多個用戶下的對象整合至一個用戶下

      對于貨運站系統(tǒng)使用的其他數(shù)據(jù)庫用戶對象,通過賦權(quán)、創(chuàng)建同義詞、視圖等方式,整合至貨運站系統(tǒng)的數(shù)據(jù)庫用戶下。這樣,前臺應(yīng)用程序?qū)ζ渌脩魧ο蟮脑L問只需訪問貨運站系統(tǒng)數(shù)據(jù)庫用戶即可實現(xiàn)。

      2.1.4 合理創(chuàng)建索引

      根據(jù)數(shù)據(jù)表中數(shù)據(jù)量大小,采取不同策略,為貨運資源動作表、系統(tǒng)參數(shù)表等數(shù)據(jù)量小的表創(chuàng)建主鍵;為運單表、裝載清單表、貨運裝卸七甲表等數(shù)據(jù)量非常大的表增加索引。根據(jù)字段使用頻率,將運單填報日期、裝卸車時間、車站電報碼等經(jīng)常作為連接條件、篩選條件、聚合查詢、排序的字段建成索引。把運單號、發(fā)站、填報日期等經(jīng)常一起出現(xiàn)的字段組合在一起,組成組合索引。

      2.1.5 利用數(shù)據(jù)庫編程實現(xiàn)復(fù)雜業(yè)務(wù)邏輯

      數(shù)據(jù)庫程序包括數(shù)據(jù)庫存儲過程、觸發(fā)器和函數(shù)。將復(fù)雜業(yè)務(wù)邏輯通過數(shù)據(jù)庫程序?qū)崿F(xiàn)可以減少與數(shù)據(jù)庫交互過程中的網(wǎng)絡(luò)流量,并能更充分地利用數(shù)據(jù)庫的預(yù)編譯和緩存功能。貨運站系統(tǒng)中,通過編寫存儲過程程序?qū)崿F(xiàn)貨報一、貨報二、貨報三的統(tǒng)計功能;通過編寫觸發(fā)器程序?qū)崿F(xiàn)貨場資源數(shù)據(jù)同步功能;通過編寫函數(shù)程序和定時任務(wù)實現(xiàn)外部接口數(shù)據(jù)共享的功能。

      2.1.6 合理利用視圖

      貨運站系統(tǒng)中,存在大量復(fù)雜的查詢需求,諸如貨物、清單、車輛、貨區(qū)貨位等信息的關(guān)聯(lián)查詢。進行數(shù)據(jù)庫優(yōu)化時,將客戶端程序中這些復(fù)雜的查詢語句前移至數(shù)據(jù)庫,通過視圖實現(xiàn),這樣客戶端程序只需查詢相應(yīng)視圖即可。

      2.1.7 優(yōu)化SQL語句

      (1)根據(jù)Oracle采用自下而上順序解析WHERE子句的原理,優(yōu)化SQL語句中的WHERE子句;(2)盡可能使用DECODE等高效數(shù)據(jù)庫函數(shù),減少處理時間;(3)檢查所有的SQL語句,用TRUNCATE語句替代DELETE語句,減少數(shù)據(jù)庫資源的調(diào)用,縮短執(zhí)行時間;(4)根據(jù)業(yè)務(wù)需要,修改了低效的全表掃描查詢語句;(5)查詢語句中最大限度地使用創(chuàng)建的索引。

      2.2 使用中間表提高數(shù)據(jù)庫效率

      創(chuàng)建中間表并編寫數(shù)據(jù)庫程序?qū)崿F(xiàn)貨運站系統(tǒng)貨場資源管理的功能。具體過程,如圖1所示。

      圖1 中間表處理流程

      2.3 使用中間表提高數(shù)據(jù)庫安全性

      根據(jù)業(yè)務(wù)需求,分析貨運站系統(tǒng)與其它系統(tǒng)的關(guān)系,設(shè)計共享用戶,創(chuàng)建中間數(shù)據(jù)表,實現(xiàn)貨運站系統(tǒng)、計劃系統(tǒng)和現(xiàn)車系統(tǒng)的信息共享。各個系統(tǒng)不是直接訪問其它系統(tǒng)的數(shù)據(jù)庫,而是通過同義詞和視圖等方式只對數(shù)據(jù)庫共享用戶下的中間表進行操作。這樣,大大提升了貨運站系統(tǒng)數(shù)據(jù)庫的穩(wěn)定性和安全性。

      2.4 減少生產(chǎn)用戶下的數(shù)據(jù)量

      針對減少數(shù)據(jù)量,提高數(shù)據(jù)庫訪問效率的優(yōu)化,區(qū)別于貨運站系統(tǒng)運行時連接的生產(chǎn)用戶,創(chuàng)建對應(yīng)的歷史用戶,利用存儲過程和定時任務(wù),將一段時期內(nèi)重要的歷史數(shù)據(jù)定時備份至歷史用戶下,并根據(jù)自身需求,定時刪除歷史用戶下不需要的垃圾數(shù)據(jù),如圖2所示。

      2.5 監(jiān)控數(shù)據(jù)流轉(zhuǎn)關(guān)鍵環(huán)節(jié)數(shù)據(jù)庫程序的運行

      在優(yōu)化貨運站系統(tǒng)數(shù)據(jù)庫,提高數(shù)據(jù)庫效率的過程中,采用了許多存儲過程、觸發(fā)器、函數(shù)等數(shù)據(jù)庫程序,這些程序在后臺運行,不易觀測運行狀態(tài),不能及時發(fā)現(xiàn)運行時出現(xiàn)的問題。通過編寫程序并優(yōu)化已有的存儲過程對數(shù)據(jù)流轉(zhuǎn)關(guān)鍵環(huán)節(jié)的數(shù)據(jù)庫程序進行監(jiān)控,將出現(xiàn)問題的SQL代碼,SQL錯誤信息等內(nèi)容保存至監(jiān)控表,并由客戶端程序展示在前臺頁面上,便于維護。

      3 結(jié)束語

      通過以上幾方面對貨運站系統(tǒng)Oracle數(shù)據(jù)庫的優(yōu)化工作,解決了不斷增大的數(shù)據(jù)量對系統(tǒng)造成的影響,提升了貨運站系統(tǒng)的運行速度,使后臺數(shù)據(jù)庫的結(jié)構(gòu)更加清晰,系統(tǒng)運行更加高效,維護更加便利。貨運站系統(tǒng)數(shù)據(jù)庫的優(yōu)化充分發(fā)揮Oracle數(shù)據(jù)庫的高效性,不僅提升了單個車站數(shù)據(jù)庫的使用效率,而且為今后多個車站快速而又互不干擾地共享同一數(shù)據(jù)庫打下了堅實的基礎(chǔ)。

      [1] 王 珊,陳 紅.數(shù)據(jù)庫系統(tǒng)原理教程[M].北京:清華大學(xué)出版社,2002,6.

      [2] 文 平. Oracle數(shù)據(jù)庫性能優(yōu)化的藝術(shù)[M]. 北京:機械工業(yè)出版社,2012,7.

      [3] Craig S.Mullins.數(shù)據(jù)庫管理一實踐與過程[M].李天柱,任建利,肖艷芹,譯.北京:電子工業(yè)出版社,2003,5.

      [4] Ryan K.Stephens,Ronald R.Plew.SQL自學(xué)通[M].北京:機械工業(yè)出版社,1998,10.

      猜你喜歡
      貨運站數(shù)據(jù)表數(shù)據(jù)量
      基于多品類物流網(wǎng)絡(luò)的鐵路貨運站整合優(yōu)化
      基于大數(shù)據(jù)量的初至層析成像算法優(yōu)化
      計算Lyapunov指數(shù)的模糊C均值聚類小數(shù)據(jù)量法
      高刷新率不容易顯示器需求與接口標準帶寬
      湖北省新冠肺炎疫情數(shù)據(jù)表
      黨員生活(2020年2期)2020-04-17 09:56:30
      寬帶信號采集與大數(shù)據(jù)量傳輸系統(tǒng)設(shè)計與研究
      電子制作(2019年13期)2020-01-14 03:15:18
      關(guān)于鐵路貨運站標準化規(guī)范化建設(shè)現(xiàn)狀的分析和思考
      基于列控工程數(shù)據(jù)表建立線路拓撲關(guān)系的研究
      圖表
      物流貨運站場信息管理系統(tǒng)的設(shè)計與實現(xiàn)
      大厂| 高尔夫| 科尔| 连南| 山丹县| 翁牛特旗| 额济纳旗| 宝坻区| 多伦县| 枣强县| 红桥区| 都兰县| 芒康县| 永定县| 五指山市| 绥棱县| 诸暨市| 绥宁县| 潮安县| 沁阳市| 阿克陶县| 五家渠市| 海阳市| 开鲁县| 江阴市| 义马市| 鄂尔多斯市| 博爱县| 屯门区| 湘潭县| 葵青区| 荥经县| 堆龙德庆县| 上饶县| 高碑店市| 南宁市| 潜江市| 嘉黎县| 黄骅市| 和林格尔县| 滁州市|