官术网_书友最值得收藏!

前言

本書(shū)主要面向Microsoft SQL Server各個(gè)版本的數(shù)據(jù)庫(kù)系統(tǒng)管理和開(kāi)發(fā)人員,介紹SQL Server關(guān)系型數(shù)據(jù)庫(kù)引擎在日常使用和開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)遇到的問(wèn)題、其表現(xiàn)形式、背后運(yùn)行機(jī)理、基本理論知識(shí)、搜集和分析問(wèn)題日志的方法,以及解決實(shí)際問(wèn)題的可選手段。本書(shū)的最大特點(diǎn)是面向?qū)崙?zhàn)。討論的主題都是在企業(yè)開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用和使用SQL Server過(guò)程中,常見(jiàn)的經(jīng)典的問(wèn)題。而里面包含的案例分析,都來(lái)源于真實(shí)案例。閱讀本書(shū)可以幫助數(shù)據(jù)庫(kù)管理與開(kāi)發(fā)人員更深入地理解SQL Server的原理和運(yùn)行規(guī)律,以提高解決問(wèn)題的能力。

本書(shū)的緣起

從1999年作者開(kāi)始支持Microsoft SQL Server以來(lái),不覺(jué)10年過(guò)去了。作為一個(gè)數(shù)據(jù)庫(kù)支持工程師,每天都能接觸到各式各樣的SQL Server問(wèn)題。而在微軟內(nèi)部,又有大量的技術(shù)資料,有機(jī)會(huì)進(jìn)行一些比較系統(tǒng)的學(xué)習(xí),所以成長(zhǎng)環(huán)境還是很優(yōu)越的。這么些年和SQL Server打交道,對(duì)這個(gè)產(chǎn)品漸漸產(chǎn)生了感情。可以說(shuō),我個(gè)人是隨著產(chǎn)品成長(zhǎng)起來(lái)的。SQL Server作為微軟比較成熟的產(chǎn)品,在過(guò)去的10年里有了長(zhǎng)足的進(jìn)步。

在日常工作中,除了支持不同的客戶(hù)以外,也要對(duì)自己所學(xué)進(jìn)行總結(jié),以便傳承知識(shí)。所以開(kāi)始搜集一些有意義的問(wèn)題。一半是個(gè)人興趣,一半也是技術(shù)總結(jié)的需要。對(duì)新工程師,通過(guò)案例分析學(xué)習(xí)效果很好。所以我積累了一些比較有代表性問(wèn)題的小結(jié)和案例。

在SQL Server的各類(lèi)問(wèn)題里,作者個(gè)人最感興趣的是性能調(diào)優(yōu)的問(wèn)題。而這部分需求隨著SQL Server在企業(yè)級(jí)平臺(tái)上日益廣泛的使用,漸漸突出起來(lái)。微軟的SQL Server技術(shù)支持部門(mén),總結(jié)了一套系統(tǒng)的分析和解決問(wèn)題的方法。現(xiàn)在很多白皮書(shū)、Blog都有所介紹,但是完整地介紹這套方法的資料非常有限,而有分析案例的資源就更少。

在支持SQL Server用戶(hù)的時(shí)候,一個(gè)很深刻的體會(huì),是大家對(duì)SQL Server的能力信心普遍不足。很多用戶(hù)還把SQL Server當(dāng)中小型數(shù)據(jù)庫(kù)管理系統(tǒng)理解和使用。當(dāng)系統(tǒng)出現(xiàn)各種問(wèn)題的時(shí)候,將其歸結(jié)為SQL Server能力有限。很多人在指責(zé)SQL Server的時(shí)候,本身對(duì)SQL Server的理解并不是那么深入。作為一個(gè)對(duì)SQL Server有感情的從業(yè)人員,作者常常感到惋惜和遺憾。

