去年11月份完成了公司的一个服务平台,是web程序,在公司的一个.NET框架上开发的。
4月份的时候出现了访问数度慢,以及有时不能访问的情况,经检测,发现数据库服务器cpu占用较多。目前访问数据如下:日均IP: 2500
日均PV:40000
每日发帖(问题+回复):3000左右
为了解决这个问题,采取了一些优化措施
1、对一些经常查询或排序的字段增加了索引。
2、增加了冗余表,把一些统计数据保存在冗余表中。
3、对一些查询常用的存储过程,为了避免和写入时竞争数据发生死锁,降低了事务隔离级别,允许度脏数据。
4、对一些常用页面做了缓存。目前情况:能访问的时候一般速度很快,但是偶尔还是会出现数据库CPU暂用较多导致访问阻塞的情况。 上面是我做的一些优化措施,希望和大家一起谈一谈数据库优化可以做的事情,共同提高。
4月份的时候出现了访问数度慢,以及有时不能访问的情况,经检测,发现数据库服务器cpu占用较多。目前访问数据如下:日均IP: 2500
日均PV:40000
每日发帖(问题+回复):3000左右
为了解决这个问题,采取了一些优化措施
1、对一些经常查询或排序的字段增加了索引。
2、增加了冗余表,把一些统计数据保存在冗余表中。
3、对一些查询常用的存储过程,为了避免和写入时竞争数据发生死锁,降低了事务隔离级别,允许度脏数据。
4、对一些常用页面做了缓存。目前情况:能访问的时候一般速度很快,但是偶尔还是会出现数据库CPU暂用较多导致访问阻塞的情况。 上面是我做的一些优化措施,希望和大家一起谈一谈数据库优化可以做的事情,共同提高。
访问一个问题列表页面的时候发生了阻塞,远程连接到服务器查看的时候都会发现,数据库服务器的CPU在90%以上,应该是访问数据库的时候发生了阻塞。
或者是查询的SQL是否有优化的空间.
网络是否稳定?
还是SQL Server的Patch没有安装?
看哪个语句执行时间比较长,占用资源比较多的,有针对性的优化还有就是
能有办法缓存的就缓存掉,减轻数据库压力
能有办法从程序上下文得到的尽量从程序上下文取,甚至传参,减少访问数据库次数
SQL SERVER性能优化综述 希望对楼主有所启发
另外网络不可用有时是因为超时
过高CPU使用率一般是死循环造成,
如果代码逻辑没有明显漏洞的话,
看看数据的并发控制是不是没做好?