明细分类账查询慢的原因及解决办法原创
金蝶云社区-战斗的凯文
战斗的凯文
83人赞赏了该文章 261次浏览 未经作者许可,禁止转载编辑于2024年04月12日 17:41:01

明细分类账查询如果发现越来越慢,那原因很可能是相关表碎片量大,索引效率低引起的。

可能定期检查以下明细分类账相关表的碎片情况,如果结果中扫描密码低于90%,建议执行索引重建脚本来优化索引性能。具体如下:

1,明细账涉及的表:

明细数据来源表:

T_GL_VOUCHER
T_GL_VOUCHERENTRY

余额数据来源表:

T_GL_BALANCE
T_GL_BALANCEADJUST

核算维度数据来源表,可以通过下面的SQL语句查询到:

SELECT PL.FNAME,L.FTABLENAME FROM 
	(SELECT FTABLENAME,FFORMID FROM T_META_LOOKUPCLASS
		UNION 
	SELECT 'T_BAS_ASSISTANTDATAENTRY',FID FROM T_BAS_ASSISTANTDATAENTRY ) L
JOIN T_BD_FLEXITEMPROPERTY P ON P.FVALUESOURCE=L.FFORMID
LEFT JOIN T_BD_FLEXITEMPROPERTY_L PL ON PL.FID=P.FID AND PL.FLOCALEID=2052
ORDER BY p.FFLEXNUMBER

如下图所示:

image.png

2,检查相关表的碎片情况,以T_GL_BALANCE表为例(下同),可以执行以下脚本:

dbcc showcontig(T_GL_BALANCE)

如下图所示:

image.png

上图上扫描密度为30%左右,明显偏低,推荐值为90%,因此,该表的查询索引性能偏低,需要进行索引重建,以恢复索引最佳性能。

3,对指定表做索引重建的语句如下:

Alter index all on T_GL_BALANCE rebuild;

执行后对比碎片情况如下:

image.png

其它相关表也可以进行类似的查询,当打描密码值偏低时就进行索引重建。

这样操作一遍之后,明细分类账的查询性能应该会有明显提高,如果效果不明显,那可能还有其它影响查询性能的原因存在,可以继续进行针对性的分析,相关话题将在其它文章中探讨。

赞 83