畅捷通系列
用友系列
其他系列产品
浪潮服务器系列
详细信息 您现在的位置:用友软件临沂营销服务中心 > 详细信息
 

用友数据量过大造成软件缓慢的优化策略

 
 

用友数据量过大造成软件缓慢的优化策略 

 

      临沂用友软件有一些客户的数据库是巨量数据,特别是用到生产管理的模块,千万行甚至亿行记录都不足为奇。如此情况下,数据库运行速度将受到严重影响,打开一个账表半小时甚至两小时,做一个计划要两天两夜,客户抱怨不断,服务人员焦头烂额,总不能叫客户都去买大型计算机吧。


      其实是有办法可以大大提升数据库运行效率的,这要求我们的服务人员要学会数据库日常维护的高级技巧,而且是必须学会。

下面是数据库效率提升技巧的全面内容,建议所有服务人员自行练习并用在实际工作中,要求熟练掌握。


技巧一:重建索引
效率提升指数:高

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

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


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


命令1:DBCC DBREINDEX (表名称,"",70) ---针对主要影响速度的表,一般如rdrecords、salebillvouchs、pp_mrpdetails、pp_rmrpdetails
说明:只对主要表操作,影响速度的当然是这几个大表,速度解决问题,也不影响客户使用


命令2:exec sp_msforeachtable "DBCC DBREINDEX(""?"")" ---数据库所有表重建索引
说明:不太建议,除非太咸了


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

 

技巧二:表分区

效率提升指数:超高

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

案例:NC、U8 10.0,是的,它们用的就是表分区,所以数据越海,速度也越Hi


没有做表分区之前,客户是痛苦的,你也得痛苦,因为你不明白几万元的服务器怎么就玩不转一个T6,但NC这么海却可以在宽带上溜溜的跑?U8 10.0还不分年度裤呢,咱一个年度还用爬的?如果我说可以提升五倍甚至更高的速度,你信不信?反正我是信了。

真的。


这个有点点难,因为要求有更多的数据库知识,不过初中生的水平也够用了,来吧。

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](主键字段名)

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

 

特别提出:
数据库收缩并不能提高数据库的读取效率,正相反,它反而更慢了。原因,是收缩后数据库内部的数据存储发生位移,也就是索引变得更低效。
这种情况下,必须再做一次索引重建,但我发现似乎只要收缩了以后,数据库都慢,重建索引也恢复不到原来的速度,一下想不明白道理,而且做的测试次数也有限。
建议以后不要给客户做收缩处理,没空间了买硬盘吧。

 

 

 

 

用友软件,用心服务!正版软件,假一赔十!服务监督电话:400-660-0566 临沂用友软件销售、培训、服务、临沂用友二次开发,企事业单位信息化管理服务,OA办公系统,联系电话:18669962876 技术服务QQ:1095460234

做客户信赖的长期合作伙伴 临沂用友软件

  用友是一个有梦想的企业,用友人是一批有信念的人,我们建立和发展于崛起的中国、融合的世界,在革新的时代,我们可以拥有梦想、树立信念,并追求梦想,实践信念。
  我们勇于梦想,确立使命、目标和信念。更勇于追求梦想,通过奋斗实现梦想,我们追求成功,永不言败。
  今天,我们的梦想就是“用信息技术推动商业和社会进步”,并在此基础上“成就一个世界级的软件企业”,让中国软件产业在世界崛起。我们的信念就是要“做客户信赖的长期合作伙伴”,在此基础上为客户、伙伴、员工、股东创造价值,并履行社会责任。
  做客户信赖的长期合作伙伴
  以专业的能力、诚信负责的态度,不断创造先进产品,长期优质服务客户,帮助客户持续成功,以此赢得客户信赖,并保持长期合作伙伴关系。

 

版权所有 © 2008-2022 用友软件临沂营销服务中心 www.lyyonyou.com
技术支持:百度
临沂用友软件 临沂用友软件服务 临沂用友软件销售 用友软件年结