SQL Server的確不是萬(wàn)能的,在有些地方,它的確有自己的局限和不足。但是,這并不妨礙SQL Server支持大數(shù)據(jù)量、大并發(fā)用戶(hù)數(shù)、高負(fù)荷的企業(yè)級(jí)應(yīng)用。作者曾經(jīng)為客戶(hù)做過(guò)壓力測(cè)試,在一臺(tái)并不十分強(qiáng)勁的服務(wù)器上運(yùn)行SQL Server,前端同時(shí)支持十幾臺(tái)Web服務(wù)器,而每臺(tái)Web服務(wù)器又同時(shí)模仿大量用戶(hù)做壓力測(cè)試。最大的壓力下,這些Web服務(wù)器的CPU使用率已經(jīng)達(dá)到100%,幾乎沒(méi)有響應(yīng)了,但是SQL Server還運(yùn)行得好好的,響應(yīng)速度還不錯(cuò)。隨著64位機(jī)器的普及和SQL Server 2005& 2008的更廣泛使用,SQL Server的能力又提高了一個(gè)臺(tái)階。作者個(gè)人見(jiàn)過(guò)很多同時(shí)支持超過(guò)2000個(gè)SQL Server并發(fā)用戶(hù),每秒鐘處理超過(guò)3000個(gè)Batch(批處理)請(qǐng)求的SQL Server。SQL Server本身的能力,對(duì)大部分的應(yīng)用場(chǎng)景來(lái)講應(yīng)該算是合格的。

可是在現(xiàn)實(shí)使用里,很多SQL Server應(yīng)用遠(yuǎn)遠(yuǎn)沒(méi)有達(dá)到上面的能力。每秒鐘處理幾百個(gè),甚至只有幾十個(gè)批處理請(qǐng)求,就已經(jīng)無(wú)法支撐。這和數(shù)據(jù)庫(kù)設(shè)計(jì)、應(yīng)用設(shè)計(jì)、以及日常管理都有關(guān)系。雖然SQL Server可以被當(dāng)作傻瓜機(jī)使用,但是如果要完全發(fā)揮SQL Server的能力,還是需要了解其工作原理、設(shè)計(jì)和配置方法,以及掌握分析和解決不同類(lèi)型問(wèn)題的能力。有些地方對(duì)開(kāi)發(fā)者和數(shù)據(jù)庫(kù)管理員的技術(shù)要求,并不比其他企業(yè)級(jí)數(shù)據(jù)庫(kù)低。作為一個(gè)支持工程師,作者學(xué)會(huì)了很多方法和技巧。可是在和用戶(hù)的溝通過(guò)程中,發(fā)現(xiàn)掌握這些方法的人并不是很多。有些人對(duì)某些方法,還有一些誤解。

在博文視點(diǎn)的幾位老師的鼓勵(lì)和支持下,作者把自己掌握的,有關(guān)關(guān)系型數(shù)據(jù)庫(kù)引擎的知識(shí)作了一些梳理,總結(jié)出在SQL Server設(shè)計(jì)和管理過(guò)程中最常遇到的問(wèn)題,進(jìn)行了比較完整的闡述。這些知識(shí)來(lái)自于對(duì)很多技術(shù)文檔、白皮書(shū)、聯(lián)機(jī)叢書(shū)和Blog的學(xué)習(xí),也來(lái)自于處理真實(shí)問(wèn)題過(guò)程中產(chǎn)生的感悟。在介紹一些基本概念的時(shí)候,聯(lián)機(jī)文檔里的定義和說(shuō)明是最權(quán)威的,所以我有意識(shí)地引用了一些,而不是自己寫(xiě)。有時(shí)候覺(jué)得聯(lián)機(jī)叢書(shū)里的中文表達(dá)不太貼切,會(huì)加一些自己的理解。作者的一個(gè)小小希望,是通過(guò)這本書(shū),能夠?qū)I(yè)界更順利地使用SQL Server,起一點(diǎn)的推動(dòng)作用。

本書(shū)的結(jié)構(gòu)

本書(shū)主要分為兩大部分。第一部分包括第1章到第5章,主要是談SQL Server服務(wù)和數(shù)據(jù)庫(kù)在使用過(guò)程中,比較容易遇到的問(wèn)題,包括空間管理,數(shù)據(jù)庫(kù)備份和恢復(fù)手段,SQL Server服務(wù)或數(shù)據(jù)庫(kù)不可訪問(wèn),數(shù)據(jù)庫(kù)損壞修復(fù)與預(yù)防,連接和認(rèn)證等問(wèn)題。

