資料庫mssqlmysqlsqlserver和oracle的優缺點

2021-03-30 15:33:37 字數 5803 閱讀 4926

1樓:杜爺1號

區別sql 有個標準, 就是 ansi sql . 有 sql88, sql92 標準。 如果要學正宗的 sql 要去看 ansi sql .

oracle 和 sql server 大體按照找個 sql 標準來的,但是又有了不少擴充,自己定義了不少的東西。

主要的區別就是它們各自擴充的東西是不同的。 所以 oracle 的 sql 稱為 pl sql ,sql server 的 sql 稱為 t-sql. 不過基本的語法和定義是相同的。

2樓:汪雄輝拉

mssql就是sqlserver

優點:易用性、適合分散式組織的可伸縮性、用於決策支援的資料倉儲功能、與許多其他伺服器軟體緊密關聯的整合性、良好的價效比等;

缺點:只能執行在微軟的windows平臺,沒有絲毫的開放性可言;

mysql

優點:輕量級,部署方便,開源,免費(技術服務是要收費的),除此之外,mysql幾乎擁有了oracle提供的大部分功能,能夠承載絕大多數的應用,最關鍵的是mysql可以根據不同應用定製自己的資料庫,因為mysql的儲存引擎是外掛式的。

缺點:面對高併發,海量資料,需要嚴謹的資料庫架構設計,否則效能會存在問題;

oracle

優點:之所以能在資料庫市場獨佔鰲頭,就是因為對海量資料處理的時候所表現出的效能和穩定,完善的災難備份機制,所以一般企業的核心資料首選是oracle。

缺點:對於非dba來說,安裝oracle是一件很恐怖的事情,部署需要一定專業知識;而且oracle的收費也不是一般企業能承受的住的;

----------------------

以上僅為個人的理解,供參考

3樓:

蘿蔔青菜,各有所能。

oracle資料庫和sql server資料庫各有什麼優缺點

4樓:戢青芬百凰

1.oracle為客戶端開啟會話有兩種方式:共享服務和專用服務。在專用服務情況下,***為連線請求建立新程序(unix環境下是process,windows下我想應該是thread吧);共享服務情況下,***將客戶請求交給dispatcher,由dispatcher安排多客戶的作業。

sqlserver在預設情況下自動為客戶端連線建立執行緒,當有非常多的客戶連線時,sql

server可以使用執行緒池管理多會話,這類似於oracle的共享服務。

2.oracle的記憶體管理分三塊:sga、pga、uga;在msdn中並沒有提及怎樣控制sql

server的記憶體分配,只是提到sql

server的虛擬地址空間分成緩衝池佔用空間和其餘空間,且sql

server有動態記憶體管理機制。

3.oracle的例項一次只能管理一個資料庫,資料庫在叢集環境下可由多個例項管理。而sql

server單個例項一次能管理多個資料庫。oracle資料庫儲存方式有os檔案、裸分割槽、a**等,sql

server的資料庫儲存只能是系統檔案。

4.oracle資料庫包含表空間,表空間可以使用多個檔案儲存資料,表空間就類似於sql

server中的檔案組。區是物理連續上連線的儲存空間,區中包括最小i/o單位——塊(oracle)或頁(sql

server)。但sql

server頁大小是8kb,區包含8個頁;oracle不同表空間可以有不同的塊大小,區的大小和保護塊的數量也不固定。sql

server的頁由一個資料庫物件獨佔,物理儲存的資料庫物件只有索引和表兩種;而oracle中的段由資料庫物件定義,且其儲存的物件複雜得多,有表段、索引段、回滾段、臨時段等等,所以在一個聚簇段中的塊可能被多個表使用。

5.oracle使用freelist管理可以塊,通過設定pctfree和pctused控制快在何種條件下可用;sql

server使用gam、sgan記錄可用頁,使用pfs跟蹤頁的使用狀況。

6.sql

server的表有兩種方式組織資料的物理儲存,一種是無序的堆組織,這oracle是類似的;另一種是由聚簇索引決定資料排序方式,oracle也可有索引組織方式,但不同於sql

server,它依鍵排序資料,不增加一個索引用於聚簇,不會有額外的開銷。此外,oracle的聚簇表是多表儲存在相同段上,像sql

server的混合區可以包含不同表的頁,但oracle的聚簇表是一組含有相同列的表可以儲存在相同的塊中,聚簇表的可以有索引或hash方式組織資料

