仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1675|回复: 18
打印 上一主题 下一主题

[学习教程] ASP网页设计优化MICROSOFT ACCESS进步速度

[复制链接]
透明 该用户已被删除
跳转到指定楼层
#
发表于 2015-2-3 23:32:52 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于Windows NT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失;   摘要

  这篇文章引见了在设计、编写和完成Microsoft Access 数据库使用法式时为包管具有最高速度而需求注重的几点。

引见

  作为一位数据库法式员,你的次要义务是让你的用户能疾速地选择、办理和会见他们所需求的信息。其他的任务几近都是原封不动的,只需你的数据库使用法式履行速度越快,你的法式效力越高。这篇文章的目标就是凸起各类分歧的技能和战略,经由过程优化法式来进步速度,让你的Microsoft Access 数据库使用法式的效力更高,如许也能够匡助你完成作为一位数据库开辟者的次要任务。

硬件

  对准速度成绩的基本

  为了进步你的数据库法式的速度,天然而然地你会想到去注重影响速度最根基的几个局部,咱们将从处置这几个局部着手。在你力争进步你的数据库法式功能的时分,你的法式所运转的硬件平台将是独一的决意要素。不言而喻,完成优化的第一条准绳应当是较快的硬件=较快的数据库,固然CPU和RAM是这个等式的中心地点。信任你必定注重到Microsoft Access 所声明的,要到达一个使人写意的功能,最少需求8MB的RAM和一个80486的CPU。普通情形下,用户注重到这一点是理所应该的,但我却见过很多用户为他们的Microsoft Access 的履行速度而感应懊丧,当我问及他们利用甚么机械运转此法式时,他们告知我是一台80386,而且是在运转一台办事器上的一个MSACCESS.EXE。所以,在信任你的用户经由过程上面的办法当然能进步其法式功能的同时,一直需求强调的依然是,在Microsoft Access 履行过程当中,硬件才是关头的成绩。

  无效的磁盘会见

  假定已有了一个使人写意的硬件设置装备摆设,上面让咱们会商一下若何才干进步Microsoft Access 在此平台上的运转速度。就这个成绩,对你的数据库法式而言,影响其功能的第二位要素就是磁盘会见了。在履行过程当中,对物理磁盘的会见老是一个速度的瓶颈(与会见存储在 RAM中的数据比拟较而言),所以,你应当尽可能削减对磁盘的会见。但是,因为你的使用法式老是要和一些磁盘或其他一些物理装备打交道,所以,你的方针应当是包管一切的磁盘会见都尽量无效。要完成这一点,办法是常常收拾整顿你的磁盘数据碎片,收拾整顿你的数据库地点的磁盘驱动器和一切你履行你的数据库法式时要触及的磁盘驱动器,并且你还应提示你的用户按期清算磁盘碎片,以此包管磁盘会见一向无效。这将最大水平地削减在对物理磁盘停止读写而消费的工夫,虽然这些读写是不成防止的,同时优化了全部系统的功能。

  使RAM最大化/对磁盘会见的频率最小化

  下一个主题是使你的数据库法式与物理磁盘驱动器打交道的频率最小。要做到这一点关头是尽量多的释放RAM空间给你的使用法式利用。要完成这一点,你需求做到以下几点:

  增添最大缓冲区的尺寸

  起首触及到你对最大缓冲区尺寸的设置。最大缓冲区的尺寸指的是Microsoft Access作为外部存储空间而保存的RAM的数量。存储空间越大,用户需求的数据能在RAM中找到能够性越大,同时削减了对物理磁盘的会见频率。Microsoft Access 需求的最小缓冲区是512KB,假如你的硬件体系有多于4MB的RAM,那末你就能够为Microsoft Access 多分派一些供其利用(如许也增添了体系的功能)。要做到这一点,只需求在MSACCESS.INI(在你的windows目次下)文件中增添对最大缓冲区的设置,利用你的文本编纂器,例如记事本,在此文件中找到 [Option] 段,在个中加如许一句话:

   MaxBufferSize = xxxxx

  这个中的xxxxx便是为你的使用法式对存储空间分派而作的新设置(例如,设置MaxBufferSize=2048将为Microsoft Access分派2MB的缓冲区空间)。那末,你事实应当分派几何才算适合呢?除“尽量多”,其他的还真难说。你需求手动地调理这个设置,同时需求试着让你的硬件都能供应以下前提:1)不克不及妨害用户同时正在运转的法式,2)不会影响其本身底层操作体系的运转效力(你能够会在法式启动时想经由过程.INI文件检查一下Microsoft Access本身的设置装备摆设,因而,任何对MSACCESS.INI文件的修正都将只能鄙人一次Microsoft Access启动时才干见效,而对如今正在运转的Microsoft Access法式没有任何的影响)。

  防止装载Wizards

  为了释放更多的内存以供Microsoft Access利用,另外一个你可以接纳的步调是:假如你不利用Wizards,那末就不要装载它。你可以翻开MSACCESS.INI文件,找到[libraries]局部,在“wizards.mdb=ro”这一句之前加一个分号,如许就防止了主动加载Wizards。如许做将可以释放315B的RAM供应给Microsoft Access以作己用,如许做的优点不但在于进步了运转工夫的功能,同时使每一个使用法式均匀削减了大约10秒的装置工夫。

  消除墙纸/后台位图

  消除尺度windows墙纸后台可以释放RAM中任何一处25K到350K的空间。消除庞杂的位图将释放更多的内存空间。

  创立永世互换文件

  创立一个永世互换文件(相对一时文件而言)将增添你额定的功能。关于这一点,你可以乞助于关于这方面的匡助文档,它将指点你在运转数据库使用法式的机械上创立这一文件。

  到如今为止,咱们已处理了有关硬件平台、最大的磁盘会见效力的成绩,而且为你的使用法式增添了无效的RAM存储空间,接上去让咱们转向优化使用法式自己。

