编写各大终端的程序员常常有“SQL语言很简单,DBA工作很轻松”的错觉,用惯了SQLite及其扩展框架OrmLite和GreenDAO的Android程序员更是如此,尤其当一个Android程序员看见自己上大学时又挂科又留级的损友从事DBA工作之后:“不好好学习也就只能用SQL增删改查了”。
然而和各大终端编写SQL代码仅为了给界面做缓存不同,在服务器端的SQL Server的日常管理中,DBA需要考虑的是如何让SQL Server高效运行,且性能良好;DBA不仅需要了解数据库的日常运行情况,对性能进行分析和调优,还需要对线上环境部署监控。随着管理的SQL Server服务器日渐增多,如何实现监控自动化成了DBA要面对的最紧迫的问题。
《SQL Server监控和诊断》一书为希望深入了解如何进行SQL Server自动化监控和诊断的DBA编写,能让有一定基础的DBA的技术水平如雨后春笋般成长,第一章《SQL Server监控介绍》开篇点题,介绍了SQL Server监控的概念,也强调了SQL Server监控和诊断的重要性。
本书第二章《SQL Server监控事件系列》首先介绍了SQL跟踪的概念,接下来介绍并详细分析了默认跟踪和黑盒跟踪两种跟踪方式,并举例说明两种方式在实践中的应用;第三章《SQL Server高级诊断系列》首先介绍了SQL Server的扩展事件,以及如何利用扩展事件预防死锁,紧接着介绍了SQL Server的环形缓冲区的数组和列表两种实现方法,然后举例讲解了Ring Buffer的几种常见用途:诊断SQL Server内存压力 、获取SQL进程的CPU利用率和跟踪异常等 。
《SQL Server监控和诊断》不但传授了我自动化管理的日渐增多的SQL Server服务器的方法,也改变了我认为SQL Server只是一个略复杂的SQLite的观念,更彻底治愈了我对DBA工作的偏见,使我明白了一个能胜任DBA的人的能力不局限于使用SQL增删改查,也包括如何让SQL Server运行得更好。