7.oracle建立表分割槽會建立不同的段,sql

server

2005通過分割槽方案將不同分割槽儲存到不同的檔案組。oracle有三種分割槽方法,sql

server使用分割槽函式。oracle

11g中還將加入時段分割槽、系統分割槽等。

8.sql

server的索引只有b-樹,oracle有b-樹、點陣圖、函式、點陣圖連線和可擴充套件索引。

9.oracle的重做日誌與sql

server的事務日誌都使用迴圈寫入策略,oracle使用多個重做日誌檔案,sql

server也可使用多個日誌檔案,但將日誌檔案分成多個虛擬日誌,以虛擬日誌為單位進行迴圈。

5樓:尾秋芹偉琬

2.oracle真正實現了行級鎖,sqlserver也宣稱實現了行級鎖,但你實際去試,如果不加索引,其實是不行的。

3.oracle因為有多版本資料的技術,讀寫操作不會相互等待,雖然sqlserver

2005學習oracle增加了snapshot機制,從而也引進了多版本資料(mysql也有多版本資料機制,不能說一定是學習oracle),但是實際效果感覺就是2個版本的資料,隔離級別為read

***mitted時候,讀寫不再相互等待,但是把隔離設定為serializable還是會產生讀寫相互等待。

4.oracle的事務日誌歸檔相當方便,而sqlserver要用事務日誌備份來實現,而且還要配置自動作業,啟動agent服務。

5.oracle的資料字典豐富,使得dba容易判斷資料庫的各種情況,雖然sqlserver

2005學習了oracle的資料字典的特點,但從數量及方便程度上還是相差太多。個人感覺這是oracle最人性化的地方。

6.oracle的pl/sql比sqlserver的t-sql功能強大很多。

7.oracle的觸發器比sqlserver的種類多幾種。

8.oracle的備份恢復原理相當簡單明瞭,備份就在作業系統上拷貝資料檔案好了,恢復呢,再拷貝回來,資料是舊的,不怕,應用重做日誌好了。sqlserver呢,雖然原理在本質上還是這些,但操作起來麻煩多了,麻煩到讓你體會不到其本質。

9.oracle資料庫啟動可以有多個階段,使得dba可以在不同的情況下,通過啟動到特定的階段解決一些特殊問題,而sqlserver只要服務一啟動,所有資料庫就都開啟了。

10.sqlserver給人的感覺是簡單易用,但是我要說,如果你繼續向前走,就會發現sqlserver的體系結構相當複雜(注意我這裡是說的複雜),大體還是沿襲的sybase的體系結構,這種複雜結構,估計很難有根本性的改變,而oracle呢,時間越長你越會覺得其體系結構嚴謹,雖然開始會感覺很難。我的一個比喻,sqlserver是傻瓜相機(就是那些一兩千的小數碼),oracle是單反相機(40d,5d,d300),如果你是入門者,那用傻瓜相機好了,在各種環境下拍攝,基本都過得去,用單反,光圈、快門都要自己設定,反倒不如傻瓜相機的效果,如果你是高手了,那傻瓜相機就很難得心應手了。

11.oracle的書籍一般都比較深,隨便一說就是一大批,epertoracle、practicaloracle8i、cost-basedoracle,sqlserver呢,恐怕只有那套insidesqlserver了,雖然sqlserver的書籍數量比oracle的多的多(特別是在國內),但多數都是stepbystep的入門書。

12.對比sql*plus與sqlcmd(或2000的osql,6.5的isql),sqlcmd的功能是太簡陋,差得太多了。

13.sqlserver的最大優點就是和windows結合緊密,易用,但是要注意事情都是兩面的,這些優點可能導致其致命的缺點,例如易用,使得搞sqlserver的人可以不求甚解,有時候不求甚解是沒問題的,但是有時候不求甚解可能會造成災難,特別是對搞資料庫的人來說。不好意思,本來要說sqlserver的優點呢,最後也成了缺點了。

6樓:光曦蓬採楓

1. oracle跨平臺,sql

server只能執行在windows上,而windows能夠安裝的硬體是有限的,如sun的sparc伺服器不能安裝windows,一些大型機、小型機也只能裝unix,在這些高階機器上就只能跑oracle了,這注定了oracle就是高階資料庫,而sql

server呢,中低端。

2. oracle真正實現了行級鎖,sql

