點(diǎn)評(píng):巍然聳立的SQL Server 2012 |
發(fā)布時(shí)間: 2012/9/15 14:51:46 |
正如大家一直以來(lái)對(duì)SQL Server新版本的殷切期望,SQL Server 2012也確實(shí)沒(méi)有令我們空等,它所帶來(lái)的海量新功能可以說(shuō)光是名稱就能占據(jù)幾頁(yè)稿紙。無(wú)論是商務(wù)智能用戶渴望的Reporting Service還是令I(lǐng)T人士望眼欲穿的查詢性能與正常運(yùn)行時(shí)間,它幾乎能夠很好地為任何類型的用戶服務(wù)。SQL Server 2012可以說(shuō)是一款攜威而來(lái)、全線升級(jí)的產(chǎn)品,除了少數(shù)幾點(diǎn)令人失望的瑕疵外,我們很難對(duì)它橫行非議。
Reporting Service中專為數(shù)據(jù)探測(cè)及虛擬化添加了一款名為Power View的網(wǎng)絡(luò)前端。Analysis Service則引入了一套全新的語(yǔ)義模型,為商務(wù)智能專家在構(gòu)建解決方案時(shí)提供更多靈活性。此外,列式存儲(chǔ)索引機(jī)制的出現(xiàn)令查詢性能更上一層樓;再加上新的Data Quality Service以及對(duì)原有Master Data Service的加強(qiáng),SQL Server 2012無(wú)疑將在處理企業(yè)數(shù)據(jù)方面更加得心應(yīng)手。 當(dāng)然,SQL Server 2012中還包含了大量專為數(shù)據(jù)庫(kù)管理員們準(zhǔn)備的新功能,旨在幫助他們?cè)诠芾砉ぷ髦懈痈咝У靥幚韱?wèn)題。這些內(nèi)容我在本點(diǎn)評(píng)文章中也會(huì)談到,不過(guò)首先從大家最關(guān)心的、能夠幫助系統(tǒng)(QQ:小默862693539)可用性達(dá)到新水平的功能開(kāi)始。 錦上添花的可用性 讓咱們首先聊聊新版本中最大的進(jìn)化內(nèi)容之一——AlwaysOn。AlwaysOn是一種新的HA技術(shù),它的出現(xiàn)將傳統(tǒng)數(shù)據(jù)庫(kù)鏡像徹底扔進(jìn)垃圾桶。由于鏡像備份機(jī)制已然啟動(dòng),因此鏡像被局限在某臺(tái)單一目標(biāo)服務(wù)器上顯然并不理想。另外,除非我們關(guān)閉自己的主數(shù)據(jù)庫(kù),否則這些鏡像目標(biāo)根本毫無(wú)用處,甚至連內(nèi)容讀取都無(wú)法實(shí)現(xiàn)。針對(duì)以上兩點(diǎn)問(wèn)題,AlwaysOn交出了令人滿意的答卷。我們完全可以為自己的主數(shù)據(jù)庫(kù)輕松配置多套只讀副本,并在系統(tǒng)(QQ:小默862693539)運(yùn)行狀態(tài)良好時(shí)將其作為報(bào)告機(jī)制使用。當(dāng)然,與鏡像備份類似,我們也可以對(duì)AlwaysOn進(jìn)行設(shè)置,指示其與目標(biāo)主數(shù)據(jù)庫(kù)實(shí)時(shí)同步或者延時(shí)同步。 鏡像可讀性本身已經(jīng)解決了備份機(jī)制中的一個(gè)老大難問(wèn)題,但AlwaysOn最大的貢獻(xiàn)還不僅限于此——它實(shí)現(xiàn)了多套相關(guān)數(shù)據(jù)庫(kù)之間的故障切換。在通常情況下,兩套或兩套以上數(shù)據(jù)庫(kù)的正常運(yùn)行往往需要彼此之間的相互支持;也就是說(shuō)只要其中某一套出了問(wèn)題,僅憑鏡像根本不足以支撐起全局業(yè)務(wù)。而AlwaysOn利用Availability Group(可用性群組)解決了數(shù)據(jù)庫(kù)之間相互依賴的問(wèn)題。該功能允許我們將那些必須同時(shí)失效的數(shù)據(jù)庫(kù)指定為一個(gè)群組,這樣一旦某套關(guān)鍵性數(shù)據(jù)庫(kù)失效,相關(guān)數(shù)據(jù)庫(kù)也將一并失效。通過(guò)這種方式,數(shù)據(jù)庫(kù)的整體切換終于成為可能。 數(shù)據(jù)庫(kù)的彼此依賴性是數(shù)據(jù)庫(kù)管理員們最為頭痛的另一大課題。當(dāng)我們將數(shù)據(jù)庫(kù)恢復(fù)到不同的運(yùn)行環(huán)境中時(shí),需要考慮到各種不同的情況,例如連入服務(wù)器、用戶賬戶以及跨數(shù)據(jù)庫(kù)規(guī)程與視圖等等。這一切都必須通過(guò)同步與現(xiàn)有工作狀態(tài)相匹配方能達(dá)到目的。而在SQL Server 2012中,我們發(fā)現(xiàn)了一項(xiàng)名為ContainedDB的功能,在它的幫助下我們能夠?qū)⒁惶讛?shù)據(jù)庫(kù)轉(zhuǎn)化為獨(dú)立體系,也就是不與任何外部因素相關(guān)聯(lián)。在這項(xiàng)功能啟用時(shí),我們無(wú)法向目標(biāo)數(shù)據(jù)庫(kù)寫入任何將對(duì)其它數(shù)據(jù)庫(kù)產(chǎn)生依賴性的內(nèi)容,也不允許該數(shù)據(jù)庫(kù)中包含任何將被外部系統(tǒng)(QQ:小默862693539)所調(diào)用的對(duì)象。事實(shí)上,ContainedDB中的用戶賬戶甚至根本沒(méi)有服務(wù)器級(jí)別的登錄選項(xiàng),這樣大家就不必?fù)?dān)心自己在將數(shù)據(jù)庫(kù)移動(dòng)到新設(shè)備中時(shí)需要進(jìn)行麻煩的賬戶信息同步了。當(dāng)然,這還只是ContainedDB功能的首個(gè)版本,其中必然存在著一些問(wèn)題與局限性;但它的意義非常重大,至少為我們帶來(lái)了一個(gè)良好的開(kāi)端。 另一大重大改進(jìn)來(lái)自事件日志與追蹤系統(tǒng)(QQ:小默862693539)。SQL Profiler已經(jīng)被正式舍棄,新的XEvents(即擴(kuò)展事件)GUI取而代之。XEvents在最新版本中得到了極大擴(kuò)展,新的追蹤機(jī)制也將完全以它為核心運(yùn)作。對(duì)于大多數(shù)用慣了老版本的用戶來(lái)說(shuō),這次大刀闊斧的改動(dòng)可能會(huì)帶來(lái)些許不適,但我可以保證一旦上手,各位絕對(duì)會(huì)對(duì)新方案贊不絕口。XEvents比過(guò)去的SQL Trace更為靈活,也就是說(shuō)如今追蹤活動(dòng)給設(shè)備帶來(lái)的性能影響已經(jīng)變得微乎其微。不僅追蹤機(jī)制發(fā)生變革,重播功能也以Distributed Replay(分布式重播)之名改頭換面。顧名思義,它讓用戶得以從多臺(tái)設(shè)備重播那些受到追蹤的工作負(fù)載,這樣我們就能更好地模擬所在企業(yè)的日常生產(chǎn)活動(dòng)。如果大家正打算進(jìn)行更新測(cè)試或者考察自己的設(shè)備能否應(yīng)對(duì)突如其來(lái)的數(shù)據(jù)爆發(fā),那么這些功能的出現(xiàn)實(shí)在是既貼心又實(shí)用。 索引體系改進(jìn) 索引體系迎來(lái)兩大改進(jìn)——在線重新索引與列式存儲(chǔ)索引。相對(duì)于大多數(shù)企業(yè)針對(duì)數(shù)據(jù)庫(kù)管理員們所做的管理簡(jiǎn)易化宣傳,少數(shù)幾項(xiàng)功能似乎一直并未受到多少重視,而在線重新索引正是其中最被忽視的項(xiàng)目之一。相信大家跟我一樣,都曾為SQL Server 2005中的在線重新索引功能而感到興奮不已;然而事實(shí)證明那套東西根本無(wú)法作用全部數(shù)據(jù)類型。在實(shí)際操作中,我們很快發(fā)現(xiàn)任何包含可變長(zhǎng)字符、n長(zhǎng)度可變長(zhǎng)字符、可變二進(jìn)制以及XML列數(shù)的索引都無(wú)法被在線重新索引功能接受。因此,我們不得不為自己的重新索引規(guī)范添加定制邏輯,以其使理解這兩種不同類型的索引內(nèi)容,F(xiàn)在,革命終于迎來(lái)新的進(jìn)展,各種數(shù)據(jù)類型都可以為在線重新索引所支持,而我們也真正對(duì)全天候運(yùn)行的應(yīng)用程序提供在線索引維護(hù)。只要我們能夠?qū)υ诜謪^(qū)表進(jìn)行在線重新索引處理,這項(xiàng)新功能也就真正服務(wù)于業(yè)務(wù)流程了。 SQL Server 2012還引入了一套新型索引機(jī)制,名為列式存儲(chǔ)索引。傳統(tǒng)的索引會(huì)將數(shù)據(jù)以行為單位進(jìn)行存儲(chǔ),并將這些行添加到索引當(dāng)中以完成索引任務(wù)。列式存儲(chǔ)索引則是以列為單位存儲(chǔ)數(shù)據(jù),并將這些列添加到索引中以完成索引任務(wù)。根據(jù)微軟公司的說(shuō)法,這種新機(jī)制能夠在相同情況下帶來(lái)十倍于傳統(tǒng)索引的性能表現(xiàn)。然而,這一次微軟似乎有些過(guò)謙:根據(jù)我本人的實(shí)際體驗(yàn),性能提升遠(yuǎn)遠(yuǎn)不止十倍。列式存儲(chǔ)索引的出現(xiàn)主要是為了迎合大數(shù)據(jù)集倉(cāng)儲(chǔ)所帶來(lái)的需求。但我相信大家可能不會(huì)在OLTP(即聯(lián)機(jī)事務(wù)處理)方面使用這套新機(jī)制,因?yàn)榱惺酱鎯?chǔ)具有只讀屬性。 除了顯著的性能提升之外,SQL Server 2012還能夠被安裝在Windows Server內(nèi)核之中。這不僅增加了服務(wù)器的全局處理能力,而且強(qiáng)化了安全性。在服務(wù)器內(nèi)核中運(yùn)行的服務(wù)項(xiàng)目相比較少,這意味著其中的安全漏洞也會(huì)相應(yīng)減少,同時(shí)可能導(dǎo)致性能低下的軟件bug也會(huì)得到有效扼制。 T-SQL強(qiáng)化 T-SQL倒沒(méi)有太多新功能,但目前的這些已經(jīng)足以應(yīng)對(duì)業(yè)務(wù)需求。我個(gè)人最喜歡的是新的LAG與EOMonth窗口化功能。LAG為我們結(jié)果集中的每一行配備了訪問(wèn)前一行中列數(shù)據(jù)的接口,也就是說(shuō)只要我們擁有給定列,就能隨心所欲地顯示同一行當(dāng)中的當(dāng)前值與過(guò)去值。說(shuō)完了LAG,再來(lái)看看EOMonth。它的功能在于幫助我們直接訪問(wèn)每月最后一天發(fā)生的賦值變化。以上二者只是新功能中的一部分,其它的就請(qǐng)各位讀者在使用中親自發(fā)掘吧。 在所有T-SQL強(qiáng)化項(xiàng)目當(dāng)中,F(xiàn)ileTable可能算是最引人注目的功能了。從根本上說(shuō),它可以直接從文件系統(tǒng)(QQ:小默862693539)中訪問(wèn)文件流數(shù)據(jù)。這里我需要解釋一下,文件流允許我們將文檔保存在文件系統(tǒng)(QQ:小默862693539)當(dāng)中,但這些文檔必須與數(shù)據(jù)庫(kù)同步備份,這樣我們才能確保資料的安全性。FileTable則更進(jìn)一步,將數(shù)據(jù)庫(kù)與文件系統(tǒng)(QQ:小默862693539)之間的交互關(guān)系透明化。首先,我們要將指定列表定義為FileTable,并為其分配一個(gè)文件系統(tǒng)(QQ:小默862693539)中的目錄。接下來(lái),我們要做的是從Windows資源管理器中將要管理的文件拖動(dòng)到該目錄中。整個(gè)過(guò)程就是這么簡(jiǎn)單,如此一來(lái)我們不僅能夠像以前那樣在文件系統(tǒng)(QQ:小默862693539)層面管理這些資料并保存到數(shù)據(jù)庫(kù)中,也可以直接從T-SQL或者Windows系統(tǒng)(QQ:小默862693539)層面對(duì)這些文件直接加以改動(dòng)。 說(shuō)了這么多優(yōu)點(diǎn),咱們?cè)賮?lái)談?wù)凷QL Server 2012中不盡人意的地方。就我個(gè)人而言,感到最失望的一點(diǎn)在于PowerShell在這個(gè)版本中所蒙受的冷落。比起AlwaysOn以及備份/恢復(fù)等功能所獲得的大幅度強(qiáng)化,SQL Server 2012中的PowerShell似乎沒(méi)有得到任何實(shí)質(zhì)性提升。至少在當(dāng)初微軟無(wú)比倚重PowerShell的那些年,一個(gè)全新的版本中絕不會(huì)只為其配備這么一丁點(diǎn)改進(jìn)。另一點(diǎn)讓人失望之處在于幾乎原封不動(dòng)的SSMS(即SQL Server管理器)。微軟已經(jīng)把SSMS移植到Visual Studio 2010當(dāng)中,但相對(duì)于這一改動(dòng)的影響力(比起Team Foundation Server中對(duì)片段管理與整合效果的提升),數(shù)據(jù)庫(kù)管理員幾乎沒(méi)能從中獲得任何實(shí)質(zhì)性的工作能力強(qiáng)化。其實(shí)在我看來(lái),這方面的改進(jìn)空間還是滿大的,比如更好的多服務(wù)器管理及報(bào)告功能、將PowerShell與SSMS嚴(yán)密整合等都是不錯(cuò)的主意。可惜,一條也沒(méi)實(shí)現(xiàn)。 在數(shù)據(jù)庫(kù)升級(jí)方面,我一直抱持著所謂“滿五原則”。也就是說(shuō),至少得有五大顯著的功能提升才能讓我們真正有興趣對(duì)自己的數(shù)據(jù)庫(kù)進(jìn)行大規(guī)模升級(jí)。不過(guò)在這里我只要從某些方面對(duì)SQL Server 2012做出點(diǎn)評(píng),還有很多方面是目前還不適合拿出來(lái)討論的。SQL Server Integration Services得到大幅修整,SQL Server Analysis Services與SQL Server Reporting Services也有令人驚艷的強(qiáng)化,這一切倒已經(jīng)足夠令人滿意了。相信在大家拿到正式版之后,一定不難從中找到說(shuō)服自己升級(jí)到SQL Server 2012的五條理由。 本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |