K3日志收缩

如下摘自《金蝶K3产品性能稳定性优化指导手册》:数据库

对于任何一个数据库系统,平常的维护是必要的,在平常的系统维护中分支机构应该引导客户的系统管理员作维护,防性能问题于未然。ide

但有时候不当的维护策略也对性能形成必定的影响。结合常见维护策略进行介绍,旨在防性能问题与未然。性能

在应用K/3时为了提高总体应用性能,数据库须要作以下的维护策略:优化

 

1.设置数据库故障还原模型为“简单”spa

SQL Server企业管理器中选择一个数据库,右键点击弹出快捷菜单,选择“属性”,以下图界面。数据库的故障还原模型建议使用“简单”模式。日志

若是采用“简单”之外的故障还原模式,将可能产生大量的日志文件从而影响数据库系统性能blog

注意:选择简单模式后数据库将不能作事务日志备份。索引

wKioL1g3pZyAjFVLAAI7_ixUwbc576.png-wh_50

 

2.取消“自动收缩”数据库选项事务

将数据库“属性”中的“自动收缩日志”选项取消(如2.1.2.1下图)。因为须要频繁检查数据库的空间使用状况以及自动收缩有可能发生在数据库文件自动增加以后而增长额外的开销。资源

 

3.按期收缩数据库

SQL Server数据库的事务日志会因为各类缘由,有时候暴涨,事务日志太大有时候会引起性能问题,所以要有计划地收缩数据库来缩小事务日志。收缩数据库时不但要收缩帐套数据库,同时也要收缩SQL Server自带的TEMPDB数据库。能够经过SQL Server企业管理器作一个收缩计划,在没有业务运行的时候按期作收缩,尽可能不要在平时作收缩操做,由于收缩操做耗用资源不少,且须要一段时间。

SQL Server企业管理器中选择一个数据库,右键点击弹出快捷菜单,选择“全部任务”---〉“收缩数据库”,以下图界面。

wKiom1g3pZ2xSBkuAAGB4xEuTyk284.png-wh_50

选择根据本调度来收缩数据库(收缩的频率不要过于频繁,不然容易产生更多的碎片,致使数据库性能更差),而后点击更改按钮,以下图界面作调度安排。wKiom1g3pdOTk99NAAEWVqHWtEA692.png-wh_50


 

4.按期优化账套

SQL Server运行一段时间后,表空间和索引的存储可能会产生碎片,这会极大的影响系统的性能。数据库表是否存在碎片能够经过在SQL查询分析器中使用下面的命令来查看:

如:dbcc showcontig(icstockbill) 显示结果为

DBCCSHOWCONTIG 正在扫描 'ICStockBill' ...

:'ICStockBill'1180583294);索引 ID:1,数据库 ID:15

已执行TABLE 级别的扫描。

- 扫描页数.....................................:9935

- 扫描扩展盘区数...............................:1252

- 扩展盘区开关数...............................:8485

- 每一个扩展盘区上的平均页数.....................:7.9

- 扫描密度[最佳值:实际值]....................:14.64%1242:8486

- 逻辑扫描碎片.................................:41.35%

- 扩展盘区扫描碎片.............................:60.46%

- 每页上的平都可用字节数.......................:3763.6

- 平均页密度(完整)...........................:53.50%

DBCC 执行完毕。若是 DBCC输出了错误信息,请与系统管理员联系。

能够看出icstockbill表的扫描密度为14.64%,逻辑扫描碎片为41.35%;扩展盘区扫描碎片为60.46%说明存在较多的碎片,而且统计信息不少记录都未进行更新,这将严重影响使用该表时的查询速度,须要对该表进行重建索引。那么咱们使用dbcc dbreindex(icstockbill)icstockbill表重建索引,再对icstockbill表进行统计能够看到下面的结果:

DBCC SHOWCONTIG 正在扫描 'ICStockBill' 表...

表: 'ICStockBill'(1180583294);索引 ID: 1,数据库 ID: 15

已执行 TABLE 级别的扫描。

- 扫描页数.....................................: 5444

- 扫描扩展盘区数...............................: 682

- 扩展盘区开关数...............................: 681

- 每一个扩展盘区上的平均页数.....................: 8.0

- 扫描密度[最佳值:实际值]....................: 99.85%[681:682]

- 逻辑扫描碎片.................................: 0.00%

- 扩展盘区扫描碎片.............................: 29.91%

- 每页上的平都可用字节数.......................: 189.7

- 平均页密度(完整)...........................: 97.66%

DBCC 执行完毕。若是 DBCC 输出了错误信息,请与系统管理员联系。

能够看出icstockbill表的扫描密度为99.85%,逻辑扫描碎片为0.00%;扩展盘区扫描碎片为29.91%,数据页从原来的9935调整为5444,说明碎片已经获得了很好的整理。

 

能够经过两种方式进行整理,咱们称之为“优化账套”,下面介绍两种方法:

 

方法1:只对部分核心表进行整理,选择“帐套管理” —〉“数据库” —〉“优化账套”,缺点是帐套优化功能不能作调度定时执行,须要每次手工点击执行;

方法2:SQL Server企业管理器中作维护计划,使用企业管理器中管理—〉数据库维护计划—〉新建维护计划向导,在第三步,选择从新组织数据和索引页,如图4。

wKioL1g3pdSj27MuAAFuvUsKA6w546.png-wh_50

       因为碎片是因为平常的业务操做致使表中的数据处于不断的删除,新增中形成的,因此应该按期进行优化账套的操做。建议每周执行一次,同时避开使用K/3系统的高峰期。

       注:若是经过重建索引后,扫描密度,逻辑扫描碎片和扩展盘区扫描碎片依然不能获得较大的降低,这时候请先记录下原来创建的索引信息,手工删除全部的索引后,而后再从新创建索引来达到下降碎片。

       另外致使该问题还有可能因为数据库文件自己的碎片过多,这时候能够经过进行磁盘碎片整理后,备份后还原新帐套的方式来处理。

相关文章
相关标签/搜索