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

關于醫藥采購系統性能優化的設計與實現

2015-07-18 13:43:15閆濤朱希安
電腦知識與技術 2015年12期

閆濤++朱希安

摘要: 醫藥采購系統的用戶數量很多,每個用戶每年采購的藥品數量龐大。數據庫存儲的數據過多會極大的影響系統的性能,查詢的速率會降低。為了提升系統的性能,該文從數據聚合、動態建表,按年存儲這兩個角度進行了設計與實現。從而提升了系統的查詢速率、系統的性能得到了優化。

關鍵詞:數據聚合;動態建表;按年存儲

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)09-0263-02

醫藥系統的業務用戶有市衛生局、鎮衛生院、村衛生室、供貨商。涉及到的采購單位是一個市下屬的各個村衛生室、社區醫院。一個大的市下屬的村和社區大概有個3000左右。一個采購單位每月分上中下旬采購藥品,每次保守采購100個藥品。一年采購量:3000*100*3*12=10800000,一年下來采購量估計在千萬級。系統上線后,運行幾年后會存儲量很大。存儲隨著年復一年,日復一日,存儲量會非常大。 為此我們選用了Oracle數據庫,Oracle 是海量存儲的數據庫,比Mysql要強很多,Mysql最多存儲量大概是二百萬左右,如果再多就超出它的能力范圍。所以,我們使用Oracle海量存儲。Oracle海量存儲可以存很多,但是,如果存儲很多,我們要做一些查詢、統計分析,查詢的效率很低,系統反應很慢。

我們可以對表進行一些優化,比如說:加一些索引,我們可以使用Oracle的一些分區表,可以做一些sql語句的優化。但是,這些都是治標不治本的。治本的解決需要待查詢的表存儲的數據少,我們現在需要對系統進行一個根本的解決。

1 解決方案的設計與實現

本文主要從數據聚合、動態建表,按年存儲這兩個角度對系統的性能進行優化。數據聚合針對系統的統計分析功能模塊進行的設計;動態建表、按年存儲涉及到系統的核心功能模塊--采購單模塊,對系統采購單模塊相關的表進行存儲,全部是按年存儲。

1.1 數據聚合

1.1.1問題的提出

采購系統有個功能模塊是統計分析。系統有市衛生局、衛生院、衛生室、供貨商四個業務用戶。市衛生局查詢本市所有醫院及供貨商的交易明細,衛生室查詢本地區所有醫院與供貨商的交易明細,醫院查詢本醫院的交易明細,供貨商查詢與自己供貨相關的交易明細。

根據用戶的需求,統計分析模塊中按交易明細的統計效果圖2所示:

從圖中我們可以看出明細查詢涉及到:采購單明細、入庫信息、退貨信息、結算信息。采購單明細是必須顯示出來,入庫信息有則顯示沒有不顯示,退貨信息有則顯示沒有不顯示,結算信息有則顯示沒有不顯示。

1.1.2 一般的解決思路及存在問題

思路:采用采購單明細表分別和入庫表、退貨表、結算表左連接查詢。

存在問題:采購單明細一年下來上百萬,入庫表也是上百萬,退貨表少,結算表上百萬數據大,進行關聯查詢速度很慢。

1.1.3 采用數據聚合進行優化

將采購單明細、入庫信息、退貨信息、結算信息的數據融合到一張表里,這時去查詢速度很快,不用進行關聯查詢。創建一張表:YYBUSINESS,此表匯集了那幾張表所有的字段.

同步數據時機:

對于采購單明細數據,采購單審核通過后開始向交易明細表(yybusiness)插入數據。將該采購單下的采購藥品信息插入yybusiness表。由于有業務邏輯采購單審核通過,所以采用service層修改代碼實現數據同步。

對于入庫信息、退貨信息、結算信息這三張表數據采用采用觸發器實現數據同步。

入庫表上建立的觸發器源代碼如下:

create or replace trigger yycgdrk2014_insert after insert on yycgdrk2014 for each row

declare begin update Yybusiness2014 t set t.rkl = :new.rkl,t.rkje = :new.rkje,t.ypph = :new.ypph,t.cgzt = :new.cgzt,t.rkdh = :new.rkdh,t.ypyxq = :new.ypyxq,t.rktime = :new.rktime where t.yycgdid = :new.yycgdid and t.ypxxid = :new.ypxxid; end yycgdrk2014_insert;

這樣,本系統將藥品的采購信息、入庫信息、退貨信息、結算信息全部聚合在一張交易明細表中,統計分析時在該表(交易明細表)上進行統計分析。由原來的多表關聯改為單表查詢,速度提升。

1.2 動態建表,按年存儲

1.2.1 動態建表

動態建表是創建定時任務,由定時任務去執行存儲過程。由存儲過程自動創建所有用到業務表(動態表)及與表相關的觸發器、外鍵、索引、序列。如果讓人去創建,顯然是不合理,時機也不好把握。

創建定時任務的三種方法:1)java 程序啟動一個定時任務;2)數據庫上建立一個定時任務;3)在操作系統上創建一個定時任務。

本系統采用第三種方法去創建定時任務。創建的定時任務,是到點去執行Oracle.bat文件。Bat文件的內容是連接到數據庫,執行sql。Bat文件內容是:

sqlplus yycg0406/yycg0406_192.168.56.101 @c:\test.sql。test.sql的內容是執行存儲過程。具體內容是:call create_tableJob();

