SQL Server求生秘籍

出版時(shí)間:2009-2  出版社:人民郵電出版社  作者:(美) 亨德森 主編,若啟,一輝,瞿杰 譯  頁(yè)數(shù):342  字?jǐn)?shù):554000  
Tag標(biāo)簽:無(wú)  

前言

原本我想在本書中讓微軟技術(shù)支持工程師撰寫多年來(lái)在SQL Server的技術(shù)支持工作中所學(xué)到的知識(shí)。當(dāng)我加入微軟后,令我驚奇的是,技術(shù)支持工程師們并沒有把關(guān)于產(chǎn)品支持的實(shí)踐知識(shí)(在認(rèn)識(shí)論中叫作“領(lǐng)域知識(shí)”)記錄下來(lái)。這些知識(shí)僅僅停留在口口相傳的狀態(tài)。當(dāng)然,這導(dǎo)致了一個(gè)問題:人們并不知道如何做好工作,除非有熱心人來(lái)向他們展示該如何做。這也是一種非常容易犯錯(cuò)誤的方式,會(huì)導(dǎo)致一些最重要的產(chǎn)品支持知識(shí)集中在少數(shù)人手中——這些經(jīng)驗(yàn)被他們充分利用,但其他的支持團(tuán)隊(duì)卻不了解這些知識(shí)。加入微軟之前,我做全職軟件開發(fā)工程師已經(jīng)20多年了。令我十分驚訝的是,原來(lái)支持部門的高端人群都是些曾經(jīng)做過開發(fā)的人。通常,在成為技術(shù)支持工程師之前,他們都有3~5年的開發(fā)或相關(guān)工作經(jīng)驗(yàn)。作為一名職業(yè)開發(fā)人員,我很難想象技術(shù)支持也可以做長(zhǎng)工。對(duì)于我來(lái)說(shuō),支持工作似乎與軟件開發(fā)世界中的看門人類似。他們不得不幫那些編寫亂糟糟代碼的開發(fā)者“擦屁股”的人。雖然我知道這很重要,但是私下里還是覺得把技術(shù)支持工作作為職業(yè)并不是一件開心的事。盡管如此,確實(shí)有好幾個(gè)程序員前輩呆在技術(shù)支持部門,這讓我感到迷惑。

內(nèi)容概要

  本書幫助你解決眾多數(shù)據(jù)庫(kù)引擎方面的問題,每一章從關(guān)鍵的SQL Server 組件入手,然后探討用戶遇見的常見問題,并給出解決方案。本書的主要內(nèi)容包括等待和阻塞、數(shù)據(jù)毀壞和恢復(fù)、內(nèi)存、過程緩存、查詢進(jìn)程等。本書的作者都是來(lái)自微軟公司SQL Server 開發(fā)團(tuán)隊(duì)和客戶支持服務(wù)部門的支持專家。在你的SQL Server 系統(tǒng)遇到問題時(shí),本書將變得不可或缺?! ”緯m合數(shù)據(jù)庫(kù)管理員和數(shù)據(jù)庫(kù)開發(fā)人員閱讀。    作者簡(jiǎn)介:  Ken Henderson(1967-2008)SQL Sewer世界級(jí)權(quán)威。生前供職于微軟SQL Sewer開發(fā)組。以Guru's Guide系列經(jīng)典著作和SQLDiag等工具享譽(yù)業(yè)界?! ?chuàng)作團(tuán)隊(duì)  來(lái)自SQL Server開發(fā)小組的7位開發(fā)人員和來(lái)自微軟客戶支持服務(wù)機(jī)構(gòu)的3位支持專家,他們都有豐富的開發(fā)經(jīng)驗(yàn),熟悉SQL Sewer源代碼。

書籍目錄

