MicrosoftAccess工作流设计器优化组解决方案性能的一些建议Word文件下载.docx
《MicrosoftAccess工作流设计器优化组解决方案性能的一些建议Word文件下载.docx》由会员分享,可在线阅读,更多相关《MicrosoftAccess工作流设计器优化组解决方案性能的一些建议Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
的.为了最有效地优化解决方案的性能,你必须在
解决方案所涉及的各个方面发现那些可以获得最大
性能增加的地方,并对这些地方进行集中分析.
鐾!
耋喜,数据唪性青巳的可用的模拭设盏盘重左j盛谴
为丁怃让性毵而可啦蕞用工作施特性.工作哳丑而的●妇
惶■域帮和复_I更有盘地远行的—些惜秤做盖鳝复直盈照戤
.
鬈景聃魏旭"
扭指谛M而育百曲硅
庀刊羌干一提设删一盈工簋更生擅皇
欲了解优化性能的其它建议,请参考Windows
NT,SQLServer,Access2000和MicrosoftFront.
Page@ServerExtensions文献.
二,数据库方面的建议
在数据库应用程序开发周期的早期正确地设计
数据库,使它符合你的业务要求模型并充分利用硬
件和软件的特性是非常重要的,因为以后很难对这
40电脑编程技巧与维护?
2000年2月
些组件作进一步的改动.在设计你的数据库和你的
解决方案时,你可以通过一些做法来优化数据库性
能,使你的解决方案更有效地工作.欲了解有关数
据库性能优化的更多信息,请参阅Access和SQL
Server的联机文档.
(一)优化SQLServer数据库
下面是优化SQLServer数据库性能的一些准
则:
●设计没有冗余数据的表.一个精心设计的数
据库是快速数据访问和数据更新的先决条件.
●强化参照完整性,在你在表上增加,更新或
删除行时,它通过在相关表上定义主键值和外部键
约束来保持定义的表间关系.
●为每一列选择合适的数据类型.这样你可以
节省空间和提高联合(join)操作的效率.当定义一
个列时,请选择适合此列数据的最小数据类型或最
J,的歹4大d,.
●为你排序,联合或你为其设置了条件的列创
建索引.通过为联合操作的两个列创建索引和为查
询中用于设置条件的列创建索引,你可以在查询速
度上获得非常大的改进.但是,索引会使记录的插
入,更新和删除速度变慢.
(二)在服务器上处理数据
在服务器上处理数据,你可以使用存储过程和触
发器,并可以在取回数据前对数据进行排序.
●存储过程是一组预编译的一个或多个SQL语
句和可选的能够接受参数的数据流控制语句,它们被
作为单个单元由SQLServer处理.存储过程存在于
sQL~Tver数据库内.因为存储过程在服务器上被创
建时被编译,所以它比单个的sQL语句执行得更快.
另外.因为存储过程在服务器上运行,它可以利用服
务器的剩余处理能力.
●触发器是一种特殊的存储过程,它在你更
新,插入或删除数据时自动执行.一般应用触发器
来强化那些比用检查约束来定义的业务规则和限制
更复杂的业务规则和限制.与检查约束不同,触发
器可以参照其他表上的列.例如,触发器可以回滚
试图对书(储存在标题表里)采用一个少于$10.O0的
折扣(储存在折扣表里)的更新.
●通过一个存储过程或存储在某个表单或报表
(运行于服务器上)上的RecordSouree属性里的一
个SQL语句来对服务器上的记录进行排序.在服务
器上对记录进行排序是利用服务器剩余处理能力的
另外一个途径.
三,工作流处理方面的建议
你可以禁用某些MicrosoftOffice开发版工作流
特性来改善解决方案的性能.为了提高事务处理性
能,有三个特性可以禁用:
行级别权限,在一个单
独的进程里运行工作流和允许脚本删除记录行.具
体采用哪个方法取决于你的解决方案的需要.
(一l行级权限
在Access工作流设计器里,安全性围绕主表和
详细表的基本视图进行设计.当行级别权限被允许
时,这些视图执行一个连接,连接到modPenmissions
表以决定返回哪些记录行.根据你设置了权限的列
数和设置了权限的行数,整个处理的性能将会受到
不同的影响.
如果你正在你的解决方案中使用行级别权限,
最好通过在Access工作流设计器对象列表中找到设
置了行级别权限的表,然后清除"
Enablerowper—
missions"
选项来禁用这个特性.
如果你禁用行级别权限并且没有为表定义工作
流处理,可能会带来安全问题.当心,为了让数据
访问页面正常工作,主键列的Select权限和行的In.
sort权限和De]ere权限在表注册时被授予Public身份
用户.如果你没有允许工作流处理或行级别权限的
话,任何一个以Public身份访问数据库的用户都可
以成功地对你数据库中的主表执行插人或删除查
询.
(二)在单独进程里运行工作流
在默认情况下,工作流在体的SQLServer进程
智慧密集
外的一个单独进程中运行.如果你需要进一步的性
能提高,则你可以通过在WorkfiowProcess帧上的
General属性页上清除掉的Runworkflowinasepa?
rateprocess选项来让工作流与SQLServer运行于同
个进程.
这样你可以得到20%到30%的性能提高.但是
请注意,如果工作流不在单独的进程里运行,则会
由于工作流脚本问题而引起你的服务器悬挂甚至崩
溃.建议你在禁用这个选项之前,先将工作流运行
于单独进程,对所有的工作流脚本进行仔细彻底的
测试.
(三l使被删除的记录行可用
工作流脚本有一种方法,在某些情形下可能会
有用——sesBi0n.OriginMItem方法.这个方法使你可
以获得一个记录当前值(Session.Item)被设置之前
的值.这个方法在默认情况下是不可用的.
要使这个方法可用,你可以通过在Worktlow
ProeeBs帧上的General属性页上选择Makedeleted
roWSavailabletoscript选项.
注意,在你作出这个改变之后,当触发器执行
时,通过将原始值复制到一个』临时表,记录的值对
脚本才是可用的.因此当你使用这个特性时,性能
会受到负面影响.除非你确实在脚本中需要Origi.
nalItem方法,否则不要选择这个选项以提高性能.
四,离线复制方面的建议
复制的实现需要小心规划,以使对阿络资源的
要求最小和最大限度地保持数据的一致性.当你规
划你的离线发布时,记住包含在你解决方案里的出
版物的大小和出版物的数量都会对性能产生影响.
除了前面描述的关于数据库的建议之外,还有
些设计问题可以影响复制的成功与否.在实现复
制前,你应该考虑下列设计准则:
●在Identity属性上使用Notforreplication选
项.
●使用uniqueidentifier数据类型.
●筛选数据以提高效率.
通常,刨建最少量的出版物,仅仅包含使解决
方案离线工作所需要的表,对象和筛选后的数据以
获得良好的性能.离线发布可以通过几个方式影响
ComputerProgrammingSkills&
amp;
Maintenance?
Feb..
200041
性能——当原始出版物创建时,在从模板创建解决
方案期间,当用户离线获取出版物和当用户使离线
数据库同步时.你的解决方案的数量越多,出版物
的大小越大,则解决方案创建的时间会更长.
使用复制监视器{Rep】icationMonitor)
复制监视器是一个SQLServer企业管理器组
件,用于查看复制代理程序的状态和解决分发器上
潜在的问题.你可以在SQLServer企业管理器中使
用复制监视器来:
●查看分发器上的出版商,出版物和出版物订
阅列表.
●查看预先安排好的复制代理程序的当前状态
和历史状态.
●设置和监控与复制时间有关的警告提示.
如果某个事件发生,SQLServer会自动做出反
应,其方式是通过执行一个你定义好的任务,或通
过向某个操作员发送一个e—mail或一个传呼信
息.
在复制设置完成后,你可以使用MicrosoftWin-
dowsNT事件查看器(EventViewer)来查看SQL
Server消息.欲了解关于事件查看器的更详细信息,
请参看WindowsNT帮助文件.
如果你在MicrosoftWindowsNT平台上运行服
务器,则你可以使用WindowsNT监视器(Performance
Monitor)来监控不同复制进程发生的频率.欲了解更
详细信息,请参看SQLServer联机书籍.
五,数据访问页面方面的建议
通常,当你设计你的网页时,你得决定当前所
需的数据和功能,并且直到用户请求信息时才要求
服务器提供这些数据和功能.例如,你可以创建一
个加载时不需要从服务器获取数据的页面,而在页
面上加上一个命令按钮来加载请求的数据.
只有当请求发生时,才提供那些需要花长时间
从服务器域获取数据的表域,例如文本和图片域.
你可以使用下列技术
●将文本和图片域放置在使用相同记录源的一
个子表单中.Access仅仅为当前记录取回文本或图
片.例如,发布跟踪(IssueTracking)解决方案就
使用了一个概要表单和一个单独的详细表单.
42电脑编程技巧与维护-2000年2月
●如果你的解决方案数据输人非常频繁,比如
定单输人系统,则为添加DataEntry属性被设置为
Yes的记录创建专用表单.当你输人新数据打开表单
时.Access不显示任何现存的记录.这将节省不少
时间,因为Access不必从服务器取回所有记录
●如果表单或报表基于一个带参数的存储过
程.则使用inputParameters属性来提供参数值.
●应用带适当WHERE字句的SQLUPDATE
和DELETE语句来更新或删除多个满足同样条件的
记录.这比打开一个记录集然后一次更新或删除一
条记录效率更高.
你还可以通过下列办法来更快地在页面浏览或
MicrosoftlntemetExplorer5中装载你的数据访问页
面:
●避免重复控制.
●尽可能少地使用位图或其它图像对象.尽可
能使用黑白位图,而别使用彩色位图.
●对于最大的组.确认把SortingAndGrouping
框的ExpandedByDefault属性设置为N0.把小的组的
这个属性设置为No可以在页面打开后加快其它交互
操作的速度.
●确认把SortingAndGrouping框的DataPage-
Size属性(它决定在页面上同时显示的一组记录的
数目)设置为一个比较小的数,而不是设置为较大
的数或设置为Au.这个数越小,则记录显示的速度
越快.
●用捆绑数据的HTML控件而不是文本框来显