Oracle資料庫和Sql server資料庫各有什麼優缺點

2021-05-01 13:34:05 字數 4868 閱讀 2590

1樓:戢青芬百凰

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檔案、裸分割槽、asm等,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也可使用多個日誌檔案,但將日誌檔案分成多個虛擬日誌,以虛擬日誌為單位進行迴圈。

2樓:尾秋芹偉琬

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

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

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

committed時候,讀寫不再相互等待,但是把隔離設定為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的優點呢,最後也成了缺點了。

3樓:光曦蓬採楓

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

committed時候,讀寫不再相互等待,但是把隔離設定為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...

oracle資料庫問題,關於oracle資料庫匯出問題,錯誤如下

1 select ename,decode sign sal 1000 1,0,decode sign sal 2000 1,sal 0.1,decode sign sal 3000 1,sal 0.15,sal 0.2 sal from emp 2 select ename,case when s...

Oracle資料庫如何匯出

資料匯出具體如下 將資料庫test完全匯出,使用者名稱system 密碼manager 匯出到d daochu.dmp中。將資料庫中system使用者與sys使用者的表匯出。將資料庫中的表table1 table2匯出。將資料庫中的表table1中的欄位filed1以 00 打頭的資料匯出。將d d...