本文主要说说以下3个方面的操作:
1、数据库备份:本文以sever 2008 R2为例
2、索引优化:本文以sever 2008 R2为例
3、个别账号卡顿优化:见另外一篇文章https://blog.csdn.net/hzfw2008/article/details/77572778
数据库备份或索引优化工作最好在闲时处理,否则会影响用户使用体验。
数据库备份:
1、账套管理手动/自动备份:不多说,看图操作即可:
2、SSMS手动/自动备份:比账套管理对sql操作要熟一点;
3、SSMS维护计划:比前两者又进阶了一些,需要使用前需要确保sql server 代理服务运行正常;
索引优化:
1、账套管理优化账套:傻瓜式优化。
2、SSMS全部重新组织/重新生成索引:大水漫灌式优化。
方法和使用维护计划备份数据库一样,维护任务说明:
A.收缩数据库:
任务通过删除空的数据页和日志页来减少数据库和日志文件占用的磁盘空间;
B.重新组织索引:任务可以对表和视图的聚集索引和非聚集索引进行碎片整理和压缩,这将提高索引扫描性能;重新组织索引比重新生成索引所耗的时间要短;
C.重新生成索引:任务通过重新生成索引来重新组织数据页和索引页上的数据。这会改善索引扫描和查找的性能。此任务还可以优化数据和可用空间在索引页上的分布,能够承受未来更快的增长速度。
D.更新统计信息:任务确保查询优化器有表中数据值的最新分布信息。这样,优化器才能更好地确定数据访问策略,如果是版本有升级的情况,建议执行该任务,其它日常维护时不必每次都执行。
E.备份数据库:任务确保当发生系统故障、硬件故障或用户错误对数据库造成某种破坏时,导致发生数据丢失或数据库无法使用,可以使用最近的备份副本来还原数据,该任务可用于建立日常备份维护计划。
对于K/3账套做日常优化任务,建议选择“收缩数据库”、“重新组织索引”和“重新生成索引”三项即可,可以设置各任务的执行顺序。
3、SSMS特定表索引优化:更高阶的操作,比较有针对性一些。
使用DBCC语句发现和解决上述问题。
DBCC: 数据库一致性检查器。
打开SQL 查询分析器 ,执行如下语句。
DBCC SHOWCONTIG 显示指定表的数据和索引的有关数据碎片的信息DBCCSHOWCONTIG(表名[,索引名])
在有大的改动的表,引入数据的表,或者引起低效查询的表上使用该语句。
例:DBCC SHOWCONTIG('T_ITEM')
DBCC DBREINDEX 重建指定数据库中表的一个或多个索引。
例1:重建某个索引
DBCC DBREINDEX ('T_ITEM', uk_item2, 80)
例2:重建所有索引
DBCC DBREINDEX('T_ITEM','',80)
DBCC SHOW_STATISTICS 显示指定表上的指定目标(例如一个索引名称))的当前分布统计信息。这些统计信息是被SQL Server查询优化器使用的DBCC SHOW_STATISTICS(表名,目标)
例:DBCCSHOW_STATISTICS('t_item','pk_item')
sp_updatestats & UPDATE STATISTICS 更新统计信息; sp_updatestats 对当前数据库中所有 用户定义的表运行 UPDATE STATISTICS.
使用UPDATE STATISTICS 语句的时机:在一个空表上创建一个索引,然后在以后应用它。执行TRUNCATETABLE语句,然后在以后重新应用该表。通过使用FULLSCAN或SAMPLE选项请求明细的索引统计信息。
例1. UPDATE STATISTICST_ITEM
例2. UPDATE STATISTICST_ITEM(PK_ITEM)
例 3. USE AIS20011203150410
EXEC sp_updatestats
DBCC CHECKTABLE 检查指定表或索引视图的数据、索引及 text 、ntext 和 image 页的完整性。如果你相信一个指定的表可能被破坏了,这条命令非常有用。
DBCC CHECKDB 检查指定数据库中的所有对象的分配和结构完整性。这条命令发现并修复数据库地址分配和表内部的全部错误。实际上,CHECKDB验证数据库内部一切事物的完整性,但是,DBCCCHECKDB是一个耗费CPU和磁盘资源的操作,每个需要检查的数据都必须首先从磁盘中读出到内存中。而且,DBCCCHECKDB 使用tempdb进行排序。要获得较高的DBCC性能,推荐在下面的情况下运行DBCC:
注意事项:
l 在系统使用率较低的情况下运行CHECKDB;
l 确信当前没有执行其他磁盘I/O操作,如磁盘备份操作;
l 将tempdb放在另一个磁盘系统上,或者放在一个快速磁盘子系统上;
l 为tempdb提供足够的空间,运行DBCC带上参数ESTIMATE ONLY(显示执行 DBCCCHECKDB 操作所需tempdb空间的数量 ),估计tempdb需要多少磁盘空间;
l 避免运行消耗大量CPU时间的查询和批处理;
l 在DBCC命令运行时,减少事物活动;
l 使用NO_INFOMSGS选项(压缩使用空间使用的信息和报告 )减少处理和tempdb使用率。
例:DBCC CHECKDB('AIS20011203150410') WITH NO_INFOMSGS,ESTIMATEONLY
DBCCSQLPERF 提供有关所有数据库中的事务日志空间使用情况的统计信息。日志文件的闲余空间的减少,会降低系统的性能。系统会在备份时日志截断日志文件,所以要求用户要制定一份良好的备份方案。
例:DBCC SQLPERF (LOGSPACE )