999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

使用Mysql模擬列車運行完成車底數據統計任務初探

2016-07-05 01:47:56趙旭輝

趙旭輝

(遼寧鐵道職業技術學院 遼寧 121000)

?

使用Mysql模擬列車運行完成車底數據統計任務初探

趙旭輝

(遼寧鐵道職業技術學院 遼寧 121000)

摘要:應用MySQL的計劃任務結合存儲過程模擬列車車底的運行情況,能夠及時掌握車底運用數據的動態變化,既保證數據統計的準確率,也使車底數據的統計、查詢工作效率大幅提高,提升用戶的使用體驗。

關鍵詞:MySQL 計劃任務 存儲過程 模擬 列車車底

在鐵路運營管理過程中,需要對車底的具體運用情況進行統計,但是由于旅客列車車底運用管理的動態變化,致使該項統計工作存在邏輯復雜繁瑣、運算量大、手動統計易出錯、計算機統計耗時較長等問題。本項目探索使用MySQL計劃結合存儲過程來模擬日常列車運行情況,并采用階段統計方法,較好地完成了大數量車底動態運用的快速統計要求,較大幅度提高了統計效率,提升了用戶的使用體驗。

1 問題的提出

列車車底周轉運用是旅客列車日常運行管理的一項重要工作 ,涉及到車體運用的科學安排和使用效率。但是要對實時運行中的車底運用數據進行統計,卻是一項十分復雜的工作。這是因為車底運用數據來自于多個層面信息的綜合,尤其是客調命令會臨時改變某列車的車底運用規律,使得列車車底數據經常發生變化,加之列車編組眾多,統計數據量很大,使得這項工作,既繁鎖易錯,又費時費力。

以下涉及到列車車底日常統計相關的數據來源。

(1)列車編組圖定信息與車底周轉圖:該圖主要反映列車編組的基本屬性(編組車次、乘務擔當、車輛擔當以及列車圖定信息)及客運車底周轉運用安排情況。如圖1所示。

(2)列車車次與運行時刻信息:各列車車次的到發時刻信息。

(3)客運調度命令信息:主要是動態地對各列車編組或單獨車次的車底運用進行的改變或調整。如圖2所示為客調的列車調度命令列表。

2 建立數據模型

針對上述資料,進行分析可知,每一張車底周轉圖通常由多個列車編組的車底周轉使用信息組成,同一周轉圖上的各編組的圖定基本信息(數量、車型)基本相同;但每個編組(車次)又有自己的獨立的使用信息(定員、附注等可能有小幅變化)。調度命令信息的操作對象既可能是同一張周轉圖中的整個車體交路,也可能是其中某一編組,還可能只是某一個車次,調度命令會動態地改變數量、車底類型、定員、附注等,因此在進行數據統計時必須考慮相應調度命令的內容和作用時限等。

圖1 列車編組與車底周轉圖

圖2 客運調度命令

圖3 主要數據表及其關系

根據上面分析,建立表groupGraph存儲車底周轉圖信息,建立表groupBase對應列車編組表信息,建立表groupInfo存儲周轉圖中的統一的圖定信息,建立表groupRunInfo存儲周轉圖中各車次的實際運行信息,建立表trainRun存儲列車時刻與運行信息,建立表cmdInfo存儲調度命令信息。各表間的關系如圖3所示。

3 MySQL的計劃任務與存儲過程

上述車底運用信息的統計涉及到復雜的數據庫操作,如果應用其他語言進行程序設計,邏輯調用會十分復雜。另外由于調度命令的存在使得車底運用信息具有動態變化和不確定性,必須要獲取各個車次每天的實際運行信息,才能進行準確統計。考慮使用MySQL提供的存儲過程在服務器端進行復雜數據庫處理,能加快數據處理速度,提高數據庫使用效率。而且MySQL自5.1版本支持計劃任務事件,利用計劃任務事件可以定時自動執行的特點,結合存儲過程模擬列車的實際運行情況,從而獲得相關編組、車次的實際運行信息。

MySQL中開啟計劃任務的方法有兩種:

一是執行命令SET EVENT_SCHEDULER=ON 臨時開啟計劃任務,重新啟動MySQL時需要重新設定。

二是修改my.ini文件。在MySQL程序的目錄下找到my.ini文件,添加:EVEN_SCHEDULER =1。保存后重啟MySQL服務即可實現永久開啟計劃任務。

在MySQL中使用SHOW VARIABLES LIKE 'EVENT_SCHEDULER'可以查看是否開啟了計劃任務功能。