第二部分包括第6章到第13章,主要是談?wù)揝QL Server在運(yùn)行過(guò)程中對(duì)各種資源的使用,以及由此可能會(huì)遇到的服務(wù)器不穩(wěn)定、或者是性能問(wèn)題。

最后第14章是個(gè)工具性章節(jié),總結(jié)了處理SQL Server問(wèn)題時(shí)可能需要檢查的日志種類(lèi),以及搜集它們的方法。在讀者閱讀前面各章的時(shí)候,都可以做參考。

下面是各個(gè)章節(jié)內(nèi)容的粗略介紹,以及它們之間內(nèi)涵的邏輯關(guān)系。

第一部分講的是SQL Server服務(wù)和數(shù)據(jù)庫(kù)在使用過(guò)程中,比較容易遇到的問(wèn)題。

第1章:數(shù)據(jù)庫(kù)空間管理

在數(shù)據(jù)庫(kù)里存儲(chǔ)數(shù)據(jù),是SQL Server存在的理由。管理員的一個(gè)比較頭痛的問(wèn)題,是數(shù)據(jù)庫(kù)的數(shù)據(jù)文件或者日志文件,出人意料地增長(zhǎng)。本書(shū)先從單個(gè)數(shù)據(jù)庫(kù)談起,從數(shù)據(jù)的存儲(chǔ)方式,數(shù)據(jù)庫(kù)空間檢查方法入手,介紹文件空間是如何被SQL Server使用掉的。然后,會(huì)對(duì)數(shù)據(jù)文件和日志文件使用方式作深入分析,從而解決數(shù)據(jù)文件無(wú)法收縮或清空,以及日志文件無(wú)限增長(zhǎng)的問(wèn)題。最后,會(huì)討論數(shù)據(jù)庫(kù)自動(dòng)增長(zhǎng)與自動(dòng)收縮設(shè)置的利弊。利用這一章的知識(shí),管理員將可以比較自如地分析數(shù)據(jù)庫(kù)空間使用,并采取適當(dāng)?shù)姆椒ê侠硎褂脭?shù)據(jù)庫(kù)文件空間。

第2章:數(shù)據(jù)庫(kù)備份與恢復(fù)

把數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)里以后,數(shù)據(jù)庫(kù)管理員就有責(zé)任保護(hù)它們的安全。數(shù)據(jù)庫(kù)備份是管理員的重要職責(zé)。而在災(zāi)難發(fā)生后能夠根據(jù)現(xiàn)有的備份,用最短的時(shí)間恢復(fù)數(shù)據(jù)庫(kù),也是管理員面臨的挑戰(zhàn)。本章將介紹SQL Server提供的各種備份和恢復(fù)手段,以及它們最適合使用的時(shí)機(jī)。本章還會(huì)介紹用戶(hù)數(shù)據(jù)庫(kù)和系統(tǒng)數(shù)據(jù)庫(kù)備份與恢復(fù)所要注意的不同要點(diǎn)。最后,有一個(gè)練習(xí),詳細(xì)展示了將數(shù)據(jù)庫(kù)系統(tǒng)完全通過(guò)備份和恢復(fù)的方法,遷移到另一臺(tái)服務(wù)器的具體步驟。

第3章:SQL Server服務(wù)或數(shù)據(jù)庫(kù)不可訪問(wèn)

只有在SQL Server服務(wù)和每個(gè)數(shù)據(jù)庫(kù)正常啟動(dòng)以后,用戶(hù)才能訪問(wèn)他需要使用的數(shù)據(jù)庫(kù)里的數(shù)據(jù)。本章將按照SQL Server服務(wù)啟動(dòng)的順序,分析它在啟動(dòng)過(guò)程中的每一步可能會(huì)遇到的問(wèn)題,以及這些問(wèn)題的解決方法。通過(guò)這一章的介紹,讀者將可以對(duì)大部分的SQL Server服務(wù)不可用問(wèn)題有所認(rèn)識(shí),從而能夠自己去解決問(wèn)題。本章還會(huì)介紹系統(tǒng)數(shù)據(jù)庫(kù)和用戶(hù)數(shù)據(jù)庫(kù)不能正常打開(kāi)的原因,以及解決不同類(lèi)型問(wèn)題的方法。通過(guò)這些方法的介紹,管理員可以修復(fù)部分不能正常打開(kāi),但是還沒(méi)有徹底損壞的數(shù)據(jù)庫(kù)。

