莊紹燕,蘇新明,陳文亮
1.解放軍180醫(yī)院 信息科,福建 泉州362000;2.解放軍91醫(yī)院 信息科,河南 焦作454150
醫(yī)院信息系統(tǒng)的數(shù)據(jù)文件、索引文件、LOB型數(shù)據(jù)分離方法
莊紹燕1,蘇新明2,陳文亮1
1.解放軍180醫(yī)院 信息科,福建 泉州362000;2.解放軍91醫(yī)院 信息科,河南 焦作454150
針對醫(yī)院信息系統(tǒng)(HIS)數(shù)據(jù)庫傳統(tǒng)管理模式的弊端, 結合Oracle數(shù)據(jù)庫管理特性,將數(shù)據(jù)、數(shù)據(jù)索引、大二進制數(shù)據(jù)對象分離,并連續(xù)存儲于系統(tǒng)不同數(shù)據(jù)文件中,提高了數(shù)據(jù)庫對象分層存儲的清晰度和安全性,同時也提升了數(shù)據(jù)并行訪問的速度。
醫(yī)院信息系統(tǒng);Oracle數(shù)據(jù);數(shù)據(jù)索引;大二進制數(shù)據(jù)
我院編制床位1400張,規(guī)模上屬于中等的三級甲等綜合醫(yī)院,醫(yī)院信息系統(tǒng)(HIS)已上線14年,屬國內第一批全院范圍大規(guī)模實現(xiàn)醫(yī)療數(shù)字化的醫(yī)院,并已實現(xiàn)“數(shù)字化一級達標醫(yī)院”,醫(yī)院數(shù)據(jù)庫容量現(xiàn)已達570GB,預計在未來2年將跨入TB級別。龐大的數(shù)據(jù)文件對醫(yī)院的高速存儲空間的使用造成很大的壓力,既要保證數(shù)據(jù)庫訪問的快速性,又要保證數(shù)據(jù)庫的安全性,這對數(shù)據(jù)庫管理員提出了新的挑戰(zhàn)[1-2]。為此,我們分析了傳統(tǒng)醫(yī)院信息系統(tǒng)(HIS)數(shù)據(jù)庫管理模式存在的問題,提出了改進方案,取得了較好的效果,現(xiàn)報告如下,供同行參考。
醫(yī)院以往對HIS數(shù)據(jù)的管理模式是以業(yè)務種類劃分界限,為每一種業(yè)務都創(chuàng)建一個表空間,并在操作系統(tǒng)上創(chuàng)建若干個數(shù)據(jù)文件。隨著信息數(shù)據(jù)的迅速增長,這種不斷地增加數(shù)據(jù)文件的管理模式缺點突顯:
(1)醫(yī)療業(yè)務數(shù)據(jù)物理存儲于數(shù)據(jù)文件中,所以數(shù)據(jù)文件中既有數(shù)據(jù)段、索引段、也有大二進制數(shù)據(jù)段、大二進制索引段。當每增加1行數(shù)據(jù)時,相應的數(shù)據(jù)文件數(shù)據(jù)、索引數(shù)據(jù)、大二進制段數(shù)據(jù)、大二進制索引段數(shù)據(jù)均增加1行數(shù)據(jù)。而這些數(shù)據(jù)分處于不同的扇區(qū)中,造成數(shù)據(jù)文件的混亂,見圖1。在進行數(shù)據(jù)查詢時,如果采用機械硬盤的話,對不連續(xù)的磁道和扇區(qū)讀的時間延遲大,對數(shù)據(jù)查找有很大的影響。
圖1 數(shù)據(jù)段在數(shù)據(jù)文件中的存儲方式
(2) 數(shù)據(jù)備份任務繁重。各種數(shù)據(jù)分布在同一數(shù)據(jù)庫文件的不同扇區(qū),數(shù)據(jù)庫備份時,其不連續(xù)的扇區(qū)相比連續(xù)的扇區(qū)的讀寫消耗更多的時間,從而影響備份速度。
(3) 數(shù)據(jù)文件、索引文件、大二進制數(shù)據(jù)存儲于同一數(shù)據(jù)庫,但數(shù)據(jù)文件日增長量大,需要預留較大的數(shù)據(jù)文件增長空間。一般情況下,HIS數(shù)據(jù)庫容量的70%(甚至可能更低)為真正的數(shù)據(jù)存儲區(qū)域;另外30%則為增長預留空間。數(shù)據(jù)庫管理員為了不讓文件存儲空間不足造成數(shù)據(jù)庫宕機,一般會預留更多預增長空間。而空間的增長和備份速度是相悖的,長期以來,數(shù)據(jù)庫管理員的安全備份壓力越來越大。
(4)HIS發(fā)生災難性故障時,采用文件級別恢復,如果沒有恢復重點對象,從龐大數(shù)據(jù)文件中恢復數(shù)據(jù)無疑是大海撈針。
通過上面的分析,我們對HIS數(shù)據(jù)庫的管理模式做了如下改進[3-5]:
(1)創(chuàng)建全庫專屬索引表空間,將各個表空間的業(yè)務數(shù)據(jù)和索引數(shù)據(jù)分離。業(yè)務表空間只存儲業(yè)務數(shù)據(jù),索引表空間存儲索引。這樣,高效的索引可以提高數(shù)據(jù)庫訪問的速度,連續(xù)的索引段和數(shù)據(jù)段也可以提高數(shù)據(jù)庫訪問效率。同時,在災難發(fā)生時,索引數(shù)據(jù)文件是可丟棄的第一選擇。
(2)創(chuàng)建專門存儲LOB數(shù)據(jù)的表空間。將含有CLOB、BLOB的對象分離至LOB表空間中。該表空間可以創(chuàng)建多個20~30 GB的數(shù)據(jù)文件,該類型的數(shù)據(jù)一般訪問不會非常頻繁,且對數(shù)據(jù)實時性要求不高。
(3)創(chuàng)建零散業(yè)務表空間(5~10 GB),用于存放醫(yī)院人力資源管理數(shù)據(jù)、感控數(shù)據(jù)等年業(yè)務量預增長量<1 GB的零散業(yè)務數(shù)據(jù)。
(4)做數(shù)據(jù)和索引的遷移,特別是重新生成索引。許多醫(yī)院從HIS數(shù)據(jù)庫使用以來(10年以上),大部分表格的索引基本沒有重新生成過,而數(shù)據(jù)庫宿主服務器和存儲(一般4年更換)卻經歷過至少3次以上遷移。
(5)將數(shù)據(jù)文件和索引的數(shù)據(jù)文件存放在固態(tài)硬盤;將大二進制數(shù)據(jù)文件存放于機械硬盤。這種存儲方法既提高數(shù)據(jù)存儲效率又節(jié)約成本。
(6)重新編譯所有視圖、存儲過程。
以我院HIS數(shù)據(jù)庫為例,介紹實施過程:
(1)創(chuàng)建tsp_index表空間,此表空間關聯(lián)4個30 GB的數(shù)據(jù)文件。數(shù)據(jù)文件為APINDEX01、APINDEX02、APINDEX03、APINDEX04。 其中最后1個表空間增長大小為每次128 MB。實現(xiàn)程序語句如下:
Create tablespacetsp_indexdatafile ‘D: orclapindex04.dbf’size307290M autoextend on next 128m;
(2)創(chuàng)建tsp_lob表空間,此表空間關聯(lián)6個30 GB的數(shù)據(jù)文件,數(shù)據(jù)文件為APLOB01、APLOB02……APLOB06。其中最后1個表空間增長大小為每次128 MB。實現(xiàn)程序語句如下:
Create tablespace tsp_lob_data datafile ‘d: orclap_lob_ data06.dbf’ size307290M autoextend on next 128m;
(3)將索引表空間的讀寫權限賦予所有用戶。實現(xiàn)程序語句如下:
alteruser usernamequota unlimited ontsp_index;
(4)依次將體檢、心電、檢驗、病歷等業(yè)務中的表格做遷移。實現(xiàn)程序語句如下:
Alter table table_name move tablespace new_tablespace;
(5)碰到含有blob表格,需要做數(shù)據(jù)遷移后,再遷移索引。實現(xiàn)程序語句如下:
Alter table table_name move tablespace new_tablespace lob(lob_column)store as (tablespace new_tablespace);
(6)利用業(yè)務空檔,對數(shù)據(jù)庫中比較大的索引進行刪除,刪除完畢后,重建索引至TSP_INDEX表空間。實現(xiàn)程序語句如下:
Alterindex index_name rebuild tablespace new_tablespace;
經過以上的調整,雖然數(shù)據(jù)庫表空間和數(shù)據(jù)文件數(shù)量增多,但是數(shù)據(jù)文件空間總大小減小了;經過重新生成的數(shù)據(jù)和索引文件,使數(shù)據(jù)的段連續(xù)性增強,客戶端連接服務器操作時,能明顯感覺到運行速度得到質的提升[6-7]。
醫(yī)療信息已進入大數(shù)據(jù)時代,數(shù)據(jù)庫管理員依托硬件服務器性能及穩(wěn)定性來實現(xiàn)HIS數(shù)據(jù)庫服務穩(wěn)定性的時代必將終結。根據(jù)醫(yī)療業(yè)務特性及發(fā)展趨勢,及時調整數(shù)據(jù)庫管理策略是數(shù)據(jù)庫管理員在運維管理上新的思路。
[1] 郝昱文,盧沙林,楊宇,等.醫(yī)院信息智能統(tǒng)計分析系統(tǒng)設計與實現(xiàn)[J].中國醫(yī)療設備,2013,28(2):31-32.
[2] 周毅,鄒賽德,劉燕.可交互性標準框架的評估何選擇[J].中國數(shù)字醫(yī)學,2007,2(6):24-26.
[3] Darl Kuhn,sam R.Alapati,Bill Padifield.Expert Indexing in Oracle Database 11g[M].北京:人民郵電出版社,2012:29-87.
[4] Jonathan Lewis.Oracle Core[M].北京:人民郵電出版社, 2013:62-91.
[5] sam R.Alapati,Darl Kuhn,BillPadfield.Oracle Database 11g Performance[M].北京:人民郵電出版社,2013:103-141.
[6] 賈代平,吳麗娟.Oracle 數(shù)據(jù)存儲與訪問技術[M].北京:電子工業(yè)出版社,2013:17-103.
[7] 胡歌.Oracle數(shù)據(jù)庫安全性分析研究[J].信息安全與技術, 2012,(4):32-33.
Methodology for Segregation of Data, Indexes and LOB in the HIS
ZHUANG Shao-yan1, SU Xin-ming2, CHEN Wen-liang1
1.Department of Information, The 180thHospital of PLA, Quanzhou Fujian 362000, China; 2. Department of Information, The 91stHospital of PLA, Jiaozuo Henan 454150, China
In view of the shortcomings of conventional management for the HIS (Hospital Information System) database, the methodology for Oracle database management was deployed so as to make the data, indexes and LOBs (Binary Large Object) segregated and constantly stored in respective fi les. This practice has contributed to hierarchical storage management of the database in a more secure and intuitive way and made the dataparallelly accesse data faster speed.
hospital information system; Oracle data; data indexes; binary large objects
TP333
A
10.3969/j.issn.1674-1633.2015.03.024
1674-1633(2015)03-0081-02
2014-09-17
作者郵箱:3817118@qq.com