


SQL Server 2008管理和開(kāi)發(fā)的相關(guān)效能
一般而言,企業(yè)的資料每年以1.5倍的等比級(jí)數(shù)成長(zhǎng),而應(yīng)用資料的方式也一直翻新。這造成對(duì)資料平臺(tái)的穩(wěn)定性、安全、效率、可擴(kuò)充性、易管理、好開(kāi)發(fā)、跨 平臺(tái)同步資料…等需求也日益嚴(yán)苛。微軟在今年(2008)第三季發(fā)布了SQL Server 2008,它針對(duì)上述需求全面地強(qiáng)化。而本文僅針對(duì)執(zhí)行效率有關(guān)的部分進(jìn)行討論。
管理方面
以原則為基礎(chǔ)(Policy-based)的管理:
組合管理?xiàng)l件后,套用到服務(wù)器、資料庫(kù)、資料表...等單位,定期檢查或強(qiáng)制施行。在在Microsoft SQL Server 2008 Feature Pack( http://www.microsoft.com/downloads/details.aspx?FamilyId=C6C3E9EF- BA29-4A43-8D69-A2BED18FE73C&displaylang=en)已經(jīng)提供了許多與效能相關(guān)的管理原則,可用以檢核相關(guān) 的SQL Server設(shè)定。
保障運(yùn)算效能與分析
效能資料搜集分析與Management Data Warehouse:集中收集多臺(tái) SQL Server服務(wù)器執(zhí)行個(gè)體的資料,例如管理或效能資訊(硬盤(pán)使用、查詢統(tǒng)計(jì)、系統(tǒng)效能計(jì)數(shù)器…等),并產(chǎn)生分析報(bào)表。
透過(guò)精靈在指定的服務(wù)器只行個(gè)體建立SQL Server預(yù)先定義好、存放系統(tǒng)資料的資料倉(cāng)儲(chǔ)(data warehouse),該資料倉(cāng)儲(chǔ)就是一般的資料庫(kù)。
在個(gè)別服務(wù)器執(zhí)行個(gè)體收集到資料后,預(yù)設(shè)先快取到指定的本機(jī)目錄下,然后以批次的方式加入集中的Management Data Warehouse內(nèi)。
Resource Governor與資源管理:Resource Governor是SQL Server 2008新增的功能,即由定義需求可使用的CPU和記憶體資源,以保障服務(wù)器的資源不會(huì)被少數(shù)使用者過(guò)度使用。
設(shè)定不同的Pool/資源群組,規(guī)范該群組可用的資源,如CPU和Memory的比例。以保障資源不會(huì)被某些程序耗盡,而其他程序無(wú)資源可用。
僅企業(yè)版支持,以執(zhí)行個(gè)體為單位。透過(guò)以T-SQL撰寫(xiě)的自訂函數(shù)回傳所屬群組的名稱,將登入的連接(connection)賦予到與先定義好的 workload group,不是以特定的查詢語(yǔ)法為單位,在自訂函數(shù)內(nèi)可以利用Host_Name、App_Name、SUSER_Name、Is_Member、 ConnectionProperty 等 T-SQL預(yù)設(shè)函數(shù)來(lái)定義商業(yè)邏輯,例如哪個(gè)應(yīng)用程式建立的連接,就可使用高/低比例的資源。
如果沒(méi)有其它連接在第二個(gè)群組,則單一群組設(shè)定上雖不允許使用100%資源,然因?yàn)闆](méi)有其他比例分配的組群搶資源,則仍可以使用全部資源。
這可提升系統(tǒng)穩(wěn)定性,但并沒(méi)有為服務(wù)用量計(jì)價(jià)的機(jī)制。
資料壓縮:
線上資料壓縮:針對(duì)資料表,分為Row 和 Page兩種壓縮。壓縮資料雖然較耗CPU資源,但提升資料載入記憶體與回存硬盤(pán)的效率中,寫(xiě)入硬盤(pán)或傳遞到遠(yuǎn)端服務(wù)器、存儲(chǔ)體都比較快,若壓縮率好,將 因節(jié)省了I/O時(shí)間而提升整體效率。備份的內(nèi)容也可壓縮,節(jié)省硬盤(pán)資源,而壓縮率會(huì)與資料形態(tài)有關(guān)。
資料庫(kù)備份壓縮:
在記憶體備份的內(nèi)容立即壓縮,這會(huì)消耗cpu的運(yùn)算力,但寫(xiě)入硬盤(pán)或傳遞到遠(yuǎn)端存儲(chǔ)體都較快。
預(yù)設(shè)未啟動(dòng),而Mirroring 與 Log Shipping 會(huì)自動(dòng)啟動(dòng)壓縮交易記錄。
壓縮率視資料形態(tài)、資料庫(kù)本身是否有壓縮以為加密而不同。
只有Enterprise Edition 支援壓縮,但壓縮的備份可以restore到任意其它版本
Hot-Add CPU:服務(wù)器可不停機(jī)直接增加CPU,SQL Server 執(zhí)行個(gè)體也可以立即采用該CPU。
開(kāi)發(fā)方面
新資料形態(tài),日期和時(shí)間形態(tài)分開(kāi),新增date、time、datetime2、datetimeoffset 等日期格式:
時(shí)間與日期分開(kāi),在利用「between…and…」取時(shí)間間隔時(shí)可方便許多,而datetimeoffset資料格式則可以讓你記錄與時(shí)區(qū)有關(guān)的時(shí)間資料。
另外,time、datetime2、datetimeoffset 等形態(tài)的資料長(zhǎng)度可變動(dòng),讓你可在精確度與節(jié)省空間兩者間選擇。
舊的時(shí)間函數(shù)可以使用新的資料形態(tài),并提供新的時(shí)間函數(shù)以取得更精確的時(shí)間。
由于大部分的應(yīng)用日期和時(shí)間是分開(kāi)的,精確使用date 和 time類型后,在存儲(chǔ)時(shí)可節(jié)省空間,索引也更有效率,且透過(guò)T-SQL 存取時(shí),也省掉不必的格式運(yùn)算。
新索引結(jié)構(gòu),設(shè)定索引的過(guò)濾條件(Filtered Index):
對(duì)符合Where 條件的值建立索引,例如:建立索引時(shí)限制欄位值不可NULL,則針對(duì)Sparse Column建出來(lái)的索引資料量就小很多。這可減輕于一般新增、修改、刪除資料時(shí),因?yàn)橐S護(hù)索引資料所造成的負(fù)荷。
因?yàn)槭菍?duì)資料子集建索引,整個(gè)資料量少,統(tǒng)計(jì)的精確度更高,則執(zhí)行計(jì)劃的判讀將更為精確。
T-SQL 增加Merge語(yǔ)法:
與ANSI SQL 2006的Merge定義相容并加以延伸。
比較來(lái)源與目的資料后,以一句 Merge 語(yǔ)法同時(shí)完成新增、修改、刪除等動(dòng)作。如同單一句 SQL 語(yǔ)法自動(dòng)含在交易內(nèi),透過(guò) Merge 語(yǔ)法所有更新的資料都包在一個(gè)交易內(nèi),
不像以往需明確定義交易,然后包含多句變更資料的 DML 語(yǔ)法。以往若要同步兩個(gè)資料表,可能同事要執(zhí)行 Insert、Delete 和 Update 三句話,兩個(gè)資料表最少要 Join 比對(duì)三次,而 Merge 語(yǔ)法可以對(duì)比一次,就完成各種更新動(dòng)作。
若用 UPDATE FROM JOIN 語(yǔ)法變更資料,若來(lái)源端有兩筆以上記錄對(duì)應(yīng)到目的端,則以哪一筆記錄更新將無(wú)法推測(cè),Merge 語(yǔ)法則直接回傳錯(cuò)誤。
SQL Server 2008 與效能相關(guān)的議題就探討到此,希望對(duì)你熟悉SQL Server 2008有所幫助
關(guān)鍵字:SQL Server、管理、服務(wù)器、資料庫(kù)
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無(wú)AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解