開啟計劃任務后,還要根據項目需要,考慮建立如下存儲過程:

(1)調度命令檢查過程

在進行調度命令執行前,需要檢查調度命令的時效性。即對調度命令記錄進行鑒別,以確定該命令是否失效,并對失效的調度命令,設定失效標志。設定了失效標志的調度命令,將不再執行。由于調度命令內容靈活,這里對涉及到調度命令的類型,進行了全面分析并歸納總結,本項目將調度命令按執行時間分為兩大類命令:

確定了調度命令的分類后,對于調度命令的檢查也變得十分簡單。對于一次性命令通過標志變量的設置,即可實現只執行一次的效果。而周期性命令,利用當前日期與周期n的取余運算,即可得出當日是否為該命令的執行日期。

該項計劃任務在每天0:30分自動執行。

(2)調度命令執行過程

調度命令最初由具有管理權限的用戶錄入,進入命令表中的各條命令均在執行當日的凌晨自動執行。這個功能的實現方法就是將該存儲過程設定為每日凌晨1點自動運行的計劃任務。該任務通過遍歷調度命令表(cmdInfo),查詢在當天生效的調度命令,并依據命令內容對作用車次的實際圖定信息表(groupRunInfo)進行加掛、甩掛、換掛等操作,同時在groupRunInfo表中對應的記錄上標明適用的命令號,以備日統計使用。其執行流程如圖4所示。

圖4 調度命令執行流程

建立每日凌晨1點自動執行的計劃任務,該任務調用ExecCMD存儲過程,執行當日生效的調度命令,代碼如下:

CREATE EVENT exeEveryDay01

ON SCHEDULE EVERY 1 DAY

STARTS '2015-11-01 01:00:00'

ON COMPLETION PRESERVE ENABLE

DO CALL ExecCMD( );

存儲過程ExecCMD比較簡單,這里不再給出代碼。

(3)模擬列車運行過程進行日信息統計過程

該過程通過讀取列車編組表(groupBase),確定當日運行的車次,依據列車實際圖定信息表(groupruninfo),對當日的實際運行信息,進行日統計,并將統計信息追加存放于表dayStatistic中,即表dayStatistic中實際存放了每一天各車次實際運行的匯總信息。其執行流程如圖5所示。

每日凌晨1點時,系統自動執行計劃任務cmdPerformace,對存儲在命令列表中的各個調度命令進行判斷當時運行的車次是否發生改變,對于發生改變的車次,記錄其改變信息,將變化后的信息按日期存入groupRunInfo表中,未有變動的車次信息直接存入groupRunInfo表中。在調度命令執行后,即可自動運行當日數據統計任務,對于當時的車次信息進行統計。

圖5 模擬列車運行并進行每日統計流程

(4)月統計任務和年統計任務

月統計任務于每月1日凌晨2:00,對上一月的車次運行信息的日統計表(dayStatistic)數據進行月匯總,并存放于月統計表中(monthStatistc)。月統計存儲過程名為monthStatistic。

CREATE EVENT exeMonth02

ON SCHEDULE EVERY 1 MONTH

STARTS '2015-01-01 02:00:00'

ON COMPLETION PRESERVE ENABLE

DO CALL monthStatistic( );

年統計過程定于每年的1月1日的凌晨3:00運行,其工作對象是存儲于月統計表中的上一年度的數據,將其進行年度匯總,并存放于年統計表中(yearStatistic)。年統計存儲過程名為yearStatistic。

CREATE EVENT exeYear03

ON SCHEDULE EVERY 1 YEAR

STARTS '2015-01-01 03:00:00'

ON COMPLETION PRESERVE ENABLE

DO CALL yearStatistic( );

(5)動態統計與查詢

這一功能的實現仍然通過調用存儲過程實現。該過程接收兩個參數用于確定查詢的起止時間信息。系統用戶提供的起止信息依據時間跨度進行時間分段,分別從年匯總表、月匯總表和日匯總表中抽取符合時間要求的信息,放入臨時表中,進行再次進行匯總統計。并將生成的符合要求的統計信息存放于事先定義好的固定表queryStatistic中返回給用戶使用。由于事先進行了年月日的基礎信息統計,所以這一過程的動態查詢非常迅速,實現了較高的查詢效率。另外,用戶還可對查詢到的數據還可以進一步地進行篩選,實現高級查詢。此過程十分簡單,不再詳述。

4 結語