第4章:數(shù)據(jù)庫(kù)損壞修復(fù)

數(shù)據(jù)庫(kù)物理?yè)p壞對(duì)SQL Server的正常使用是一個(gè)嚴(yán)重的威脅。輕則單條數(shù)據(jù)記錄訪問(wèn)失敗,原先存儲(chǔ)進(jìn)去的數(shù)據(jù)無(wú)法取出,重則可能導(dǎo)致整個(gè)數(shù)據(jù)庫(kù)無(wú)法啟動(dòng),更嚴(yán)重時(shí)甚至可能影響到SQL Server的正常運(yùn)行,導(dǎo)致整個(gè)SQL Server系統(tǒng)的崩潰。本章會(huì)介紹數(shù)據(jù)庫(kù)會(huì)發(fā)生什么樣的損壞,以使得讀者能對(duì)所謂“數(shù)據(jù)庫(kù)損壞”這個(gè)概念有直觀的認(rèn)識(shí)。然后會(huì)介紹數(shù)據(jù)庫(kù)損壞檢測(cè)與修復(fù)指令:DBCC CHECKDB。在有些系統(tǒng)里,會(huì)發(fā)生數(shù)據(jù)庫(kù)反復(fù)損壞的問(wèn)題,這無(wú)疑是數(shù)據(jù)庫(kù)管理員的夢(mèng)魘。本章會(huì)介紹發(fā)生這種問(wèn)題時(shí),數(shù)據(jù)庫(kù)管理員可以采用哪些經(jīng)驗(yàn)方法,怎樣能夠盡快定位到問(wèn)題的原因。

第5章:連接與認(rèn)證

SQL Server服務(wù)和數(shù)據(jù)庫(kù)都準(zhǔn)備好以后,用戶(hù)就可以訪問(wèn)了。每個(gè)用戶(hù)訪問(wèn)到數(shù)據(jù)之前,都要成功建立連接,并且通過(guò)身份認(rèn)證。本章會(huì)介紹SQL Server支持的網(wǎng)絡(luò)協(xié)議,以及客戶(hù)端連接是怎么選擇使用哪個(gè)網(wǎng)絡(luò)協(xié)議的。本章還會(huì)介紹常用的兩個(gè)協(xié)議TCP/IP和Named Pipe在連接失敗時(shí)的檢測(cè)步驟,以及General Network Error(GNE)錯(cuò)誤可能產(chǎn)生的原因、避免這個(gè)錯(cuò)誤的最佳實(shí)踐。最后,我們還會(huì)介紹SQL Server支持的兩個(gè)認(rèn)證模式:SQL Authentication和Windows Authentication,以及SQL Server什么時(shí)候會(huì)使用Windows Delegation,這樣的SQL Server需要做什么特別配置。

第二部分講的是資源使用與性能問(wèn)題。

SQL Server的性能問(wèn)題主要有三大類(lèi):(1)系統(tǒng)資源瓶頸;(2)SQL Server內(nèi)部阻塞或者其他資源等待;(3)不夠優(yōu)化的設(shè)計(jì)或者過(guò)分復(fù)雜的語(yǔ)句。而系統(tǒng)資源瓶頸,又分內(nèi)存、磁盤(pán)I/O,以及CPU這三大類(lèi)。本書(shū)的章節(jié),也是根據(jù)這個(gè)順序展開(kāi)的。