server也宣稱實現了行級鎖,但你實際去試,如果不加索引,其實是不行的。

3. oracle因為有多版本資料的技術,讀寫操作不會相互等待,雖然sql

server

2005學習oracle增加了snapshot機制,從而也引進了多版本資料(mysql也有多版本資料機制,不能說一定是學習oracle),但是實際效果感覺就是2個版本的資料,隔離級別為read

***mitted時候,讀寫不再相互等待,但是把隔離設定為serializable還是會產生讀寫相互等待。

4. oracle的事務日誌歸檔相當方便,而sql

server要用事務日誌備份來實現,而且還要配置自動作業,啟動agent服務。

5. oracle的資料字典豐富,使得dba容易判斷資料庫的各種情況,雖然sql

server

2005學習了oracle的資料字典的特點,但從數量及方便程度上還是相差太多。個人感覺這是oracle最人性化的地方。

6. oracle的pl/sql比sql

server的t-sql功能強大很多。

7. oracle的觸發器比sql

server的種類多幾種。

8. oracle的備份恢復原理相當簡單明瞭,備份就在作業系統上拷貝資料檔案好了,恢復呢,再拷貝回來,資料是舊的,不怕,應用重做日誌好了。sql server呢,雖然原理在本質上還是這些,但操作起來麻煩多了,麻煩到讓你體會不到其本質。

9. oracle資料庫啟動可以有多個階段,使得dba可以在不同的情況下,通過啟動到特定的階段解決一些特殊問題,而sql server只要服務一啟動,所有資料庫就都開啟了。

10. sql server給人的感覺是簡單易用,但是我要說,如果你繼續向前走,就會發現sql server的體系結構相當複雜(注意我這裡是說的複雜),大體還是沿襲的sybase的體系結構,這種複雜結構,估計很難有根本性的改變,而oracle呢,時間越長你越會覺得其體系結構嚴謹,雖然開始會感覺很難。我的一個比喻,sql server是傻瓜相機(就是那些一兩千的小數碼),oracle是單反相機(40d,5d,d300),如果你是入門者,那用傻瓜相機好了,在各種環境下拍攝,基本都過得去,用單反,光圈、快門都要自己設定,反倒不如傻瓜相機的效果,如果你是高手了,那傻瓜相機就很難得心應手了。

11. oracle的書籍一般都比較深,隨便一說就是一大批,epert oracle、practical oracle 8i、cost-based oracle,sql server呢,恐怕只有那套inside sql server了,雖然sql server的書籍數量比oracle的多的多(特別是在國內),但多數都是step by step的入門書。

12. 對比sql*plus與sqlcmd(或2000的osql,6.5的isql),sqlcmd的功能是太簡陋,差得太多了。

13. sqlserver的最大優點就是和windows結合緊密,易用,但是要注意事情都是兩面的,這些優點可能導致其致命的缺點,例如易用,使得搞sql server的人可以不求甚解,有時候不求甚解是沒問題的,但是有時候不求甚解可能會造成災難,特別是對搞資料庫的人來說。不好意思,本來要說sql server的優點呢,最後也成了缺點了。

資料庫是什麼,什麼是資料庫

什麼是 資料庫 我們舉個例子來說明這個問題 每個人都有很多親戚和朋友,為了保持與他們的聯絡,我們常常用一個筆記本將他們的姓名 地址 等資訊都記錄下來,這樣要查誰的 或地址就很方便了。這個 通訊錄 就是一個最簡單的 資料庫 每個人的姓名 地址 等資訊就是這個資料庫中的 資料 我們可以在筆記本這個 資料...

sql資料庫和oracle資料庫string型別欄位用orderby排序分別是根據什麼排序的啊

首先說明下oracle中沒有string型別,而是varchar型別。order by 的順序是assic 讀作 阿斯科馬 碼錶中 字元 列進行排序的。解釋 一般會根據字串的首字母 大些字母 小寫字母 特殊字元 數字。如果首位相同繼續排列第二位,直到不同的位。sql資料和oracle資料庫都沒有st...

MYSQL資料庫問題,MySQL資料庫問題?

建立資料庫 create database 資料庫名 on primary 主檔案 name 邏輯名,filename 儲存路徑及檔名,是字串需要用 size 大小 需要加單位,如mb log on 日誌檔案 name 邏輯名,filename 儲存路徑及檔名,size 大小 建立表 1 判斷表是否...