您應該使用哪個版本的SQL Server?

在安裝下一個SQL Server之前,請先等等。您確定使用的是正確的版本嗎?

我知道,管理層希望您繼續使用較舊的版本,供應商表示他們將僅支持較舊的版本,但是現在您有機會爲較新的版本辯護,我將從黑暗時代開始,介紹每個較新的版本。

 

一、 應考慮使用SQL Server 2008

在今天,SQL Server 2008已不是推薦的版本,因此讓我們繼續往下看。

 

二、 應考慮使用SQL Server 2008 R2

您需要從SQL 2008開始添加的這些新功能:

  • PowerPivot for Excel(已被替換)
  • Utility Control Point(沒人使用)
  • Master Data Services
  • StreamInsight

 

三、 應考慮使用SQL Server 2012

  • 應用程序的最新支持版本僅爲SQL Server 2012,而非2014或更高版本。
  • 您不願意安裝修補程序(因爲SP4於2017年10月發佈,此後僅存在一個安全修復程序,僅此而已。)
  • 您可以在2年內輕鬆構建另一個SQL Server(因爲支持終止於2022年7月)。
  • 您要麼不需要強大的備份加密功能,要麼願意購買第三方工具來獲取備份。

2012引入了一些新特性——可用性組,列存儲索引,contained databasesData Quality Services等。但在2012時功能十分有限,並不推薦在2012時就使用這些功能。

 

四、 應考慮使用SQL Server 2014

  • 應用程序的最新受支持版本僅爲SQL Server 2014,而非2016或更高版本。
  • 希望使用Always On可用性組(我甚至不願意將其放在此處,因爲它們在後續版本中將變得更加出色)。我只是將這視爲考慮AG的最低起點(忘記2012),因爲從2014開始,即使主庫故障,從庫也可讀。
  • 您需要對備份進行加密,並且您不願意購買第三方備份工具。
  • 您將日誌傳送用作報告工具,並且具有嚴格的權限要求(2014添加了新的服務器級角色,使此操作更加容易)。
  • 您需要在不更改代碼的情況下提高性能,並且有大量時間進行測試。2014版本的基數預估器(Cardinality Estimator)針對不同的執行計劃進行了更改,但總體上效果並不理想。您仍然必須花時間來查找會變慢的查詢,並弄清楚如何緩解這些查詢。

2014也引入了一些新特性例如:In-Memory OLTP(該版本不適合用於生產環境)、Buffer Pool Extensions, data files in Azure blobs, backing up to a URL, and Delayed Durability.

 

五、 應考慮使用SQL Server 2016

  • 您是一家獨立的軟件供應商(ISV)。2016 SP1在Standard Edition中爲您提供了許多企業功能,這意味着您可以編寫適用於Standard版本上的小型客戶端和Enterprise版本上的大型客戶端的應用程序。
  • 您需要一個非常著名的、文檔齊全的產品,很容易找到現成的材料並僱用知道如何使用此版本的人員。
  • 您需要使用標準版。因爲它支持128GB RAM(對於某些內部計劃,例如查詢計劃,甚至可以超過它。)
  • 您需要一直使用到2026年。此版本的支持時間比SQL Server 2012/2014更多,因此可以安裝一次並使用更長的時間。
  • 您對新應用程序有合規性需求。2016添加了始終加密,動態數據屏蔽,行級安全性和臨時表,這些功能使您更輕鬆地構建保護對象並跟蹤您的寶貴數據。
  • 您想使用列存儲索引。我將其稱爲最低版本,因爲它們最終是可更新的,並且列存儲索引和行存儲索引都可以建在同一表上。參考 https://docs.microsoft.com/en-us/sql/relational-databases/indexes/columnstore-indexes-what-s-new?view=sql-server-2017
  • 您需要查詢計劃監控,並且您買不起第三方工具。查詢存儲(Query Store)爲您提供了一些非常酷的功能。如果明天我再次從事全職的DBA工作,那麼它和PowerShell將是我可能掌握的兩項技能。

 

六、 應考慮使用SQL Server 2017

  • 您願意每30-60天安裝一次補丁。在這樣的較新版本中,修補程序更新非常快,並且它們修復了一些非常重要的問題。
  • 您的目標是零RPO和財務風險。2017在AG上新增了最低提交副本設置,可以確保提交被多個副本收到。
  • 您希望將來的升級更輕鬆。從2017開始,您可以在不同版本的SQL Server 間搭建分佈式可用性組(Distributed Availability Group)。DAG的功能目前還不太強大、沒有完整的文檔,但我想將其作爲進行更輕鬆升級的想法。在此之前,AG版本升級是絕對可怕的,並且通常最好建立一個新集羣並遷移到該集羣。
  • 您需要高性能的列存儲查詢。2017爲批處理模式執行計劃提供了很多不錯的選擇。
  • 您希望在Linux上運行SQL Server。但是,認真地看一下發行說明,然後單擊每個“累積更新”閱讀已修復的錯誤,一些羣集錯誤確實使我大爲驚訝。
  • 您希望在SQL Server中進行機器學習和R語言。我知道數據人員這樣做是一種新潮,但是請記住,您需要爲SQL Server許可在每核上花費2,000至7,000 美元來實現這一目標。

是的,我知道,我在2017沒有寫“您想要一個非常著名的、文檔齊全的產品”,但這不是因爲產品不好。它與2012/2014/2016相比相對較新,而且很難找到關於分佈式可用性組或Linux上的SQL Server之類的優質培訓,或者僱用知道如何使用它們的人

它們不是壞功能,它們是很棒的功能,但現在就採用爲時尚早,僅憑最佳實踐就更難了。不是不可能,只是更難。

 

七、 應考慮使用SQL Server 2019

  • 您需要儘可能長的支持壽命。直到2030年都將得到支持。問題是,整整十年不重新安裝SQL Server會很好嗎?
  • 您願意每30-60天安裝一次補丁。在這樣的較新版本中,修補程序更新非常快,並且它們修復了一些非常重要的問題。
  • 您有能力通過實驗而不是文檔來學習。當您使用這些前沿功能時,您的實驗和學習時間會增加,因爲以下內容在某些方面沒有公認的行業最佳實踐。
  • 您擅長負載和性能測試。2019增加了許多很酷的功能,但是它也對現有的執行計劃進行了重大更改。您將採取什麼措施來減輕其性能下降?
  • 您很大程度上依賴於用戶定義的功能。2019可以大大加快這些功能,儘管您需要進行大量測試。
  • 您在很大程度上依賴於表變量,並且可以更改代碼。

 

八、 那麼正確的答案是什麼?

SQL Server 2017對大多數人來說是一個非常令人信服的案例。它在新功能、穩定性和較長的支持時間之間取得了很好的平衡。大多數人無法做到每年升級每臺服務器中的數據庫,通常是現在安裝了2017,然後觀察2019的發佈情況,並計劃在2021年進行2019年的部署。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章