資源不足時(shí),可能出現(xiàn)性能問(wèn)題,但嚴(yán)重時(shí)也可能會(huì)導(dǎo)致SQL Server服務(wù)器不能正常工作,甚至不響應(yīng)。所以,各個(gè)章節(jié)里涵蓋了一些和資源使用相關(guān)的SQL Server系統(tǒng)錯(cuò)誤,或者是Server Hang(服務(wù)不響應(yīng))問(wèn)題。當(dāng)我們確認(rèn)SQL Server系統(tǒng)運(yùn)行健康以后,才會(huì)進(jìn)一步檢查性能問(wèn)題。

第6章:SQL Server內(nèi)存分配理念和常見(jiàn)內(nèi)存問(wèn)題

內(nèi)存資源是SQL Server最重要的系統(tǒng)資源。本章將從Windows內(nèi)存分配開(kāi)始講起,先了解SQL Server內(nèi)存使用和Windows之間的關(guān)系。然后解讀SQL Server獨(dú)特的內(nèi)存管理模式,了解SQL Server內(nèi)部的內(nèi)存有哪些用途。按照這些用途分類(lèi),分析SQL Server每個(gè)部分的內(nèi)存使用量,各個(gè)部分內(nèi)存遇到壓力時(shí)的表現(xiàn),以及應(yīng)對(duì)方法。針對(duì)不同類(lèi)型的問(wèn)題和錯(cuò)誤,會(huì)有典型的案例分析。本章還會(huì)分析一些對(duì)于SQL Server內(nèi)存使用的常見(jiàn)誤解,澄清一些錯(cuò)誤的認(rèn)識(shí)。這一章里理論知識(shí)比較多,可能比較艱深。但的確是保障SQL Server健康運(yùn)行和性能調(diào)優(yōu)的一個(gè)很重要的環(huán)節(jié)。

第7章:SQL Server I/O問(wèn)題

I/O瓶頸也是SQL Server經(jīng)常遇到的一個(gè)問(wèn)題。本章會(huì)介紹SQL Server在做什么操作時(shí)候,怎么樣和硬盤(pán)做讀寫(xiě)交互。當(dāng)遇到I/O問(wèn)題的時(shí)候,如果不能很容易地提高硬盤(pán)的響應(yīng)速度,減少SQL Server發(fā)出的讀寫(xiě)請(qǐng)求可能是個(gè)更好的方案。本章會(huì)介紹在Windows層面和SQL Server層面,怎么分析和界定I/O問(wèn)題。最后會(huì)介紹一個(gè)微軟提供的硬盤(pán)壓力測(cè)試工具。通過(guò)它,可以在服務(wù)器投入使用之前測(cè)試硬盤(pán)運(yùn)行速度的快慢。

第8章:任務(wù)調(diào)度與CPU問(wèn)題

這里會(huì)談到兩類(lèi)問(wèn)題。第一類(lèi)是SQL Server的任務(wù)調(diào)度出現(xiàn)問(wèn)題,服務(wù)不能正常響應(yīng)。本章將詳細(xì)介紹SQL Server的任務(wù)調(diào)度機(jī)制,以及出現(xiàn)的警告信息意味著什么,怎么做初步問(wèn)題定位。另一類(lèi)是SQL Server服務(wù)CPU使用率很高,進(jìn)而影響整體性能,但是任務(wù)調(diào)度沒(méi)有出問(wèn)題。像定位內(nèi)存和I/O問(wèn)題一樣,管理員也可以通過(guò)分析SQL Server的各項(xiàng)日志信息,定位造成SQL Server處理器使用量高的原因。一般來(lái)說(shuō),最后都要定位到幾個(gè)或者一批語(yǔ)句,優(yōu)化這些語(yǔ)句的設(shè)計(jì),或者降低系統(tǒng)負(fù)載。

第9章和第10章:阻塞與死鎖

有事務(wù)就會(huì)有鎖,有鎖就會(huì)有阻塞和死鎖。阻塞與死鎖是SQL Server系統(tǒng)里非常常見(jiàn)的現(xiàn)象。

