SQLServer DBA 三十问(加强版)
距离最初发布SQLServer DBA 三十问 已有一年多了,大家对其中的某些问题讨论比较激烈,要回答出来这些问题需要比较扎实的SQLServer
基础和一定的实际操作经验,如果你试着去回答其中的问题,去查找相关的资料,去讨论别人回答的对错,这个过程对我们知识的学习、整理和强化
都是相当有益的,过了这么长时间,你对最初的三十问中的内容都了解了吗?你的知识在不断的更新和深化吗? 现在我们的新三十问又来了,相比之
前的三十问,这个版本设计的问题更深入,涉及底层原理的知识比较多,加入了比较多的主观和开放性的问题,可能有些朋友比较反感这种问题,但
是这种问题往往是体现你对SQLServer这项技术掌握程度最好的考量,期待你精彩的回答和讨论。
1. 谈谈聚集索引、非聚集索引、Hash索引的区别和各自的优劣,Include覆盖索引的作用,相对于组合索引的优势;
2. 日志文件是什么结构,数据写入日志文件与数据文件区别是什么,日志文件不能收缩的原因怎么分析,可能的原因是什么,如何优化日志文件;
3. SQLServer有哪些情况会读或者写日志文件;
4. 描述下CheckPoint、DBCC CheckDB、CheckSum的过程和作用;
5. 数据库文件的组织结构,主要包含哪些页,各自的作用是什么;
6. 如何寻找热点库、热点表和执行最频繁的SQL,以及资源消耗最多的SQL;
7. 内存为什么对SQLServer很重要,SQLServer缓存有哪些类型和各自的作用是什么,内存数据通过哪些方式写入磁盘,一般有哪些调整和控制
内存的方法;
8. TempDB容易遇到哪些问题,你是如何配置和使用TempDB使其保持高效和可控的;
9. 对跨服务器访问数据,你有哪些方式,各自有优劣是什么;
10. 谈谈一条Update语句从应用端到数据库端返回结果的整个过程;
11. 以SQLServer2008为例,企业版和标准的主要区别,企业版的数据库能还原到标准版吗,2008能还原到2005吗,32位机器上的数据库能直接
附加或者还原到64位数据库上吗,说说原因;
12. 一台SQLServer服务器,你最常调整的配置有哪些,说说它们各自的作用;
13. 说说你对SQLServer突然出现CPU很高情况可能的紧急处理措施和后续的排查步骤;
14. windows日志报告数据库文件自动增长时间超过15s的错误,你怎么来分析这个问题,有哪些应对方案;
15. 谈谈你遇到过的Mirror/replication问题,怎么解决的,哪些因素会影响他们的性能;
16. 如果你想说明一台数据库服务器存在内存瓶颈,哪些指标和哪些方式是你判断的依据;
17. 数据库检测出现损坏,谈谈你可能的修复方式和步骤;
18. 某天你收到一台平时运行很正常的数据库报警,发现很多指标都升高了一倍以上,你怎么快速分析和定位可能的问题;
19. 你遇到过哪些典型的SQL性能问题,怎么发现和处理的;
20. 谈谈你在应对数据量很大、访问频率很高的表时,可能采取的方案,实际做过哪些方案,比较有价值的地方是;
21. 谈谈你对分区表、分表、分库的适用场景、解决的问题和可能带来的问题的看法;
22. 描述下你现在采取的备份、还原方案,RPO、RTO情况,分析下可能存在的问题;
23. 谈谈一台数据库服务器上的所有数据(包括帐号、JOB等)迁移到另一台新服务器所有可能的方法和步骤,描述各自的优缺点;
24. 你会为数据库做哪些基础性的维护工作,说说你做这些的作用;
25. 如果现有的SQLServer服务器数量和访问量翻10倍,你有哪些应对措施;
26. 在维护数据库时,你经常使用的工具有哪些,它们各自的作用,还有哪些操作你觉得做成工具能大幅度提高你的工作效率,你为数据库运维
自动化做了哪些工作;
27. 就Windows和SQLServer本身而言,你认为那些方面会影响数据库的性能,有哪些应对措施;
28. 你怎么来评估数据库的环境,怎么预测目前数据库可以提供多长时间的使用,基于那些情况来制定采购计划;
29. 你通过哪些方式来不断的提高自己的数据库运维能力,哪些方面是使你不断向前的动力;
30. 作为一名资深的DBA,你如何带领和培养新人,使他能快速成长。