Microsoft Access本身特色

  紧缩、紧缩

  要包管常常性的紧缩你的法式代码。当你在开辟和利用Microsoft Access数据库时,你要常常性地增添和删除数据、代码等等。如今的成绩是Microsoft Access其实不能无效地释放已分派的但被删除的对象空间,这将意味着即便你删除一个对象,而这个对象依然在你的数据库中占有空间。紧缩数据库将迫使Microsoft Access真正删除这些对象并收受接管其占有的空间,从而使得你的数据库尽可能小但却更无效。我曾把逐字逐句查询的均匀工夫削减了30%――50%,而做到这一点仅仅是经由过程去紧缩那些因为常常利用又缺少紧缩而变得过度收缩的数据库法式,因而,在运转法式的过程当中,不要无视紧缩进程的主要性。正如你要按期排除硬盘数据碎片一样,你和你的用户也应该按期紧缩数据库来包管它一直最无效地运转。

  只用代码

  你能够但愿经由过程宏操作来搭建一个使用法式的模子,一旦你入手下手优化你的法式的终究功能,必定要把一切的宏从头写成代码。这次要是由于Microsoft Access代码要比宏运转得快的多。但遗憾的是有三个宏操作你不克不及将他们改写成代码,这三个宏是Autokeys、Autoexec和Addmenu操作,这三个宏在Microsoft Access中没有响应的等价类,因而你只能自愿利用他们。不外,你可以克制Autoexec的限制,只需求界说Autoexec为挪用你的Access Basic Autoexec函数。

  优化数据类型声明

当你在你的代码中声明数据类型时,你应当试着尽量准确。由于若是一个变量的类型(假如没有出格声明,缺省为可变类型)十分天真自在的话,那末这类类型同时也将是最华侈内存的一品种型。如许一来,假如你晓得check Balance这个变量不需求超越4位小数精度的话,那末就把它界说成肯定类型而不是可变类型。对你的进程函数的界说一样也能够如斯操作(好比说,把函数PostCredit()声明为整形,而不是Function PostCredit())。请注重如许一个现实,假如你估量一个变量将会被处置成一个空值,那末你需求去把它界说成一个可变类型而不是一个肯定的严厉的数据类型,不然你会失掉一个毛病信息。一样地,要注重整形除法和浮点除法之间的不同。

  常常利用From/Report变量