在第9章里,主要側(cè)重于背景知識(shí)的介紹,讓讀者了解鎖的來(lái)源,其模式、兼容性,在做Select、 Updat、, Delete、 Insert這些動(dòng)作時(shí),鎖是什么時(shí)候申請(qǐng)的,在不同的表結(jié)構(gòu)上會(huì)申請(qǐng)多少鎖資源,又會(huì)在什么時(shí)候被釋放。本章還會(huì)介紹監(jiān)視鎖的申請(qǐng)、持有和釋放過(guò)程的方法。有了這些知識(shí)準(zhǔn)備,才能去有效地分析和解決阻塞與死鎖問(wèn)題。本章還介紹了SQL Server 2005引入的基于行版本控制的隔離級(jí)別,以及它為什么會(huì)在有些情況下緩解阻塞與死鎖。

在第10章里,主要側(cè)重于具體問(wèn)題的解決。作為DBA的一個(gè)基本功,本章會(huì)展示如何定位一個(gè)正在發(fā)生的阻塞問(wèn)題。接著討論了常見(jiàn)的阻塞原因以及它們的解決辦法。本章還會(huì)以連接池為案例,展示阻塞的出現(xiàn)和應(yīng)用程序行為之間的緊密關(guān)系,因?yàn)橄枞?jīng)常是需要修改應(yīng)用程序設(shè)計(jì)的。最后,還會(huì)介紹死鎖問(wèn)題的定位和解決方法。這里的案例分析,展示了數(shù)據(jù)庫(kù)設(shè)計(jì)對(duì)阻塞和死鎖類(lèi)問(wèn)題的影響。

第11章:從等待狀態(tài)判斷系統(tǒng)資源瓶頸

SQL Server里有一系列系統(tǒng)視圖,可以了解每一個(gè)用戶(hù)連接當(dāng)前的運(yùn)行狀態(tài)。如果連接運(yùn)行因?yàn)槿鄙倌撤N資源而進(jìn)入暫時(shí)等待狀態(tài),視圖里也會(huì)顯示出在等什么資源,包括內(nèi)存、磁盤(pán)I/O、CPU,和鎖資源等等。在從第6章到第10章介紹過(guò)主要的資源使用以后,本章作為一個(gè)總結(jié)性章節(jié),介紹了在系統(tǒng)視圖里可能會(huì)看見(jiàn)的各種等待,它們產(chǎn)生的原因以及可能的解決辦法。在實(shí)際操作中,往往可以直接跳到這一步,先大致確定資源瓶頸是哪一個(gè),然后再用前面相關(guān)章節(jié)介紹的方法做進(jìn)一步的確認(rèn)和分析。

第12章和第13章:語(yǔ)句調(diào)優(yōu)

當(dāng)問(wèn)題界定到是因?yàn)橐痪湔Z(yǔ)句運(yùn)行時(shí)間過(guò)長(zhǎng),或者申請(qǐng)資源太多,那就要做語(yǔ)句層面的調(diào)優(yōu)了。

在第12章里,主要側(cè)重于背景知識(shí)的介紹。SQL Server需要索引幫助來(lái)檢索數(shù)據(jù),也需要統(tǒng)計(jì)信息來(lái)幫助它選取合適的執(zhí)行計(jì)劃。本章會(huì)介紹不同類(lèi)型的索引如何幫助數(shù)據(jù)檢索,統(tǒng)計(jì)信息的讀取、維護(hù)和更新。執(zhí)行計(jì)劃生成的過(guò)程叫編譯。本章會(huì)介紹編譯,執(zhí)行計(jì)劃重用,重編譯,以及它們對(duì)語(yǔ)句執(zhí)行的影響。語(yǔ)句調(diào)優(yōu)的另一個(gè)基本功,是要能夠讀懂執(zhí)行計(jì)劃,懂得語(yǔ)句運(yùn)行的統(tǒng)計(jì)信息。知道這些,才能找到語(yǔ)句的問(wèn)題在哪兒。這些本章也會(huì)有所介紹。