使用Mysql的定時計劃結合存儲過程對于完成像列車運行數據統計等一類具有運行規律,但運行信息又時常變動的對象非常有效。該方案應用存儲過程進行固定的信息處理同時結合了計劃任務定時自動的特點,實現對真實運行情況的現實模擬操作,掌握了對信息的動態變化。在統計分析階段,也利用計劃任務的自動執行特點,階段性、化整為零地分解了較大時間范圍內復雜的數據統計任務,降低了最終用戶查詢時的統計工作量,加速了最終結果的呈現速度,提高了統計效率,提升了用戶體驗。另外存儲過程工作于服務器端,充分發揮了服務的強大運算效能,減少了客戶端的運算,實現了瞬時統計出結果,極大地提升用戶的使用體驗。此方法對于類似對象的日常運行情況也能實現按規則自動化管理,值得借鑒和運用。

參考文獻:

[1]呂苗苗,倪少權,陳釘均,張驥.新舊交替列車運行圖客車車底周轉圖智能編制方法研究[J].鐵道學報.2012.10

[2]孔祥盛. MySQL核心技術與最佳實踐[M].北京:人民郵電出版社.2014

Statistics Collection of the Train Carriages Using the Mysql Simulation System of Train Operation

Zhao Xu-hui
(Liaoning Railway Vocational and Technical college Liaoning 121000 China)

Abstract:MySQL event scheduler and stored procedure can simulate the running of the train carriage. It is beneficial to grasp the dynamic, ensure the accuracy of the statistical data and improve the carriage data statistics, the work efficiency and the user experience.

Key words:MySQL event scheduler stored procedure simulation the train carriage

文獻標識碼:中國分類號:U29A

文章編號:1673-1816(2016)01-0071-05

收稿日期:2015-11-14

作者簡介:趙旭輝(1974-),男,漢,遼寧朝陽人,碩士,副教授。

主站蜘蛛池模板: 欧美精品在线视频观看| 二级特黄绝大片免费视频大片| 青青草原国产免费av观看| 欧美精品成人一区二区视频一| 亚洲av无码牛牛影视在线二区| aⅴ免费在线观看| 亚洲天堂免费| 亚洲女同一区二区| a级毛片毛片免费观看久潮| 欧美 亚洲 日韩 国产| 国产免费羞羞视频| 久久动漫精品| 国产女人综合久久精品视| 在线视频亚洲欧美| 五月婷婷综合网| 国内精品九九久久久精品| 2020国产在线视精品在| 久久久精品无码一区二区三区| 国产一区亚洲一区| 免费一级成人毛片| 这里只有精品在线| 欧美区一区二区三| 日本精品影院| 色综合热无码热国产| 国产欧美视频在线观看| 亚欧乱色视频网站大全| 99久久成人国产精品免费| 99久久国产自偷自偷免费一区| 人妻精品全国免费视频| 婷婷六月激情综合一区| 日本人妻丰满熟妇区| 中字无码av在线电影| 熟妇丰满人妻av无码区| 久久黄色视频影| 高清无码手机在线观看| 免费看a毛片| 日本午夜精品一本在线观看 | 一区二区无码在线视频| 成人一区专区在线观看| 无遮挡国产高潮视频免费观看| V一区无码内射国产| 国产女人在线观看| 美女一区二区在线观看| 国产永久无码观看在线| 成人综合网址| 亚洲精品无码久久久久苍井空| 日韩A级毛片一区二区三区| 超碰aⅴ人人做人人爽欧美 | 久青草网站| AV在线天堂进入| 日本精品视频一区二区| 干中文字幕| 午夜福利免费视频| 久久夜色精品| 久久精品午夜视频| 91精品福利自产拍在线观看| 污网站免费在线观看| 亚洲一区波多野结衣二区三区| aaa国产一级毛片| 国产爽歪歪免费视频在线观看| 欧美视频在线不卡| 国产你懂得| 91久久青青草原精品国产| 国产精品hd在线播放| 国产情侣一区二区三区| 乱人伦视频中文字幕在线| 婷婷开心中文字幕| 又爽又大又光又色的午夜视频| 在线观看国产网址你懂的| 日韩欧美国产精品| 国产剧情一区二区| 大陆精大陆国产国语精品1024 | 久久成人国产精品免费软件| 夜夜拍夜夜爽| 日本亚洲国产一区二区三区| 激情成人综合网| 亚洲三级片在线看| 中国特黄美女一级视频| 中文字幕无线码一区| 国产欧美日韩精品综合在线| 亚洲男人天堂2020| jizz在线免费播放|