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