SQL Server求生秘籍

出版时间:2009-2  出版社:人民邮电出版社  作者:(美) 亨德森 主编,若启,一辉,瞿杰 译  页数:342  字数:554000  
Tag标签:无  

前言

原本我想在本书中让微软技术支持工程师撰写多年来在SQL Server的技术支持工作中所学到的知识。当我加入微软后,令我惊奇的是,技术支持工程师们并没有把关于产品支持的实践知识(在认识论中叫作“领域知识”)记录下来。这些知识仅仅停留在口口相传的状态。当然,这导致了一个问题:人们并不知道如何做好工作,除非有热心人来向他们展示该如何做。这也是一种非常容易犯错误的方式,会导致一些最重要的产品支持知识集中在少数人手中——这些经验被他们充分利用,但其他的支持团队却不了解这些知识。加入微软之前,我做全职软件开发工程师已经20多年了。令我十分惊讶的是,原来支持部门的高端人群都是些曾经做过开发的人。通常,在成为技术支持工程师之前,他们都有3~5年的开发或相关工作经验。作为一名职业开发人员,我很难想象技术支持也可以做长工。对于我来说,支持工作似乎与软件开发世界中的看门人类似。他们不得不帮那些编写乱糟糟代码的开发者“擦屁股”的人。虽然我知道这很重要,但是私下里还是觉得把技术支持工作作为职业并不是一件开心的事。尽管如此,确实有好几个程序员前辈呆在技术支持部门,这让我感到迷惑。

内容概要

  本书帮助你解决众多数据库引擎方面的问题,每一章从关键的SQL Server 组件入手,然后探讨用户遇见的常见问题,并给出解决方案。本书的主要内容包括等待和阻塞、数据毁坏和恢复、内存、过程缓存、查询进程等。本书的作者都是来自微软公司SQL Server 开发团队和客户支持服务部门的支持专家。在你的SQL Server 系统遇到问题时,本书将变得不可或缺。  本书适合数据库管理员和数据库开发人员阅读。    作者简介:  Ken Henderson(1967-2008)SQL Sewer世界级权威。生前供职于微软SQL Sewer开发组。以Guru's Guide系列经典著作和SQLDiag等工具享誉业界。  创作团队  来自SQL Server开发小组的7位开发人员和来自微软客户支持服务机构的3位支持专家,他们都有丰富的开发经验,熟悉SQL Sewer源代码。

书籍目录

