SQLServer作為一款成熟穩(wěn)定的關系型數(shù)據(jù)庫管理系統(tǒng),以其卓越的性能、靈活的配置和廣泛的應用場景,贏得了國內(nèi)市場眾多企業(yè)和開發(fā)者的青睞,在醫(yī)療、海關、政務等領域廣泛應用。而在當下數(shù)字化轉(zhuǎn)型的浪潮中,如何將SQLServer平滑遷移至國產(chǎn)數(shù)據(jù)庫,成為眾多企業(yè)面臨的新挑戰(zhàn)。
作為數(shù)據(jù)庫領域國家隊,金倉數(shù)據(jù)庫持續(xù)開展針對 SQLServer 的兼容性開發(fā)工作。目前,其推出的SQLServer 兼容版本 V009R004C010 已從功能兼容階段過渡到了強性能兼容、生態(tài)全面兼容階段,真正做到了助力用戶在遷移過程中對上層應用透明,實現(xiàn)低成本、低難度、低風險的平滑遷移。
1.全面兼容——不是所有數(shù)據(jù)庫都叫KingbaseES
一般數(shù)據(jù)庫僅能做到SQL標準和函數(shù)上兼容SQLServer,而金倉數(shù)據(jù)庫KingbaseES則能實現(xiàn)更多。
金倉數(shù)據(jù)庫KingbaseES的全面兼容不僅體現(xiàn)在對SQL語法、數(shù)據(jù)類型、存儲過程、觸發(fā)器等基本功能的兼容上。
更體現(xiàn)在對SQLServer特有功能和特性的深度兼容上,如IDENTITY用法、全局臨時表和本地臨時表的使用方式,以及多表聯(lián)合的DML語法等,確保用戶在遷移過程中能夠享受到與原系統(tǒng)相似的使用體驗。
體現(xiàn)在工具生態(tài)等方面對SQLServer的全面兼容,如數(shù)據(jù)遷移評估系統(tǒng)KDMS和一鍵遷移工具KDTS,用戶可以實現(xiàn)大規(guī)模SQLServer數(shù)據(jù)庫遷移的自動化和智能化;數(shù)據(jù)庫管理工具KStudio,實現(xiàn)一站式數(shù)據(jù)庫管理。
體現(xiàn)在體系架構層面,從存儲結構、邏輯結構、進線程結構、查詢處理體系結構到事務處理機制與SQLServer的深度兼容,從而實現(xiàn)對數(shù)據(jù)庫內(nèi)核的原生支持。
此外,金倉數(shù)據(jù)庫KingbaseES在產(chǎn)品架構上采用可插拔式的體系架構,支持靈活擴展和多種生態(tài)兼容,兼容商業(yè)和開源的外部接口協(xié)議,能夠支撐更多核心能力。
2.卓越體驗——新版本功能亮點全解析
事務處理,實現(xiàn)數(shù)據(jù)的原子性操作
SQLServer的事務運行模式包括自動提交事務、顯示事務與隱式事務模式。
在最新的SQLServer兼容版本中,金倉數(shù)據(jù)庫KingbaseES在SQL層與PLSQL層的事務處理模式與SQLServer進行了完全兼容。用戶可通過implicit_transactions參數(shù)設置并控制事務運行的3種模式。并且全面兼容支持SQLServer的事務控制全局變量@@TRANCOUNT,事務控制函數(shù)XACT--STATE(),CURRENT_TRASACTION_ID(), CURSOR_CLOSE_ON_COMMIT(),事務處理語句包括BEGIN TRAN, BEGIN TRANSACTION, BEGIN TRAN tran_SOF_getmaxdjbh, END TRAN, END TRANSACTION, END TRAN tran_getmaxdjbh,COMMIT,ROLLBACK,SAVE等,以及嵌套事務。從而實現(xiàn)了事務管理中事務隔離級別、事務開始、事務提交、事務回滾、事務保存點功能等事務處理模式與SQLServer事務處理模式的原生兼容。
批處理,構建高效數(shù)據(jù)管道
批處理語句GO是SQLServer的一個強大的工具。它可以幫助用戶更好地組織和管理 SQL 腳本,提高腳本的可讀性和可維護性,并增強錯誤處理和事務管理的能力以及執(zhí)行效率。GO命令可以將 SQL 腳本中的語句分隔成多個邏輯上的批處理,允許用戶將相關的語句組合在一起作為一個邏輯單元來執(zhí)行。由于每個GO命令之前的語句被視為一個獨立的批處理,這種錯誤隔離的特性使得調(diào)試和修復問題變得更加容易。另外GO命令所帶來的事務管理能力有助于確保數(shù)據(jù)的完整性和一致性。而通過在GO命令后指定一個數(shù)字,可以重復執(zhí)行前面的批處理語句指定的次數(shù)。這對于需要多次執(zhí)行相同操作的場景非常有用。
SQLServer中,單個批處理語句集合會被編譯為單一的執(zhí)行計劃被系統(tǒng)緩存,當再次執(zhí)行時無需重新編譯,從而極大地提升了SQL語句集的執(zhí)行效率。
金倉數(shù)據(jù)庫最新的SQLServer 兼容版,實現(xiàn)了對批處理命令GO語句的全面支持。無論是通過客戶端工具(ksql、kstudio),還是從客戶端編程接口,用戶均可以在SQL層以及PLSQL層通過GO命令,對單條或多條SQL語句在數(shù)據(jù)庫服務器端完成批量執(zhí)行,從而繼續(xù)享受GO命令帶來的巨大便利與效率提升了。
語句缺失分號,貼心順應用戶習慣
SQLServer支持SQL語句之間無分號分隔符。在 SQLServer Management Studio (SSMS) 中,默認情況下,用戶可以在一個查詢窗口中輸入多個不帶分號的 SQL 語句,并且可以一次執(zhí)行這些語句。對于這種看似奇怪的“特性”,KingbaseES也在最新的SQLServer 兼容版本中實現(xiàn)了支持。從此SQLServer的金倉用戶們可以無壓力地延續(xù)他們方便輕松的書寫風格,而不用改變自己書寫的習慣了。
3.實踐落地——行業(yè)“領跑”樹標桿
當前,金倉數(shù)據(jù)庫KingbaseES已在醫(yī)療、海關、政務等領域打造了一系列替代SQL Server的典型案例,為千行百業(yè)的數(shù)字化轉(zhuǎn)型升級提供持續(xù)服務。
在醫(yī)療領域,金倉與上百家醫(yī)療廠商進行生態(tài)性兼容,與數(shù)十家核心廠商做了深度定制化開發(fā)的兼容認證,打造了一系列優(yōu)質(zhì)的醫(yī)療信創(chuàng)解決方案。并服務全國各地的衛(wèi)健委、醫(yī)保局及全國省市縣各大醫(yī)院,滿足用戶對數(shù)據(jù)全生命周期管控的需求,穩(wěn)定地支撐智慧醫(yī)院、智慧醫(yī)保、醫(yī)共體、城市健康云等應用系統(tǒng)的建設。
在衛(wèi)寧健康項目中,通過KingbaseES智能便捷的數(shù)據(jù)遷移工具以及對SQLServer的高度兼容技術,金倉數(shù)據(jù)庫已適配了衛(wèi)寧基于SQLServer數(shù)據(jù)系統(tǒng)80多萬行代碼,其中部分系統(tǒng)存儲過程超過4000個,完整適配了電子病歷、影像系統(tǒng)、病案管理等20多套主要業(yè)務系統(tǒng),實現(xiàn)了數(shù)據(jù)的無縫對接和應用的平滑過渡,加速衛(wèi)寧醫(yī)療健康衛(wèi)生信息化的自主可控進程!
展望未來,金倉數(shù)據(jù)庫將繼續(xù)堅持自主創(chuàng)新之路,在千行百業(yè)的不同場景中打磨提升,提升產(chǎn)品的穩(wěn)定性和可用性。同時,金倉數(shù)據(jù)庫也將繼續(xù)深化對SQLServer的兼容性開發(fā),力求實現(xiàn)對SQLServer功能更深層次的兼容,并在性能方面超越原有系統(tǒng)。
我們相信,金倉數(shù)據(jù)庫以其卓越的性能和高度兼容性,正在逐步成為SQLServer兼容領域的引領者。金倉數(shù)據(jù)庫也將繼續(xù)為用戶創(chuàng)造更大的價值,推動數(shù)字化轉(zhuǎn)型的深入發(fā)展。