日期:2014-05-17  浏览次数:20418 次

SQL2005优化。新手求问几个问题
最近系统变的很慢。慢的无法忍受了。找了很多资料。进行数据库整理。
1,进行索引重建清理所以碎片。
问:进行索引重建清理碎片会不会影响数据。
2,把数据库表进行分区,
问:进行表分区会不会影响数据。在使用数据表的时候不会不会有其他什么影响。分区后会不会导致系统问题。

------解决方案--------------------
问题1:不会
问题2:不会,但是分区要谨慎,会有很多限制条件的。
------解决方案--------------------
问题1:不会(可以想象成windows原来的磁盘碎片整理,也没有数据丢失对吧!!)
问题2:不会(需要跟前端结合使用,分区如果设得不好,性能也有可能下降!)
------解决方案--------------------
碎片会影响索引的性能从而影响增删改查的性能。所以定期重建是好习惯。但是要分析索引的碎片原因,而不要单纯重建就了事。分区的话,是个大功能,如非必要,还是不建议分区。管理起来会有点麻烦,如果做得不好,对性能反而有副作用。

对于性能慢,不能只靠这两部。要分析问题的原因,是否服务器资源不足?是否表设计不合理?是否查询有多余步骤或者使用了低效的写法?是否索引设计不合理导致碎片很多或者查询用不到索引等等。

性能优化是个大课题,一本书都说不完,所以一个帖子无法说清楚。建议到网上找找资料,月底前我会发几篇相关文章。敬请留意
------解决方案--------------------
引用:
引用:
问题1:不会
问题2:不会,但是分区要谨慎,会有很多限制条件的。
谢谢,还有一个问题。怎么知道这个表示是否进行分区?
不是很懂你的意思,你是说是否知道这个表有没有分区?从sys.partitions这里可以看到,如果partition_number大于1就是有分区