create_tableJob的原代碼如下:

create or replace procedure create_tableJob Authid Current_User as

year1 varchar2(4);

year2 varchar2(4);

begin

select to_char(sysdate,'yyyy')into year1 from dual;

select to_char(to_char(sysdate,'yyyy')+1)into year2 from dual;

create_businesstable(year1);

create_businesstable(year2);

end create_tableJob;

create or replace procedure create_businesstable(year in varchar2) Authid Current_User as

begin

create_business(year);

create_businesscgd(year);

create_businesscgdmx(year);

create_businesscgdrk(year);

create_businessthd(year);

create_businessthdmx(year);

create_businessjsd(year);

create_businessjsdmx(year);

end create_businesstable;

1.2.2按年存儲

動態分表的策略一定是根據用戶的需求決定。因為用戶查詢采購單的統計信息,一般都是按年進行查詢的。沒有動態分表,系統就是一個表。按年存儲采購單后面加年份。年份是4位。例如:yycgd2014,yycgdmx2014。如果是按年存儲,需要對自動生成的mapper.xml

進行修改。例如:Yycgd變成yycgd${businessyear},通過mapper中的傳入參數擴充businessyear字段來實現。擴充后,可以將參數傳入mapper中的sql語句中。

具體操作步驟:

1)按照原來生成規則生成mapper及po類,是根據模版表生成.

2)修改mapper.xml文件中的內容

將表名后邊加:${businessyear}

3)修改生成的po類,XXX Example類

繼承BusinessBasePo類

BusinessBasePo類擴充businessyear字段。

2 結束語

本文針對開發的醫藥采購系統中存在的大數量存儲的問題導致的系統查詢效率低下問題,從數據聚合、動態建表,按年存儲角度進行了設計與實現。數據聚合解決了多表關聯從而導致的查詢慢的問題。將數據聚合到一張表上,從一張表查詢統計的數據。動態建表是由定時任務定時去創建相關的表。采購的相關信息按年進行了存儲。從而用戶從頁面查詢時選擇查詢的年份,查詢出相關年份的信息。這樣解決了查詢效率低下的問題。從一定程度上對系統的性能進行了優化。

參考文獻:

[1] 閻冰潔, 萬亮, 肖敏. 高性能查詢分頁技術的研究與應用[J]. 電腦知識與技術, 2006(14): 74.

[2] 王焜, 李翠華. 基于J2EE的高校教學管理系統的性能優化設計[J]. 計算機與現代化, 2008(11): 134.

[3] 武志鵬. web服務的性能優化研[D]. 廈門: 廈門大學, 2007.

[4] 魏璞. web優化的研究及其應用[D].北京: 北京郵電大學, 2008.

主站蜘蛛池模板: 精品欧美一区二区三区在线| 青青热久免费精品视频6| 2020精品极品国产色在线观看| 亚洲福利网址| 美女高潮全身流白浆福利区| 亚洲欧美自拍中文| 亚洲熟女偷拍| 亚洲综合中文字幕国产精品欧美 | 99久久国产综合精品2023| 99视频免费观看| 黑色丝袜高跟国产在线91| 99无码中文字幕视频| 超清无码熟妇人妻AV在线绿巨人| 午夜综合网| 999福利激情视频| 欧美成人精品一区二区| 精品人妻AV区| 国产精品久久自在自线观看| 青草免费在线观看| 亚洲 欧美 偷自乱 图片| 91人妻日韩人妻无码专区精品| 日韩东京热无码人妻| 亚洲男人天堂2020| 免费人成网站在线观看欧美| 日韩在线欧美在线| 久久综合成人| 国产成人高清精品免费软件| 91精品国产福利| 国内自拍久第一页| 伊人大杳蕉中文无码| 国产欧美中文字幕| 亚洲伊人天堂| 无码丝袜人妻| 99免费在线观看视频| 亚洲男人的天堂久久香蕉网| 成人毛片免费在线观看| 精品国产Av电影无码久久久| 欧美日韩国产在线人| 欧美日韩成人| 成人精品午夜福利在线播放| 国产在线专区| 亚洲黄网在线| 日韩黄色精品| 成人综合网址| 日韩a级片视频| 国产一在线观看| 国产女人18毛片水真多1| 亚洲欧洲自拍拍偷午夜色| 国产色网站| a毛片在线| 婷婷99视频精品全部在线观看| 亚洲第一视频免费在线| 日本尹人综合香蕉在线观看| 毛片在线看网站| 亚洲中文字幕久久无码精品A| 人人91人人澡人人妻人人爽| 国产综合欧美| 国产精品网址在线观看你懂的| 中文字幕自拍偷拍| 国产v精品成人免费视频71pao| 香蕉蕉亚亚洲aav综合| 亚洲精品片911| 在线日韩日本国产亚洲| 最新加勒比隔壁人妻| 亚洲天堂久久| 99视频在线免费| 激情综合五月网| 日本在线欧美在线| 国产女人在线视频| 99国产精品一区二区| 国产精品第一区在线观看| 最新国产网站| 无码精油按摩潮喷在线播放| 国产91透明丝袜美腿在线| 日韩毛片基地| yjizz国产在线视频网| 国产精品内射视频| 午夜视频免费一区二区在线看| 久久国产精品国产自线拍| 亚洲精品无码在线播放网站| 成年A级毛片| 亚洲av片在线免费观看|