金蝶K3数据库索引及系统性能优化解决方案(具体应用篇)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

K3数据库索引及系统性能优化解决方案(具体应用篇)

--重建索引速度较慢,请在系统空闲时间进行

DBCC DBREINDEX(t_icitem)

DBCC DBREINDEX(t_item)

DBCC DBREINDEX(t_itemclass)

DBCC DBREINDEX(t_itemright)

DBCC DBREINDEX(t_user)

DBCC DBREINDEX(t_group)

go

if not exists(select 1 from sysindexes where name='ix_group_fgroupid')

create index ix_group_fgroupid on t_group(fgroupid)

go

if not exists(select 1 from sysindexes where name='ix_itemright_ftypeid')

create index ix_itemright_ftypeid on t_itemright(ftypeid)

go

1 SQL Server调整

当用户使用K3系统一段时间以后,发现系统的响应时间越来越长。这种情形往往是由于账套数据库缺乏维护引起的。缺乏维护的数据库会存在过多地碎片、过期的统计、隐含着可能的错误查询结果的数据库的逻辑和物理的不一致性,这些都会直接影响系统的性能。这里介绍解决上述账套数据库性能问题常用的方法。

1.1 使用DBCC语句发现和解决上述问题。

DBCC: 数据库一致性检查器。

打开SQL 查询分析器,执行如下语句。

u DBCC SHOWCONTIG 显示指定表的数据和索引的有关数据碎片的信息DBCC SHOWCONTIG(表名[,索引名])

在有大的改动的表,引入数据的表,或者引起低效查询的表上使用该语句。例:DBCC SHOWCONTIG(’T_ITEM’)

u DBCC DBREINDEX 重建指定数据库中表的一个或多个索引。

例1:重建某个索引

DBCC DBREINDEX ('T_ITEM', uk_item2, 80)

例2:重建所有索引

DBCC DBREINDEX ('T_ITEM',’’,80)

u DBCC SHOW_STATISTICS 显示指定表上的指定目标(例如一个索引名称))的当前分布统计信息。这些统计信息是被SQL Server查询优化器使用的DBCC SHOW_STATISTICS(表名,目标)

例:DBCC SHOW_STATISTICs('t_item','pk_item')

u sp_updatestats & UPDATE STATISTICS 更新统计信息;sp_updatestats 对当前数据库中所有用户定义的表运行UPDATE STATISTICS.

使用UPDATE STATISTICS 语句的时机:在一个空表上创建一个索引,然后在以后应用它。执行TRUNCATE TABLE语句,然后在以后重新应用该表。通过使用FULLSCAN或SAMPLE选项请求明细的索引统计信息。

例1. UPDATE STATISTICS T_ITEM

例2. UPDATE STATISTICS T_ITEM(PK_ITEM)

例3. USE AIS20011203150410

EXEC sp_updatestats

u DBCC CHECKTABLE 检查指定表或索引视图的数据、索引及text 、ntext 和image 页的完整性。如果你相信一个指定的表可能被破坏了,这条命令非常有用。

u DBCC CHECKDB 检查指定数据库中的所有对象的分配和结构完整性。这条命令发现并修复数据库地址分配和表内部的全部错误。实际上,CHECKDB验证数据库内部一切事物的完整性,但是,DBCC CHECKDB是一个耗费CPU和磁盘资源的操作,每个需要检查的数据都必须首先从磁盘中读出到内存中。而且,DBCC CHECKDB 使用tempdb进行排序。要获得较高的DBCC性能,推荐在下面的情况下运行DBCC:

l 在系统使用率较低的情况下运行CHECKDB;

l 确信当前没有执行其他磁盘I/O操作,如磁盘备份操作;

l 将tempdb放在另一个磁盘系统上,或者放在一个快速磁盘子系统上;

l 为tempdb提供足够的空间,运行DBCC带上参数ESTIMATE ONLY(显示执行DBCC CHECKDB 操作所需tempdb 空间的数量),估计tempdb需要多少磁盘空间;

l 避免运行消耗大量CPU时间的查询和批处理;

l 在DBCC命令运行时,减少事物活动;

l 使用NO_INFOMSGS选项(压缩使用空间使用的信息和报告)减少处理和tempdb使用率。

例:DBCC CHECKDB ('AIS20011203150410') WITH NO_INFOMSGS,ESTIMATEONLY

u DBCC SQLPERF 提供有关所有数据库中的事务日志空间使用情况的统计信息。日志文件的闲余空间的减少,会降低系统的性能。系统会在备份时日志截断日志文件,所以要求用户要制定一份良好的备份方案。

例:DBCC SQLPERF ( LOGSPACE )

1.2 使用数据库维护计划

使用数据库维护计划器是一种标准且方便的可对多个账套数据库同时设置维护任务维护模式。下面介绍其建立方法:

本方案所介绍的数据库维护计划侧重于数据库的优化,即性能的提高。

1) 打开Enterprise Manager,展开服务器,展开管理,然后单击数据库维护计划。从操作(Action)中选择新建维护计划,可以看到图4.1所示的欢迎屏幕,单击

相关文档
最新文档