2014年4月,我入职了新公司。在我入职以前,公司没有DBA,总监给我一个任务,优化一个业务系统。sql
因而给我说了一下当前的情况:数据库
一、系统数据库常常宕机。windows
二、用户常常投诉说程序不响应。服务器
我当时就两眼一抹黑,这能说明什么问题了,数据库有很大的问题,这是个人第一反应。数据库设计
可是,工做必须进行下去,在没有资料,不懂业务的状况下,性能
第一步,我开始了长达一个月的监控:优化
一、使用windows性能监视器定义了数据收集器。设计
二、使用sqlprofiler抓取全部的sql语句。日志
第二步,分析日志:索引
一、根据数据收集器收集来的数据,分析服务器硬件瓶颈。
二、把sqlprofiler收集到的sql语句导入本地数据库,利用全文索引对tsql和存储过程进行统计分析。
第三步:
一、提交硬件升级方案。
二、从新配置数据库。
三、提交优化方案。
一我的又花费了2个月的时间,对系统进行优化,最后系统性能获得很大提高。
但我以为系统的性能还有很大的提高空间,但我遇到一个问题,因为对系统业务逻辑不了解,
没法从根本上提高数据库性能,而修改数据库结构对系统影响更大,公司没法承受,因此,
一切止步于此。
以后又对公司的其余系统进行优化,这些优化让我对数据库设计有了很深的体会:
一、数据库设计有问题,不管怎么提高硬件性能,怎么优化,都无济于事。
二、优化最容易体现成果的是索引优化。
三、优化是全方位的,不单单须要知道tsql语句优化,索引优化等等,对系统业务逻辑的优化一样重要。
四、优化先从大的方面开始,而后再切入细节。
另外我得感谢桦仔,在我收集数据的过程当中,正是看了他写的关于全文索引的博客,在统计tsql语句信息时,
我使用了全文索引,这对我在分析tsql语句时给予了很大的帮助。