達夢與Oracle資料庫各有千秋

tangwuqiao發表於2022-04-24

      作為國產資料庫的領頭軍,達夢資料庫會逐漸替換Oracle資料庫,引領國產資料庫再上一個臺階,但國產資料庫的效能相比Oracle略有一定差距,我們作為IT行業資料庫領域工作人員,更應該為國產資料庫的發展,驚險綿薄之力。以下我從幾個角度闡述達夢和oracle資料庫特點:

      1、資料庫體系結構
Oracle資料庫:多程式結構,大家比較熟悉的dbwr,lgwr,smon,pmon,ckpt等都是程式。
達夢資料庫:單程式多執行緒包含監聽執行緒、工作執行緒、IO執行緒、排程執行緒、日誌相關執行緒等所有的執行緒都整合到了dmserver程式中。

      2、狀態的切換
Oracle資料庫:只能從mount狀態啟動到open狀態,但不能從open狀態直接切換到mount狀態。
達夢資料庫:可以在mount狀態和open狀態之間自由切換,還增加了一個suspend掛起狀態。
suspend:只讀狀態,只能讀,不能寫。mount和open可以相互轉換,suspend和open也可以相互轉換。但mount和suspend不能相互轉換。

     3、結束符的使用
oracle資料庫:命令、SQL以及程式包都是以";"為結束符。
達夢資料庫:SQL和命令使用";"結束,但是在執行程式包、建立模式等操作的時候要以"/"為結束符。

     4、關於備份
Oracle資料庫:熱備在RMAN中進行操作。
達夢資料庫:dmrman的使用與RMAN很相似,但是隻能做冷備,做熱備的時候需要在資料庫中進行備份操作。

     5、監聽程式
Oracle資料庫:有單獨的監聽程式,使用lsnrctl程式監聽操作。
達夢資料庫:沒有了單獨的監聽程式,監聽變成了執行緒dm_lsnr_thd整合到了dmserver的程式中。

     6、修改聯機日誌檔案大小
Oracle資料庫:需要新增新的日誌檔案進來,刪除原來老的日誌進行替換。
達夢資料庫:可以直接對logfile的大小進行擴容。

     7、使用者模式上有較大區別
Oracle資料庫:使用者和模式為一一對應關係,一個使用者對應一個模式
達夢資料庫:使用者和模式是一對多的管理,一個使用者可以擁有多個模式,一個模式僅能歸屬於一個使用者。
當系統建立一個使用者時,會自動生成一個對應的模式使用者還可以建立其他模式。

     8、關於表
Oracle資料庫:預設建立的是堆表。
達夢資料庫:DM預設建立的是索引組織表。
索引組織表和堆表的區別:
索引組織表有且僅有一個聚簇索引鍵,表資料按照聚簇索引鍵排序(資料是有序的,插入有序),
rowid是邏輯rowid,佔用儲存空間,所以索引組織表比堆表佔用較多空間。

     9、單個資料檔案的大小
Oracle資料庫:單個資料檔案的大小最大為2^22-1個塊,資料塊是大小是8k,那麼能建立的最大的資料檔案大小是:2^22*8K=32G-1,單個資料檔案的最小值在實驗中建立的最小資料檔案為81k;
達夢資料庫:最大值為頁大小的 2的31次方-1,如果頁大小是8K,最大值為2^31*8K=16T-1,
最小值不能低於頁大小的 4096倍,如果頁大小是8K最小值,將不低於32M。

     10、關於引數修改的格式
Oracle資料庫:alter system set xxx scope=spfile/memory/both;
達夢資料庫:alter system set xxx spfile/memory/both;

     11、查詢例項狀態和線上日誌檔案的語句
Oracle資料庫:
select status from v$instance;
select * from v$log;
select * from v$logfile;

達夢資料庫:
select status$ from v$instance;
select * from v$rlog;
select * from v$rlogfile;

     以上僅為個人見解,供大家參考,有不對之處請大家指正,謝謝!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28793776/viewspace-2888458/,如需轉載,請註明出處,否則將追究法律責任。

相關文章