文/吳建
醫院數據庫的優化和系統性能的提升
文/吳建
隨著醫院的發展,需要處理的數據量也在不斷增加,這對醫院的數據庫提出了更高的要求,為了滿足這一要求,醫院必須對其數據庫進行優化,以提升系統的性能,提高數據處理效率,促進醫院的發展。本文將對醫院數據庫的優化和系統性能的提升方案進行分析與探討,幫助醫院選擇最佳的優化方案,提升系統性能,滿足醫院日益提高的數據處理要求。
醫院數據庫 系統性能
在目前的大部分醫院中,由于進行了多年的信息化建設,已經獲得了初步的成功。在原有的收費與結算信息化的基礎上,逐漸向著服務、醫療信息化的方向發展。而隨著醫院的信息化水平不斷提高,其積累的數據量也會越來越大,這些數據的處理為數據庫系統帶來了巨大的負擔,已經開始影響醫院信息化建設的進行。所以,醫院必須重視數據庫的優化,不斷提升系統性能,促進醫院的發展。
自發展信息化以來,大部分醫院的數據庫已經運行了很長時間,尤其是電子病歷的應用,使數據庫內臨床診療數據不斷增加,使數據庫變得更加臃腫,對業務處理的效率產生了顯著的影響。與此同時,數據庫還需要應對大量的數據查詢與統計,在運行過程中容易出現死鎖或阻塞的情況,在對醫院的運行造成了一定的影響。
在對數據庫進行維護時,如果數據庫的容量大幅度增加,就會造成數據的備份與恢復時間延長,業務處理受到的影響也就越大。與此同時,軟件的表結構修改需在針對有百萬條以上記錄的表時,容易造成表鎖定,導致業務系統無法訪問,影響業務的正常辦理。
為了解決醫院數據量大幅度增加帶來的運行速度降低的問題,大部分醫院采取了升級服務器的方式,將PC服務器升級為小型機服務器,改善服務器的處理性能,提高系統運行速度。這種方式能夠在短時間內緩解數據量增加的問題,但無法從根本上解決這一問題。
為了解決由于數據量不斷增加而影響數據處理效率,我們可以采用通過硬件與軟件來分隔不同業務處理間產生的影響,將醫院的業務分為兩個類型:
(1)醫院的在線業務,其中包括收費、結算、病例、醫囑等,這些任務是醫院最核心的業務,所有工作人員的工作都需要以此為基礎,必須保證其能夠高效的運行。
(2)對數據進行查詢與統計,這類業務是職能科室在每個月需要完成的,需要從數據庫中直接獲取數據,并進行大量的統計工作。我們可以為兩個類型的業務分配各自獨立的數據庫與服務器,確保二者都能夠正常運行。在確定硬件提升方案后,我們可以考慮采用實時事務復制技術來提高軟件性能,做到數據的及時同步,在用戶操作后,查詢庫中就可以及時的反映,實現業務與查詢數據庫的徹底分離。與此同時,還能夠實現在特殊情況下用查詢數據庫作為應急服務器。
在醫院的數據庫中,業務的變化會產生更多的新需求,數據庫的表會發生結構上的變化,經常會出現業務數據的表結構與查詢數據不一致的現象,無法正常運行。為了解決這一問題,我們可以采用數據庫結構變化跟蹤程序,在業務數據庫的表發生結構變化時,程序能夠對變化進行自動跟蹤,同時對查詢數據庫的表結構進行更新。具體的操作方法如下:拷貝業務數據庫中的表結構,再啟動表結構監控伺服器,對比已拷貝的表結構與業務數據庫的表結構,如果存在變動,就會產生表結構變動的DDL,將DDL傳遞到查詢數據庫。
為了有效的減少業務數據庫中的數據量,提升業務處理效率,必須要對業務數據庫中的數據進行定期的轉儲與刪除,以確保業務數據量的恒定。但是,查詢數據庫中需要保存自數據庫建立起的全部數據,無法實現業務數據的轉儲與刪除。所以,我們必須實現在復制狀態下對業務數據進行刪除,以保證查詢數據可的完整性。根據實時事務復制的規則,相同的操作會傳遞至查詢數據庫中,刪除相應的數據。為了解決這一問題,我們可以在業務數據庫與查詢數據庫中建立一個表SCBM,用于存放刪除的表名。在進行初始化后,建立這個表,并在其中插入NAME=’NONE’的記錄。在復制定義后,可以利用復制程序在業務與查詢數據庫中為所有表建立全部的刪除與存儲過程。如果操作是正常的業務刪除,查詢數據庫中的SCBM表就不會記錄,查詢數據庫就會進行刪除。如果操作是正常的業務刪除,查詢數據庫中的SCBM表就會記錄,查詢數據庫就不會進行刪除。
在復制訂閱系統的運行過程中,可能會受到不同因素的影響而造成復制或訂閱失敗,這些因素除了系統或硬件因素,大部分是軟件系統因素,因此,系統中需要實現實時監控,以保證在問題發生時可以及時的發出警報并修正錯誤,防止產生更嚴重的損失。復制訂閱監控程序通常作為伺服器在穩定的客戶端上運行,定期對數據庫的復制進行檢測,一旦發現故障,就會立即發出警報,停止復制,等待管理員處理。如果在72小時后仍無人處理,監控程序就會按照設定好的方法自行處理,防止復制訂閱系統被SQLSERVER清除。
在性能提升方案啟用后,可能會發生故障,例如查詢服務不能正常啟動,復制系統故障等,一旦故障無法及時修復,需要重新設置復制的發布與訂閱,造成業務數據庫中的查詢不能正常進行,需要管理員通過控制臺完成調整,將業務與查詢數據庫結合在一起,同時指向業務數據庫進行操作,確保正常的短期業務查詢不會受到影響。在故障解決后,一些數據無法從業務數據庫復制到查詢數據庫,導致查詢數據缺失,需要對查詢數據庫進行恢復,再利用控制臺把業務數據庫與查詢數據庫重新分開,系統修復。
[1]魏寧.探討醫院數據庫系統性能優化[J].電腦編程技巧與維護,2011(20).
[2]丁銳.中小醫院數據中心服務器群邏輯架構解決方案[J].中國數字醫學,2015(10).
[3]賈末,王永剛,沈韜,張穎琦.醫院信息系統性能優化策略探討[J].醫學信息學雜志,2014(09).
作者單位麗水市人民醫院 浙江省麗水市 323000
姓名(1990-),男,浙江省麗水市人。大學本科學歷。助理工程師。主要研究方向為系統集成、數據庫建設、數據挖掘。