第1章 等待和阻塞 1.1 等待類型 1.2 對(duì)阻塞問題進(jìn)行故障排查 1.3 識(shí)別阻塞  1.3.1 通過sys.dm_os_waiting_tasks來(lái)識(shí)別阻塞  1.3.2 從統(tǒng)計(jì)上識(shí)別阻塞 1.4 確定阻塞的原因  1.4.1 當(dāng)前的語(yǔ)句和計(jì)劃  1.4.2 阻塞模式  1.4.3 阻塞鏈 1.5 資源類型的細(xì)節(jié)  1.5.1 閂鎖  1.5.2 鎖  1.5.3 外部等待類型  1.5.4 計(jì)時(shí)器和隊(duì)列等待類型  1.5.5 IO操作的等待類型  1.5.6 其他等待類型 1.6 死鎖 1.7 監(jiān)視阻塞  1.7.1 等待的統(tǒng)計(jì)信息  1.7.2 當(dāng)前的等待信息 1.8 小結(jié) 1.9 其他資源第2章 數(shù)據(jù)損壞及恢復(fù) 2.1 基本原理 2.2 SQL Server 2005存儲(chǔ)內(nèi)幕  2.2.1 數(shù)據(jù)庫(kù)及文件狀態(tài)  2.2.2 資源數(shù)據(jù)庫(kù)  2.2.3 目錄視圖和基本系統(tǒng)表  2.2.4 分配結(jié)構(gòu)  2.2.5 數(shù)據(jù)庫(kù)校驗(yàn)和  2.2.6 快速恢復(fù)  2.2.7 延期事務(wù)  2.2.8 只讀的壓縮數(shù)據(jù)庫(kù) 2.3 SQL Server 2005增強(qiáng)  2.3.1 備份增強(qiáng)  2.3.2 還原增強(qiáng)  2.3.3 DBCC CHECKDB增強(qiáng) 2.4 數(shù)據(jù)恢復(fù)最佳實(shí)踐  2.4.1 備份/還原最佳實(shí)踐  2.4.2 數(shù)據(jù)庫(kù)及日志最佳實(shí)踐  2.4.3 DBCC CHECKDB最佳實(shí)踐 2.5 數(shù)據(jù)恢復(fù)故障排查場(chǎng)景  2.5.1 系統(tǒng)數(shù)據(jù)庫(kù)恢復(fù)  2.5.2 恢復(fù)資源數(shù)據(jù)庫(kù)  2.5.3 創(chuàng)建tempdb故障  2.5.4 重裝操作系統(tǒng) 2.6 用戶數(shù)據(jù)庫(kù)不可訪問  2.6.1 數(shù)據(jù)庫(kù)被標(biāo)記為RECOVERY_PENDING  2.6.2 處理延遲事務(wù)  2.6.3 數(shù)據(jù)庫(kù)被標(biāo)記為SUSPECT  2.6.4 粘貼數(shù)據(jù)庫(kù)故障 2.7 BACKUP/RESTORE故障  2.7.1 BACKUP故障  2.7.2 RESTORE故障 2.8 數(shù)據(jù)庫(kù)一致性錯(cuò)誤  2.8.1 處理數(shù)據(jù)庫(kù)一致性運(yùn)行時(shí)錯(cuò)誤  2.8.2 處理DBCC CHECKDB錯(cuò)誤  2.8.3 修復(fù)與還原  2.8.4 每個(gè)錯(cuò)誤表示什么  2.8.5 解釋  2.8.6 用戶動(dòng)作  2.8.7 REPAIR_ALLOW_DATA_LOSS真正的意思是什么  2.8.8 進(jìn)行恢復(fù)之前的根本原因分析  2.8.9 如果修復(fù)沒有用,應(yīng)該怎么辦  2.8.10 復(fù)制數(shù)據(jù)與修復(fù)  2.8.11 找出損壞的根本原因:清單第3章 內(nèi)存 3.1 Windows內(nèi)存管理入門  3.1.1 內(nèi)部的虛擬內(nèi)存——虛擬地址空間  3.1.2 外部虛擬內(nèi)存  3.1.3 內(nèi)部物理內(nèi)存  3.1.4 外部物理內(nèi)存  3.1.5 內(nèi)存壓力  3.1.6 NUMA支持 3.2 SQLOS和SQL Server的內(nèi)存管理  3.2.1 內(nèi)存結(jié)點(diǎn)  3.2.2 內(nèi)存clerk  3.2.3 內(nèi)存對(duì)象  3.2.4 內(nèi)存緩存  3.2.5 緩沖池  3.2.6 故障排查第4章 過程緩存 4.1 過程緩存的架構(gòu)  4.1.1 緩存對(duì)象的類型  4.1.2 過程緩存的結(jié)構(gòu)  4.1.3 過程緩存和內(nèi)存  4.1.4 非緩存計(jì)劃和零成本計(jì)劃  4.1.5 計(jì)劃的共享  4.1.6 重編譯  4.1.7 參數(shù)化  4.1.8 緩存查找如何工作  4.1.9 緩存計(jì)劃復(fù)用  4.1.10 刷新過程緩存 4.2 常見緩存相關(guān)問題及解決方案  4.2.1 使用過程緩存來(lái)確定代價(jià)昂貴的查詢  4.2.2 參數(shù)截取  4.2.3 較差的計(jì)劃復(fù)用造成較高的編譯時(shí)間  4.2.4 由于過度的緩存查找時(shí)間導(dǎo)致的高CPU問題  4.2.5 由過程緩存所引起的內(nèi)存壓力 4.3 小結(jié)第5章 查詢處理器 5.1 查詢處理器基礎(chǔ)  5.1.1 編譯—執(zhí)行序列  5.1.2 執(zhí)行計(jì)劃  5.1.3 查詢編譯和計(jì)劃選擇  5.1.4 特殊的優(yōu)化方法及場(chǎng)景 5.2 常見問題  5.2.1 編譯時(shí)間和參數(shù)化  5.2.2 索引化  5.2.3 基數(shù)和開銷估算 5.3 故障排查  5.3.1 診斷  5.3.2 控制 5.4 最佳實(shí)踐  5.4.1 使用面向集合的編程模型    5.4.2 提供約束和統(tǒng)計(jì)的信息  5.4.3 注意復(fù)雜的構(gòu)造  5.4.4 盡可能地避免動(dòng)態(tài)語(yǔ)言特性 5.5 進(jìn)階閱讀第6章 服務(wù)器崩潰和其他致命故障 6.1 基礎(chǔ)知識(shí)  6.1.1 SQL Server 2005服務(wù)器恢復(fù)內(nèi)幕  6.1.2 SQL Server 2005的增強(qiáng)特性 6.2 致命錯(cuò)誤與服務(wù)器恢復(fù)故障排查  6.2.1 服務(wù)器啟動(dòng)故障排查  6.2.2 對(duì)服務(wù)器致命錯(cuò)誤進(jìn)行故障排查  6.2.3 服務(wù)器掛起問題的故障排查第7章 Service Broker相關(guān)問題 7.1 Broker總覽   7.1.1 為什么要使用Service Broker  7.1.2 Service Broker的對(duì)象和術(shù)語(yǔ)  7.1.3 內(nèi)部架構(gòu) 7.2 主要的診斷工具和方法  7.2.1 傳輸隊(duì)列視圖  7.2.2 SQL Profiler——Service Broker跟蹤事件  7.2.3 錯(cuò)誤日志和NT事件日志 7.3 Broker故障排查實(shí)踐  7.4 其他Service Broker診斷工具  7.4.1 視圖  7.4.2 Perfmon  7.4.3 DBCC CHECKDB 7.5 進(jìn)階閱讀第8章 SQLOS和調(diào)度問題 8.1 SQLOS架構(gòu)  8.1.1 內(nèi)存和CPU結(jié)點(diǎn)  8.1.2 調(diào)度器  8.1.3 任務(wù)和worker  8.1.4 SQL Server和SQLOS 8.2 配置和故障排查  8.2.1 結(jié)點(diǎn)配置  8.2.2 網(wǎng)絡(luò)連接關(guān)聯(lián)  8.2.3 調(diào)度器  8.2.4 任務(wù)與worker  8.2.5 調(diào)度器之間的負(fù)載均衡任務(wù)  8.2.6 Max Worker Threads配置  8.2.7 Lightweight Pooling配置  8.2.8 Affinity Mask配置  8.2.9 磁盤I/O完成處理  8.2.10 搶占式I/O完成處理  8.2.11 調(diào)度器監(jiān)視器  8.2.12 硬件配置  8.2.13 專用管理員連接 8.3 進(jìn)階閱讀第9章 tempdb相關(guān)問題 9.1 SQL Server 2005中有何改進(jìn)  9.1.1 tempdb日志文件的IO動(dòng)作少了  9.1.2 tempdb數(shù)據(jù)文件自動(dòng)增長(zhǎng)更快  9.1.3 改進(jìn)tempdb的并行訪問的可擴(kuò)展性  9.1.4 改進(jìn)tempdb中多個(gè)文件的可擴(kuò)展性 9.2 tempdb空間是如何使用的  9.2.1 什么是用戶對(duì)象  9.2.2 什么是內(nèi)部對(duì)象  9.2.3 什么是版本存儲(chǔ)對(duì)象 9.3 故障排查實(shí)踐  9.3.1 如果tempdb空間不足,你該怎么辦  9.3.2 什么是tempdb頁(yè)面閂鎖競(jìng)爭(zhēng) 9.4 小結(jié)第10章 群集問題 10.1 示例 10.2 工具 10.3 將性能調(diào)整到可接受的水平上  10.3.1 添加結(jié)點(diǎn)  10.3.2 為什么群集SQL Server實(shí)例發(fā)生故障轉(zhuǎn)移  10.3.3 為什么故障轉(zhuǎn)移要花這么長(zhǎng)時(shí)間  10.3.4 故障轉(zhuǎn)移之后沒人可以連接  10.3.5 添加磁盤  10.3.6 替換磁盤  10.3.7 轉(zhuǎn)移數(shù)據(jù)庫(kù) 10.4 小結(jié)

