当前位置:首页 > 用友知识堂 > 正文内容

用友软件数据库变慢导致查询单据打印账表等很卡的终极解决办法

3年前用友知识堂946

很多使用用友财务软件的朋友,使用的都是SQLSERVER数据库,有一部分朋友的用友软件数据库更是巨量数据,特别是用到生产管理的模块,千万行甚至亿行记录都不足为奇。如此情况下,用友数据库运行速度将受到严重影响,打开一个账表半小时甚至两小时,做一个计划要两天两夜,各个部门经常出现抱怨不断,IT运维人员更是焦头烂额。那么应该怎么办呢?如果解决用友软件数据库变慢导致查询单据打印账表等变慢的问题呢

其实是有办法可以大大提升数据库运行效率的,这要求我们的IT运维要学会数据库日常维护的高级技巧,而且是必须学会。下面是数据库效率提升技巧的全面内容,建议所有企业的IT运维人员都要自行练习并用在实际工作中,能够熟练掌握。下面我们就一起来看一下用友软件数据库变慢导致查询单据打印账表等很卡的终极解决办法。

技巧一:重建索引

效率提升指数:高

特点:一二三买单,灰常的快,一下就弄完可以走人了。

案例:某超市畅捷通T1商贸宝百万行级数据,原速度五秒,重建索引后两秒不到,速度提升近一倍。不要小看这几秒,对超市来讲,那意味着不必要排长队。

由于数据库日常写操作频繁,索引的工作效率会越来越低,速度自然大受影响,很多客户会有这种感觉,前半年还非常快,后半年就受不了了。刚刚到年底,正好是出报告、查资料的年关,偏偏软件慢得要命,服务人员也别想有好日子过,陪着加班吧,就算解决不了问题,也让人家心理舒服点。这样的日子可以过去了。

命令1:DBCC DBREINDEX (表名称,"",70) ---针对主要影响速度的表,一般如rdrecords、salebillvouchs、pp_mrpdetails、pp_rmrpdetails

说明:只对主要表操作,影响速度的当然是这几个大表,速度解决问题,也不影响客户使用

命令2:exec sp_msforeachtable "DBCC DBREINDEX(""?"")" ---数据库所有表重建索引

用友软件数据库变慢导致查询单据打印账表等很卡的终极解决办法 用友知识堂 第1张

说明:不太建议,除非太咸了

特别指出,重建索引前必须断网,以保证所有客户端无人在操作软件

技巧二:表分区

效率提升指数:超高

特点:慢工出快活。硬盘越多,它就越快,所有硬盘一起转当然快;CPU越多,它就更快,sqlserver的引擎对这个有优化设计;设计得越合理,它就灰常滴快,例如历史数据按年存放,因为你一般不用嘛,那数据库只对你要操作的部分分区检索,自然飞快。还有,必须得是sql2005及以上版本

1、为数据库建个文件组(可以建多个),最好是存放于不同磁盘上。这样效率得以最大化,想一想吧,我们查一个年度所有收发记录,三个硬盘一起转,是不是原来速度的三倍?

ALTER DATABASE 数据库名 ADD FILEGROUP 文件组名

2、一个文件组可放置多个文件,下面,只为一个文件组分配一个文件,类推吧。

ALTER DATABASE 数据库名 ADD FILE (NAME = N"文件组名", FILENAME = N"存放路径",SIZE = 5MB , FILEGROWTH = 10% ) TO FILEGROUP 文件组名

3、创建分区函数。这个函数是本文件组专有的,再建其它的文件组还得再搞一个。主要是设定,包括预设现有的数据从哪里开始水平分割,比如我们假设U8 10.0的上一年度最后一行rdrecords记录的Id是5000000,那么就可以设定这个值,这以内的记录会切割保存到第一个分区中。

CREATE PARTITION FUNCTION [函数名] (int) AS RANGE LEFT FOR VALUES (5000000,8274249,12000000)

此句表示,分三个区存放原先的数据

4、将分区函数绑定到分区架构上

CREATE PARTITION SCHEME [架构名]
AS PARTITION [函数名]

TO ([PRIMARY],[文件组名],[PRIMARY],[文件组名],[PRIMARY],[文件组名])

5、删除表的主键,必须删除,表担心,主键可以再建的