在你的法式中,你需求包管你能提早处理尽量多的查询任务。这意味着甚么呢?举个例子来讲明:假如你想在代码中查阅一个名为[NetPrice]的文本框,你可使用如许一条语句:

   Mytemprariable=Forms![Customer Invoice]![Net price]

  关于这条指令,Microsoft Access起首在Forms对象里搜刮名为[Customer Invoice]的表,一旦它找到这张表,Microsoft Access接上去寻觅名为[NetPrice]的掌握,并停止准确的操作。从这个例子可以看出,Microsoft Access经由两次查询终究肯定咱们指定的掌握。假如你想在统一法式(函数或子函数)中再次查询[Customer Invoice]表中任一掌握,你可以删除能够会鄙人次呈现的过剩语句,而只利用以下语句:

  Dim F as form

  Set F = Forms![Customer Invoice]

  如今,你的Form变量将主动指向Form[Customer Invoice],答应Microsoft Access 防止每次在你需求查找[Customer Invoice]表中任一对象时,都要把数据库的Form对象中全体搜刮一次。为了查阅掌握[NetPrice],你只需求复杂地利用上面的语句:

  Mytempvariable=F![NetPrice]

  你也能够对Report对象作不异的操作(好比,set R=Reports![MyReport])。当你在一个函数中仅仅只对一个Form或Report会见一次,你能够在速度功能方面得不到甚么太大得优点,然而一旦你入手下手在统一个Form或Report中停止的会见操作超越一次,你将会看到分明的工夫削减。因而,经由过程使Microsoft Access防止作过剩的查阅,你将大大地进步你法式的速度。

  在可以使用的中央利用windows函数

  不管什么时候,只需相干,老是可以用一个windows函数挪用来取代Access Basic代码履行统一个操作。如许你将节俭开辟工夫,由于windows函数挪用是已完成编码并经由优化,同时也由于它们是用C言语编写的(机械可履行),而Access Basic代码则要被编译成P代码模式,同时需求在履行时一行一行地注释。一个最通俗的例子是custom.ini设置。你可使用Access Basic文件函数去失掉一个自在文件指针,翻开文件,读/写文件,然后封闭它。然而假如你完整可以复杂地利用GetPrivateProfileString和WritePrivateProfileString函数来完成,它们既快且已编码优化顺手可用,你为何还要自寻懊恼呢?(参考:“Enhanced Microsoft Access: Using the Win16 API”)


  你的Microsoft Access数据库使用法式运转速度越快,你就可以更好地完成你的义务,也就是向你的用户供应最无效的选择、办理、发送他们的数据的才能。我朴拙但愿以上这些小技能能协助你到达这个方针。由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。
简单生活 该用户已被删除
18#
发表于 2015-7-8 02:44:59 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
admin 该用户已被删除
17#
发表于 2015-6-21 20:33:08 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
16#
发表于 2015-6-13 09:47:14 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
山那边是海 该用户已被删除
15#
发表于 2015-6-13 00:28:51 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
再见西城 该用户已被删除
14#
发表于 2015-5-6 17:11:02 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
蒙在股里 该用户已被删除
13#
发表于 2015-4-26 12:03:35 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
因胸联盟 该用户已被删除
12#
发表于 2015-4-18 23:00:21 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
只想知道 该用户已被删除
11#
发表于 2015-4-16 11:36:44 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
精灵巫婆 该用户已被删除
10#
发表于 2015-4-13 16:02:29 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
小妖女 该用户已被删除
9#
发表于 2015-4-5 01:07:33 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
兰色精灵 该用户已被删除
8#
发表于 2015-3-27 18:09:34 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
变相怪杰 该用户已被删除
7#
发表于 2015-3-18 15:05:46 | 只看该作者
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
活着的死人 该用户已被删除
6#
发表于 2015-3-11 13:52:53 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
分手快乐 该用户已被删除
5#
发表于 2015-3-3 22:47:27 | 只看该作者
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
愤怒的大鸟 该用户已被删除
地板
发表于 2015-2-13 14:40:14 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
金色的骷髅 该用户已被删除
板凳
发表于 2015-2-10 07:53:49 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
海妖 该用户已被删除
沙发
发表于 2015-2-9 09:38:10 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
飘灵儿 该用户已被删除
楼主
发表于 2015-2-4 01:56:44 | 只看该作者
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 00:04

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表