章節(jié)摘錄

插圖:2.2.1數(shù)據(jù)庫(kù)及文件狀態(tài)在SQL Server 2000中,數(shù)據(jù)庫(kù)的狀態(tài)(或者說(shuō)狀況)是最難以理解的。用戶必須將sysdatabases表中的特殊位解碼,并且何時(shí)進(jìn)行狀態(tài)切換的行為不是始終如一的。SQL Server 2005在消除這個(gè)缺點(diǎn)上做得非常好。首先,在sys.databases目錄視圖中,可以找到數(shù)據(jù)庫(kù)的描述性狀態(tài)(在一個(gè)名為state的列中)。其次,數(shù)據(jù)庫(kù)狀態(tài)的意義及行為是易于理解并且始終如一的。例如,當(dāng)你通過ALTER DATABASE SET OFFLINE來(lái)強(qiáng)迫一個(gè)數(shù)據(jù)庫(kù)離線時(shí),數(shù)據(jù)庫(kù)就轉(zhuǎn)到OFFLINE狀態(tài)。在SQL 2000盧并不總是這樣。為了理解這些數(shù)據(jù)庫(kù)狀態(tài)的意義,以及一個(gè)數(shù)據(jù)庫(kù)如何在各個(gè)狀態(tài)間切換,請(qǐng)看圖2-1。