第13章是比較長(zhǎng)的一章。語(yǔ)句運(yùn)行得不夠快,可能是因?yàn)樽隽宋锢鞩/O,也可能是因?yàn)榫幾g速度影響。排除這兩種可能以后,就要確認(rèn)語(yǔ)句的執(zhí)行計(jì)劃是否合適。可能是SQL Server錯(cuò)誤地預(yù)估了cost,選擇了不正確的算法,也可能是因?yàn)橹赜昧艘粋€(gè)對(duì)自己不合適的執(zhí)行計(jì)劃。如果確認(rèn)了SQL Server已經(jīng)選擇了一個(gè)比較正確的執(zhí)行計(jì)劃,但是執(zhí)行時(shí)間還是不夠快,那就要考慮調(diào)整數(shù)據(jù)庫(kù)設(shè)計(jì),調(diào)整索引,或者配置執(zhí)行計(jì)劃指南,以增進(jìn)運(yùn)行速度。另一條思路,是調(diào)整語(yǔ)句設(shè)計(jì),用更優(yōu)化的方法實(shí)現(xiàn)同樣的邏輯。這常常會(huì)大大提高執(zhí)行的效率。

第14章:常用SQL Server系統(tǒng)信息與搜集方法

作為一個(gè)可支持性比較好的軟件,SQL Server提供了很多方法收集系統(tǒng)信息,包括Windows Event Log, SQL errorlog, 性能監(jiān)視器,系統(tǒng)管理視圖等等。可供分析的信息非常豐富,但是也要管理員能夠充分利用。所以作為一個(gè)比較獨(dú)立的章節(jié),這里總結(jié)了管理員可能會(huì)使用到的大部分信息收集方法,供讀者參考。這些方法里有手工收集的,也有自動(dòng)收集的。讀者可以在自己的SQL Server上試一試,選擇和練習(xí)一些你喜歡的方法,以備不時(shí)之需。

本書(shū)基于的版本

SQL Server 2000是個(gè)比較成熟的版本,在業(yè)界被廣泛使用。SQL Server 2005在SQL Server 2000的基礎(chǔ)上,作了一些重要的擴(kuò)充和增強(qiáng)。例如,增加了Partition Table,動(dòng)態(tài)管理視圖這一類(lèi)用戶(hù)經(jīng)常使用得到的功能,而且用戶(hù)界面也有了很大變化。從高端使用看,SQL Server 2005有其固有的優(yōu)勢(shì),現(xiàn)在使用得也比較廣泛起來(lái)。SQL Server 2008在SQL Server 2005的基礎(chǔ)上又作了進(jìn)一步改進(jìn),但是在用戶(hù)界面以及管理方法上,變化沒(méi)有SQL Server 2000到SQL Server 2005這么大。

本書(shū)討論的問(wèn)題,絕大部分對(duì)各個(gè)版本都能適用,只是有些細(xì)節(jié)可能會(huì)有所不同,新版本可能會(huì)有些新做法。所以本書(shū)主要基于SQL Server 2005版。而對(duì)SQL Server 2008的更新功能,也會(huì)提到。

本書(shū)不包含的內(nèi)容

本書(shū)主要關(guān)注與關(guān)系型數(shù)據(jù)庫(kù)引擎的管理和使用,對(duì)SQL Server的一些其他組件,例如,Cluster,Replication,Database Mirroring,Log Shipping等都沒(méi)有談及。對(duì)于SQL Server的Business Intelligence組件部分,例如SQL Server Analysis Service,SQL Server Reporting Service,SQL Server Intelligence Service等,也沒(méi)有涉及。

本書(shū)的范例腳本

本書(shū)的各個(gè)章節(jié)里,都有很多范例腳本,或者是測(cè)試腳本。為了幫助讀者做測(cè)試,我們把這些腳本另外保存在一些文件里,放在http://download.csdn.net/source/1992551下,供讀者下載。

主站蜘蛛池模板: 海原县| 车险| 江北区| 婺源县| 铁岭县| 宿迁市| 丹棱县| 鹤壁市| 五峰| 江源县| 淅川县| 马尔康县| 苗栗市| 突泉县| 衡阳县| 革吉县| 固镇县| 防城港市| 永寿县| 蒙自县| 桓仁| 靖边县| 永城市| 慈溪市| 晋城| 奈曼旗| 若羌县| 清水县| 林州市| 化隆| 安吉县| 诏安县| 法库县| 桦南县| 迁西县| 施甸县| 温州市| 沅陵县| 湾仔区| 德州市| 日土县|