第1章 等待和阻塞 1.1 等待类型 1.2 对阻塞问题进行故障排查 1.3 识别阻塞  1.3.1 通过sys.dm_os_waiting_tasks来识别阻塞  1.3.2 从统计上识别阻塞 1.4 确定阻塞的原因  1.4.1 当前的语句和计划  1.4.2 阻塞模式  1.4.3 阻塞链 1.5 资源类型的细节  1.5.1 闩锁  1.5.2 锁  1.5.3 外部等待类型  1.5.4 计时器和队列等待类型  1.5.5 IO操作的等待类型  1.5.6 其他等待类型 1.6 死锁 1.7 监视阻塞  1.7.1 等待的统计信息  1.7.2 当前的等待信息 1.8 小结 1.9 其他资源第2章 数据损坏及恢复 2.1 基本原理 2.2 SQL Server 2005存储内幕  2.2.1 数据库及文件状态  2.2.2 资源数据库  2.2.3 目录视图和基本系统表  2.2.4 分配结构  2.2.5 数据库校验和  2.2.6 快速恢复  2.2.7 延期事务  2.2.8 只读的压缩数据库 2.3 SQL Server 2005增强  2.3.1 备份增强  2.3.2 还原增强  2.3.3 DBCC CHECKDB增强 2.4 数据恢复最佳实践  2.4.1 备份/还原最佳实践  2.4.2 数据库及日志最佳实践  2.4.3 DBCC CHECKDB最佳实践 2.5 数据恢复故障排查场景  2.5.1 系统数据库恢复  2.5.2 恢复资源数据库  2.5.3 创建tempdb故障  2.5.4 重装操作系统 2.6 用户数据库不可访问  2.6.1 数据库被标记为RECOVERY_PENDING  2.6.2 处理延迟事务  2.6.3 数据库被标记为SUSPECT  2.6.4 粘贴数据库故障 2.7 BACKUP/RESTORE故障  2.7.1 BACKUP故障  2.7.2 RESTORE故障 2.8 数据库一致性错误  2.8.1 处理数据库一致性运行时错误  2.8.2 处理DBCC CHECKDB错误  2.8.3 修复与还原  2.8.4 每个错误表示什么  2.8.5 解释  2.8.6 用户动作  2.8.7 REPAIR_ALLOW_DATA_LOSS真正的意思是什么  2.8.8 进行恢复之前的根本原因分析  2.8.9 如果修复没有用,应该怎么办  2.8.10 复制数据与修复  2.8.11 找出损坏的根本原因:清单第3章 内存 3.1 Windows内存管理入门  3.1.1 内部的虚拟内存——虚拟地址空间  3.1.2 外部虚拟内存  3.1.3 内部物理内存  3.1.4 外部物理内存  3.1.5 内存压力  3.1.6 NUMA支持 3.2 SQLOS和SQL Server的内存管理  3.2.1 内存结点  3.2.2 内存clerk  3.2.3 内存对象  3.2.4 内存缓存  3.2.5 缓冲池  3.2.6 故障排查第4章 过程缓存 4.1 过程缓存的架构  4.1.1 缓存对象的类型  4.1.2 过程缓存的结构  4.1.3 过程缓存和内存  4.1.4 非缓存计划和零成本计划  4.1.5 计划的共享  4.1.6 重编译  4.1.7 参数化  4.1.8 缓存查找如何工作  4.1.9 缓存计划复用  4.1.10 刷新过程缓存 4.2 常见缓存相关问题及解决方案  4.2.1 使用过程缓存来确定代价昂贵的查询  4.2.2 参数截取  4.2.3 较差的计划复用造成较高的编译时间  4.2.4 由于过度的缓存查找时间导致的高CPU问题  4.2.5 由过程缓存所引起的内存压力 4.3 小结第5章 查询处理器 5.1 查询处理器基础  5.1.1 编译—执行序列  5.1.2 执行计划  5.1.3 查询编译和计划选择  5.1.4 特殊的优化方法及场景 5.2 常见问题  5.2.1 编译时间和参数化  5.2.2 索引化  5.2.3 基数和开销估算 5.3 故障排查  5.3.1 诊断  5.3.2 控制 5.4 最佳实践  5.4.1 使用面向集合的编程模型    5.4.2 提供约束和统计的信息  5.4.3 注意复杂的构造  5.4.4 尽可能地避免动态语言特性 5.5 进阶阅读第6章 服务器崩溃和其他致命故障 6.1 基础知识  6.1.1 SQL Server 2005服务器恢复内幕  6.1.2 SQL Server 2005的增强特性 6.2 致命错误与服务器恢复故障排查  6.2.1 服务器启动故障排查  6.2.2 对服务器致命错误进行故障排查  6.2.3 服务器挂起问题的故障排查第7章 Service Broker相关问题 7.1 Broker总览   7.1.1 为什么要使用Service Broker  7.1.2 Service Broker的对象和术语  7.1.3 内部架构 7.2 主要的诊断工具和方法  7.2.1 传输队列视图  7.2.2 SQL Profiler——Service Broker跟踪事件  7.2.3 错误日志和NT事件日志 7.3 Broker故障排查实践  7.4 其他Service Broker诊断工具  7.4.1 视图  7.4.2 Perfmon  7.4.3 DBCC CHECKDB 7.5 进阶阅读第8章 SQLOS和调度问题 8.1 SQLOS架构  8.1.1 内存和CPU结点  8.1.2 调度器  8.1.3 任务和worker  8.1.4 SQL Server和SQLOS 8.2 配置和故障排查  8.2.1 结点配置  8.2.2 网络连接关联  8.2.3 调度器  8.2.4 任务与worker  8.2.5 调度器之间的负载均衡任务  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 调度器监视器  8.2.12 硬件配置  8.2.13 专用管理员连接 8.3 进阶阅读第9章 tempdb相关问题 9.1 SQL Server 2005中有何改进  9.1.1 tempdb日志文件的IO动作少了  9.1.2 tempdb数据文件自动增长更快  9.1.3 改进tempdb的并行访问的可扩展性  9.1.4 改进tempdb中多个文件的可扩展性 9.2 tempdb空间是如何使用的  9.2.1 什么是用户对象  9.2.2 什么是内部对象  9.2.3 什么是版本存储对象 9.3 故障排查实践  9.3.1 如果tempdb空间不足,你该怎么办  9.3.2 什么是tempdb页面闩锁竞争 9.4 小结第10章 群集问题 10.1 示例 10.2 工具 10.3 将性能调整到可接受的水平上  10.3.1 添加结点  10.3.2 为什么群集SQL Server实例发生故障转移  10.3.3 为什么故障转移要花这么长时间  10.3.4 故障转移之后没人可以连接  10.3.5 添加磁盘  10.3.6 替换磁盘  10.3.7 转移数据库 10.4 小结