ALTER TABLE 数据表名称 DROP CONSTRAINT [主键]

6、删除聚集索引,如果有的话,我还没找到命令,现在是手动删除的

7、开始做表分区

ALTER TABLE 数据表名称 add CONSTRAINT [主键] PRIMARY KEY CLUSTERED (主键字段名)
ON [SHEME_rdrec](主键字段名)

你看,这不是恢复了主键吗

不过还是得手动恢复原来的聚集索引,这个我再查查语句吧

特别提出:

数据库收缩并不能提高数据库的读取效率,正相反,它反而更慢了,蛋痛!原因,是收缩后数据库内部的数据存储发生位移,也就是索引变得更低效。

这种情况下,必须再做一次索引重建,但我发现似乎只要收缩了以后,数据库都慢,重建索引也恢复不到原来的速度,一下想不明白道理,而且做的测试次数也有限。

建议以后不要做收缩处理,没空间了买硬盘吧。

最终建议:  

微软的sqlserver系列产品一直在进化,我从7.0一直用到2008,对于习惯了sql2000的服务人员来讲,要更换并熟悉一种新的数据库确实是一个挑战。这个字眼换一个吧,叫做好奇心。是的,技术人员的最根本特性,就是要保持这种好奇心,那么无论何种旁人看来的枯燥都是我们新奇的玩具。

sql2008有什么特点?就速度的提升而言,并没有太大的提高,但是它将我们在sql2005中必须要复杂语句处理的表分区,直接做成了向导模式,傻瓜型的,也就是说,谁都可以轻松的胜任一个数据库管理员的工作。如果你不想记住那些复杂的语句,呃,那么来个sqlserver2008数据库吧。

用友软件数据库变慢导致查询单据打印账表等很卡的终极解决办法 用友知识堂 第2张

温馨提示:近期载地址失效频繁,如链接失效请点击此处查阅详情!

相关文章

安装用友MSDE2000数据库提示:安装程序配置服务器失败怎么解决?

安装用友MSDE2000数据库提示:安装程序配置服务器失败怎么解决?

很多XP系统的同学,在安装msde2000数据库的时候提示一个错误:安装程序配置服务器失败的问题呢?今天在安装用友MSDE2000数据库提示:安装程序配置服务器失败。如下图所示:...

用友SQL2008R2简版数据库一键安装包免费下载及安装教程

用友SQL2008R2简版数据库一键安装包免费下载及安装教程

之前给大家发布过用友SQL2005一键安装包免费下载地址,不少的win8和win10系统的朋友安装都很正常也很顺利(因为只需要双击一下就好了,没有之前的SQL2005数据库安装这么复杂),但是也有部分...

用友软件数据库置疑修复工具_可修复损坏的用友T1/T3/T6/U8数据库

用友软件数据库置疑修复工具_可修复损坏的用友T1/T3/T6/U8数据库

经常碰到使用用友财务软件的客户电脑出现异常关机,突然断电,硬盘损坏等情况,而数据库正好没有备份过,或者近一个月没备份,或者备份计划没有备份到数据,导致数据库损坏,数据库置疑等情况,那么怎么办呢?今天用...

如何打开用友软件后台的数据库表?

如何打开用友软件后台的数据库表?

今天用友软件免费下载网站要给各位新手如何打开用友软件后台数据库表,主要学习是用来修改一些比较简单的错误的,例如说清除异常任务,数据库后台给模块结账等问题!首先我们以用友T3,用友T6,用友U8为例来进...

用友T3提示:无法找到对应的会计年和月,无法启用模块。

用友T3提示:无法找到对应的会计年和月,无法启用模块。

问题现象:新建2014年帐套,启用日期为2014年1月,启用模块时选择的日期也是2014年1月,并且电脑时间也是2014年,但是用友T3财务软件系统弹出提示:无法找到对应的会计年和月,无法启用模块?解...

SQL server 2016 免费下载地址及图文安装教程步骤详解

SQL server 2016 免费下载地址及图文安装教程步骤详解

今天用友软件免费下载网站要与大家分享的是SQL server 2016 免费下载地址及图文安装教程步骤详解,需要注意的是SQL SERVER 2016数据库目前只支持用友畅捷通T+V12.2SP3与用...

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。