瞭解一下SQL Server
說實話,我在大學的時候用了下SQL Server,自從工作以來一直沒有接觸過SQL Sever,越是不接觸越是排斥,也是不瞭解越是排斥,所以花點時間瞭解下自己不熟悉的技術,可能也會有一番收穫。
SQLServer的版本
它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發的,1988年推出了第一個OS/2版本。1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和使用者見面;SQL Server 2000是Microsoft公司於2000年推出,目前最新版本SQL SERVER 2016。
Oracle的版本也開始按照這種套路了,9i,10g,11g,12c,下來就是18,因為自2018年起,Oracle資料庫的版本號將直接跳升到18
甘特魔力象限
如果說Oracle是最強大的商業資料庫,估計反對的聲音會很少,這些年來Oracle一直在這種強大的光環下,但是從近些年的發展來看,SQL Server的變化也很大,直到去年一看Garnter魔力象限,竟然飆到了第一名。
這個象限是透過多個維度來做的一個結論,所以是綜合的優勢。
DB engines的排名
我從DB Engines拿到了最新的資料庫流行度的排行版,前三甲依舊是Oracle,MySQL,SQL Server,從我的片面認識來看,SQL Server似乎沒有他地位該有的熱度。
而進一步瞭解一下資料庫產品競爭圖和客戶流向示意圖,就會發現,很多資料庫都在收縮。在我的印象中,SQL Server在韓國,臺灣用的相對比較多。
中間粗粗的一條線就是Oracle到MySQL。下面這個圖有一點需要補充,那麼就是Oracle到SQL Server,微軟已經推出了Linux平臺的資料庫版本服務,這對於Azure的發展可謂是如虎添翼,而且微軟算是投入了大量的人力財力來稀釋Oracle的市場佔有率。他們推出了SQL Server遷移到Oracle免費的策略,除了免費的SQL Server許可外,微軟還提供了免費的SQL Server技術培訓以及用於抵消遷移部署成本的補償金。當然這個政策有一定的時效性。
MVP
微軟在社群方面也花了很大的精力,他們的社群專家是被稱為MVP,是透過評選獲得的,整個的參選標準和Oracle的ACE有點像,得到榮譽之後也會傳送獎盃之類的。
安裝型別
SQL Server的安裝型別比較多,有企業版,標準版,個人版,開發版,企業評估版等。估計還有些沒有整理細緻,從版本的報價來看,比Oracle略低,版本間有一定的梯度價格。
Oracle的版本相對要少一些,企業版,標準版,還有個中間版本,版本的不同就是元件的差別了。比如ADG,RAC,Partition這些都是企業版的。
MySQL在這方面的差別更明顯,商業版,社群版,分支(MariaDB,Percona,Drizzle...),除了商業版有個基本的費用外,其他都免費,還開源,當然這麼比就不公平了,畢竟是商業資料庫和開源資料庫。
體系結構
學習一個資料庫,看看它的體系結構設計尤其重要。這是我找到的一個體繫結構圖。
整體來看,資料庫引擎是分為了下面四個部分。
-
協議層(Protocols)
這個層面SQL Server做得很全面,支援TCP/IP,name pipes等,Oracle的網路服務是獨立的,本機是bequeath協議,網路TCP.網路擴充套件支援很強,支援多埠,多種配置模式。
MySQL在這方面的要簡單一些,獨一埠,統一的協議。
-
關係引擎(Relational Engine),也稱為查詢處理器(Query Processor)
這個被稱為是SQL Server最複雜的一個元件。和我們通常所說的SQL引擎差不多。
-
儲存引擎(Storage Engine)
儲存引擎包含的元件大體有事務服務,鎖管理器,訪問方法和實用工具等。
MySQL裡面的儲存引擎那可是百花齊放,尤以InnoDB為上品。
-
SQLOS是應用層,是最底層的,裡面有很多的排程和管理,比如記憶體管理,死鎖檢測,排程等。
隔離級別
SQL Server有下面的5種事務隔離級別,比平常我們所說的多了一種:快照。
-
Read Uncommitted:僅支援悲觀併發;
-
Repeatable Read:僅支援悲觀併發;
-
Serializable:僅支援悲觀併發;
-
Snapshot: 支援樂觀併發;
-
Read Committed:預設隔離級別,依據配置既可支援悲觀併發也可支援樂觀併發
備份恢復
這方面的工作,如果手工去做,透過圖形介面就能夠完成,這一點上很多資料庫都達不到SQL Server這種易用性和使用者體驗。當然大批次的環境應該得用指令碼實現。
看了下SQL Server create database的語句,和Oracle很想,有些資料字典也會很類似。比如裡面也有information_schema,還有sys等。來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2144667/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 瞭解一下Bootstrapboot
- CSS 瞭解一下CSS
- table 元件瞭解一下?元件
- Swift GCD 瞭解一下SwiftGC
- this.$toast() 瞭解一下?AST
- JSX,瞭解一下?JS
- 瞭解SQL Server 2008的新壓縮特性SQLServer
- CSS註釋瞭解一下CSS
- async函式,瞭解一下函式
- Immutable.js瞭解一下?JS
- RecyclerView.smoothScrollToPosition瞭解一下View
- React-HOC瞭解一下React
- 木桶佈局,瞭解一下
- 策略模式不瞭解一下?模式
- iOS挖礦瞭解一下?iOS
- react-router瞭解一下React
- require.js瞭解一下UIJS
- 應用層,瞭解一下
- async/await,瞭解一下?AI
- HTTP快取瞭解一下HTTP快取
- JS事件迴圈,瞭解一下?JS事件
- redux-saga 瞭解一下Redux
- Android Camera瞭解一下Android
- Flutter ListView 拖拽排序瞭解一下FlutterView排序
- 手寫promise,瞭解一下(二)Promise
- Java鎖機制瞭解一下Java
- iOS Push詳述,瞭解一下?iOS
- 手寫promise,瞭解一下(一)Promise
- Java 鎖機制瞭解一下Java
- 何為Linux,瞭解一下?Linux
- 前端重構方案瞭解一下前端
- NativeScript-Vue,瞭解一下?Vue
- 元件化開發瞭解一下?元件化
- 詳細瞭解SQL Server 2008效能和效能優化SQLServer優化
- 你真的瞭解“SQL”嗎?《SQL優化最佳實踐》作者帶你重新瞭解SQLSQL優化
- 後生,React-Hooks瞭解一下ReactHook
- 伺服器推送 SSE 瞭解一下?伺服器
- 瞭解一下JavaScript繼承的方法JavaScript繼承