章节摘录

插图:2.2.1数据库及文件状态在SQL Server 2000中,数据库的状态(或者说状况)是最难以理解的。用户必须将sysdatabases表中的特殊位解码,并且何时进行状态切换的行为不是始终如一的。SQL Server 2005在消除这个缺点上做得非常好。首先,在sys.databases目录视图中,可以找到数据库的描述性状态(在一个名为state的列中)。其次,数据库状态的意义及行为是易于理解并且始终如一的。例如,当你通过ALTER DATABASE SET OFFLINE来强迫一个数据库离线时,数据库就转到OFFLINE状态。在SQL 2000卢并不总是这样。为了理解这些数据库状态的意义,以及一个数据库如何在各个状态间切换,请看图2-1。

媒体关注与评论

“本书的内容是其他任何博客、网站和图书都没有的。系统出问题时。它将成为你的救命稻草。”  ——Pinal Dave,微软MVP“此书得非常好,涵盖了对大量复杂问题进行故障排查的详细解析。我认为每一位优秀的MSSQL DBA都应该拥有。  ——Amazon.com评论

编辑推荐

《SQL Server求生秘籍》的出版将彻底改变这种局面。微软技术大师Henderson邀请了微软数据库产品开发和支持团队的多位资深工程师,各展所长,第一次集中公开了许多以前在微软内部口口相传的SQL Sewer技术机密。微软SQL Server内部技术资料大曝光,来自SQL Server开发小组和支持部门的梦之队打造,SQL Server故障排除圣经。数据库技术人员都不免面临这样的困境:每隔一段时日,数据库系统就会因为一些奇怪的问题无法正常运作,然而由于缺乏底层信息,他们常常无法应对这些问题。全书由10章组成,每一章都首先精辟地剖析SQL Sewer的一个关键内部机制。然后深入探讨常见的问题及其解决方案,包括等待与阻塞、内存、缓存、查询处理、Service Broker、tempdb和群集等主题。书中讨论了许多底层数据结构,详细解释了大量错误日志、栈转储的含义。很多内容都是直接查看SQL Sewer源代码总结提炼出来的,参考价值不言而喻。

图书封面

图书标签Tags

评论、评分、阅读与下载


    SQL Server求生秘籍 PDF格式下载


用户评论 (总计8条)

 
 

  •   很好一本书,做SQLSERVERDBA的得好好看看,普通开发人员就算了.里面讲的很多东西都很深,需要很多SQLSERVER的知识.赞一个.
  •   原版书面,都是SQLServer2005,译成中文就成了,2005了。这书是以SQLServer2005的平台来说的,译书的人,不清楚SQLServer2000和SQLServer2005有很大的不同吗。这种错误出现于“图灵丛书”之手,有点不专业了!书当然很好!
  •   翻译的不好,内容不错,不易懂.
  •   新买的书连个目录也没有,直接从第三页开始了。
  •   收到完全是旧书,光盘也不见了!
  •   虽然很薄,但质量很高
  •   对深入了解SQL Server有帮助。
  •   书的内容非常好,很具有实战性。翻译上就差一点了。
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7