微軟對 SQL Server做的最好的6件事情
這篇文章是轉錄自 Brent Ozar 的文章,其中記錄了6個 SQL Server有史以來最佳的6個功能,以及8個最糟的功能,來特別轉錄一下,並且說出一下我自己的看法。
SQL Server 實質上的第一版,是 SQL Server 6.5版,算是微軟從 Sybase取得完整開發權力的第一個版本,也剛好是我個人開始學習 SQL Server的第一個版本,而對台灣而言 SQL Server 6.5是開始支援雙位元版本,也就是說支援中文的字集,意義也算重大,自己的 SQL的第一張證照也是 SQL Server 6.5版。就讓我們來看一下, Brent Ozar所認為的6個有史以來最佳的功能為何吧!
作者自己都說,有些觀點可能有些人會覺得很奇怪(這我也認同),我們就來看看吧:
SQL Server 有史以來最佳的6個功能
- 6英文查詢
告訴你有些很奇怪。幾十年前,您可以用簡單的英語向資料庫伺服器詢問您想要什麼,然後得到結果。當微軟在 SQL Server 6.5 中推出該功能時,他們遠遠領先於時代,並最終在 2005 年將其刪除。我讚賞他們當時為了走在前沿所做的努力:他們盡了當時技術所能,我真的很感激他們沒有嘗試在 SQL Server 2025 中重新審視這一點。
T-SQL的存在,原本就是讓使用者在不了解演算法的情況之下對資料進行處理,而 T-SQL句子已經是非常簡單了,實在沒有什麼必要再搞一個畫蛇添足的東西啊~~~ - 5始終保持可用性組 (AG、BAG、DAG)
當可用性組 (AG) 於 2012 年問世時,其旨在取代一大堆高可用性和災難恢復功能,每個功能都基於不同的技術並具有不同的控制。故障轉移叢集實例、資料庫鏡像、日誌傳送、雙向複製和 SAN 複製如今仍然存在,但微軟對 AG 的持續投資意味著它們可以作為許多雲端實施(包括可被管理的執行個體)的基礎。我確實希望他們能夠投入更多,使該技術更易於實施、配置和排除故障,但我仍然必須將 AG 納入此列表中。這是在正確的時間提出的正確想法,當它們問世時我真的很興奮。
確實 AG的出來,可以帶來很多靈活的部分,不過唯一不變的是,公司還是得先設定 Cluster不可,也就是說,只要一但和 AG牽扯在一起,那麼公司設定 Cluster是勢在必行,如果能夠直接繞道 Cluser的話會更好! - 4SSAS、SSIS 和 SSRS
回想起 2000 年至 2005 年 Crystal Reports 主導資料視覺化業務的時期真是令人難以置信。每個人都在各個地方使用它。它是中小型企業中事實上的標準,以至於微軟必須將 SQL Server Reporting Services 免費與您購買的 SQL Server 捆綁在一起,以保持競爭力。同樣,他們必須免費提供整合服務才能與 Informatica 等工具競爭。大約十年以來,微軟不斷對這些產品進行改進,如果你把自己的職業生涯押注於這些產品,那麼在很長一段時間內,你會做得相當不錯。如今,它們已經不再受歡迎,但是由於它們長期以來的良好表現,如果我不將它們列入這個名單,那我就是失職了。
SSIS大概是轉型最成功的例子吧,它的前身 DTS已經是個家喻戶曉的產品,沒想到竟然無法直接升級到 SSIS,當時被罵個臭頭,如今不但名震四方,很多東西都必需和它相容,還出了雲端版的SSIS,它的成功是具大的。至於 Reporting Service也是,雖然目前微軟是主推 Power BI,那也是因為個人自助式報表的興起所導至,Reporting Service的出道直接把水晶報表打到地獄也不為過啊! - 3標準版和企業版功能相同
直到大約十年前,建議開發人員使用哪些資料庫功能仍然是一件非常麻煩的事情。透明資料庫加密、分割區、資料列儲存索引、稽核、變更資料擷取和壓縮等功能僅在昂貴版本中可用。SQL Server 2016 SP1將這些功能引入標準版,讓開發人員的生活更加輕鬆。我敢打賭,這個決定經過了很多會議和爭論,但結果還是值得的。
原作有點搞錯版本 SQL Server 2016 sp2之後開始,把一些原本企業版才有的功能下放到標準版,而企業版目前依舊能支援超過24顆以上的 cpu,標準版與企業版的差別,除了硬體的支援之外,還包括了與雲端的整合,讓有些不走雲端的公司,可以選用便宜的標準版,確實是一大福音啊! - 2動態管理檢視 (DMV)
現在我們認為它們是理所當然的,但在 SQL Server 2000 中,您不能只執行 SELECT 查詢來取得資料庫伺服器的健康和效能的診斷資料。今天,我們使用簡單的語言以相同的方式存取我們的用戶資料和伺服器的元數據,選擇它,處理它以進行報告,並對其採取行動。它並不完美,但它肯定比我們以前使用的 DBCC 命令要好。
自從 SQL Server 2005把黑盒子打開之後,確實很多資訊被顯示之後,對於效能調校來說會變的相對之下簡單了,我也覺得這個功能非常不錯。 - 1僅對 T-SQL 進行附加更改
您可能已經讀過這六個字七遍了,但您才剛開始了解微軟為 SQL Server 所做的最好的事情。為了真正理解這一點,請閱讀 .NET 的動盪歷史,它經歷瞭如過山車般的變化。有.NET、.NET Core、.NET Framework 4.0,又回到了普通的.NET,一路上 Windows Forms、Windows Presentation Foundation、Universal Windows Platform 也發生了巨大的變化……我什至無法形容開發人員為了繼續發布相同的應用程序,但採用了當前的最佳實踐,需要做多少工作。
另一方面,您在 2000 年編寫的查詢今天仍然有效,僅此而已。
當然,您可能會擔心由於執行計劃的變更而導致的查詢效能,但總的來說,您可以採用完全相同的資料庫應用程序,並將其連接到越來越新的 SQL Server 版本,而無需重寫應用程式本身。沒有 T-SQL 2000、T-SQL Core 或 T-SQL Framework 4.0。已經有棄用的功能,但這些幾乎都與管理有關,而不是會影響應用程式程式碼的變更。
這並不是說 T-SQL 停滯不前:微軟多年來一直在逐步增加新功能。並不是說所有這些增加的功能都是改進或沒有問題 - 但至少它們是不斷地添加,而不是要求應用程式進行更改以保持相同的功能水平。
這個不就是 SQL 指令最大的好處嗎?所有和資料處理有關的程式,不需要再學習內部處理的演算法,架構和資料處理有關的,和程式邏輯確實不會有其他關係啊~~~
0 意見:
張貼留言