媒體關(guān)注與評(píng)論

“本書的內(nèi)容是其他任何博客、網(wǎng)站和圖書都沒有的。系統(tǒng)出問題時(shí)。它將成為你的救命稻草。”  ——Pinal Dave,微軟MVP“此書得非常好,涵蓋了對(duì)大量復(fù)雜問題進(jìn)行故障排查的詳細(xì)解析。我認(rèn)為每一位優(yōu)秀的MSSQL DBA都應(yīng)該擁有?!  狝mazon.com評(píng)論

編輯推薦

《SQL Server求生秘籍》的出版將徹底改變這種局面。微軟技術(shù)大師Henderson邀請(qǐng)了微軟數(shù)據(jù)庫(kù)產(chǎn)品開發(fā)和支持團(tuán)隊(duì)的多位資深工程師,各展所長(zhǎng),第一次集中公開了許多以前在微軟內(nèi)部口口相傳的SQL Sewer技術(shù)機(jī)密。微軟SQL Server內(nèi)部技術(shù)資料大曝光,來(lái)自SQL Server開發(fā)小組和支持部門的夢(mèng)之隊(duì)打造,SQL Server故障排除圣經(jīng)。數(shù)據(jù)庫(kù)技術(shù)人員都不免面臨這樣的困境:每隔一段時(shí)日,數(shù)據(jù)庫(kù)系統(tǒng)就會(huì)因?yàn)橐恍┢婀值膯栴}無(wú)法正常運(yùn)作,然而由于缺乏底層信息,他們常常無(wú)法應(yīng)對(duì)這些問題。全書由10章組成,每一章都首先精辟地剖析SQL Sewer的一個(gè)關(guān)鍵內(nèi)部機(jī)制。然后深入探討常見的問題及其解決方案,包括等待與阻塞、內(nèi)存、緩存、查詢處理、Service Broker、tempdb和群集等主題。書中討論了許多底層數(shù)據(jù)結(jié)構(gòu),詳細(xì)解釋了大量錯(cuò)誤日志、棧轉(zhuǎn)儲(chǔ)的含義。很多內(nèi)容都是直接查看SQL Sewer源代碼總結(jié)提煉出來(lái)的,參考價(jià)值不言而喻。

圖書封面

圖書標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    SQL Server求生秘籍 PDF格式下載


用戶評(píng)論 (總計(jì)8條)

 
 

  •   很好一本書,做SQLSERVERDBA的得好好看看,普通開發(fā)人員就算了.里面講的很多東西都很深,需要很多SQLSERVER的知識(shí).贊一個(gè).
  •   原版書面,都是SQLServer2005,譯成中文就成了,2005了。這書是以SQLServer2005的平臺(tái)來(lái)說(shuō)的,譯書的人,不清楚SQLServer2000和SQLServer2005有很大的不同嗎。這種錯(cuò)誤出現(xiàn)于“圖靈叢書”之手,有點(diǎn)不專業(yè)了!書當(dāng)然很好!
  •   翻譯的不好,內(nèi)容不錯(cuò),不易懂.
  •   新買的書連個(gè)目錄也沒有,直接從第三頁(yè)開始了。
  •   收到完全是舊書,光盤也不見了!
  •   雖然很薄,但質(zhì)量很高
  •   對(duì)深入了解SQL Server有幫助。
  •   書的內(nèi)容非常好,很具有實(shí)戰(zhàn)性。翻譯上就差一點(diǎn)了。
 

250萬(wàn)本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7