基于ASP.NET企业网站的性能优化思路初探
2017-06-05陈东施阳
陈东 施阳
摘要:随着ASP.NET技术的不断发展,其在企业网站性能的构建中发挥着越来越重要的作用。企业网站的性能构建和更新并健全是个长期的工作,笔者将对基于ASP.NET技术构建的企业网站性能的几个主要方面对如何实现企业网站的性能优化进行探讨。
关键词:缓存技术;数据库;用户协议优化
中图分类号;TP311 文献标识码:A 文章编号:1009-3044(2017)07-0103-02
随着ASP.NET技术的不断发展,越来越多的企业选择改进传统的.html类型网站,更多地选择利用ASP.NET技术平台和Visual studio.net语言开发企业网站。企业网站是企业面向社会和其他企业窗口,对展示企业文化、传播企业精神内涵、扩大企业间交流有重要意义。因此,企业网站除了页面上的美观、内容上的丰富度要求以外,为了实现企业间交流、展示企业文化内涵等目标,相应的对企业网站的性能提出了更高要求。其中包括:响应时间、数据有效吞吐量、最大访问量等性能需求。针对这些问题,本文从缓存、数据库、用户状态等几个主要性能方面进行探讨。
1缓存技术
何为缓存技术?缓存技术是在网络时代背景下,广泛用来提高计算机性能的一种技术,其本质上是将用户访问频率较高的内容或数据暂时通过内存的方式存储在个人设备中。由于ASP.NET会在用户首次访问某些数据时进行自动编译,这些编译数据将在服务器界面留下缓存,因此首次打开某些界面会出现读取缓慢现象,这些现象在多次访问后会有所改善,这是由于再访问时这些数据并非逐一读取,而是直接提取缓存的方式进行访问,这必将提高网站的读取速度并能够适当增加网站的扩展性能,响应速度也会极大提高。缓存技术在现代网络中被广泛应用也是这一原因,其对响应速度的提升是不容小觑的。
如何实现缓存技术的优化,将是如何提高基于ASP.NET企业网站访问效率、响应速度的关键。对此有以下几种方法。
1)数据的分级释放,由于首次访问时访问数据和缓存数据基本上是同期进行,计算机的性能和执行进程的数量相关,一般来说,进程数目越多、进程内存越大,计算机所需要的响应时间越长。因此我们可以将缓存方式进行优化,实现数据的分级释放。
举例来说:用户首次访问企业网站时,数据开始释放并进行缓存,如果缓存服务器所有数据内容,这项数据处理量将是极其庞大的,用GB计量甚至TB计量,即使不需将这些数据全部提取并打开,但是自动缓存还是会进行下去,这将占用大量的计算机和服务器性能,对访问效率和响应速度的影响极为明显。将数据分级释放能够较好的避免这一问题,比如企业网站首页和首页直接导航链接为一级数据,用户在访问时优先缓存,次级链接的速度为二级数据,在用户浏览一级数据时缓慢缓存,在浏览信息的同时缓存次级数据,能够避免一次性缓存大量数据带来的响应速度缓慢的弊端,是企业网站性能优化的一个重要方面。
2)页面输出优化处理,经常浏览网站的用户应该都知道,一个页面上会有需要图文信息和不需要图文信息,有时已经可以浏览到需要信息,但是网站还是在缓存不需要信息,访问速度明显受到干扰。企业网站优化时可以通过@OutputCache指令实现,通过增加用户缓存控件,限制页面输出时间,例如%@OutputCache Duration=20 VaryByParam="None"%指令,限制页面输出时间,在20s内进行,20s内无论是否缓存完全部数据,强制页面输出,缓存工作可以放在浏览时再进行等。
2数据库
数据库是按照数据结构来组织、存储和管理数据的地方,由于其像仓库一样的倉储功能,我们称之为数据库。数据库在某一网站中具有重要意义,网站每一个等级的页面输出数据几乎全部存储在服务器数据库中。换句话说,就浏览网站时可见的信息:图文、表格等几乎全部是服务器数据库的内容物。数据库的优化,是对服务器信息、数据的整理,重点在于页面输出通道和数据库提取通道之间的连结和优化。
1)jE确使用连接池。连接池是将数据库资源和页面进行连结,连接池使显示数据和请求访问数据可以对号入座,使访问更具效率、缩短响应时间等。网络黑客、木马等病毒其工作原理就是通过修改、篡改、钓鱼等方式干扰连结池,使用户请求信息无法准确传达到服务器中心,从而使数据库提取有误的信息,强制使用户浏览、阅读。
ASP.NET中提供了有效的连接池,用来改善打开和关闭数据库对服务器性能的占用,其能够在收到请求信息后,直接从数据库中提取有效信息,从而达到迅速响应的结果。但是连接池有一个弊端,就是访问数量有限,无法处理过于大量的请求和信息,因此正确使用连接池的关键在于处理好连接池的打开和关闭时间,收到用户请求时迅速打开,使用完毕后或是长时间没有请求信息时关闭,这些可以通过编程代码实现。此外,必要情况下可以通过增加连接池数目的方式,提高负载能力。
2)精心设计并使用存储通道。网站的数据储存过程是通过SQL语句编译实现,存储过程是对服务器数据库的即时访问,信息处理速率也相应较高。正确使用存储通道可以有效避免对重复数据的多次编译,有效降低服务器负载。并且存储过程独立于ASP.NET程序,修改也较为简便,语句传输速度也较快。
3)优化查询语句。ASP.NET中建立ADO类型连接消耗的性能相当巨大,并且随着SQL语句运行时间的正常,占用系统性能的时间也会相应延长。因此在服务器构建过程中,尽量避免在ASP.NET中使用SQL语句,尽量采用选择运算、网络数据排列预处理等方式降低SQL语句使用频率,能够相应地提高数据库信息调取速率,对网站性能的优化具有重要作用。
4)合理利用数据库相关控件。举例来说:Dataset类型控件适合用于数据库的读取和写入操作,而.DataReader类型语句在只进行数据库读取操作时更加使用等;根据语句特性,尽可能发挥各种语句在数据库构建中的优势,达到网站性能上的优化。
3用户协议优化
网站的服务对象都可以称之为用户,包括社会的一般民众的其他企业,这是企业推销自身、推广自身文化内涵的重要途径。与用户协议息息相关的几个方面有:网站的个性化风格、用户权限、用户状态管理等。
3.1网站个性化风格
网站个性化风格是体现网络平台贴心设计的重要内容,根据用户端口的特性从服务器端对访问用户进行的专门用户状态设计,我们称之为网站个性化风格。在增加社会好感方面,网站的个性化风格极其重要,这些需要通过ASP.NET语句和服务器SQL语句编译实现。尽可能满足各种用户的需求或个人倾向,所谓“投其所好”。
3.2用户权限
用户在网站上进行WEB会话需要涉及各种各样的网络权限,那么企业网站究竟在用户访问企业服务器时赋予多少用户权限,这需要根据企业能够开放的权限类型和数量来决定,不能在这里做一个通论。但是在用户权限方面,只要处理好网站安全和用户请求之间的关系就可以,在保证网络完全和服务器性能的前提下,最大限度的权限开放都是合理的。
3.3用户状态管理
一般只要有会员、用户机制的网站或论坛在登录的时候都会有这么一个复选框——[记住我的名字|两周内不再登录|在此计算机上保存我的信息],说法较多,但总体来说都差不多,这就是一种最简单的用户状态登记和管理。
企业网站不同于论坛和社区网站之处在于企业网站可能存储更多的行业内部信息,这些信息有时会涉及企业商业机密或是与企业发展、规划具有重要联系,这些信息数据需要处于半公开状态,即公开但是又无法对所有访问者进行公开,这里虽然涉及用户权限管理,但是更多地依赖于用户状态管理。
在ASP.NET中可以通过编写Cookie的方式实现:
控制Cookie的范围
限制Cookie的域范围
由于Cookie存储在客户端,不能直接修改和删除Cookie
通过给Cookie赋新值替换旧版本Cookie的办法来修改
可以通過设置Cookie立即过期的办法来删除Cookie
这样可以根据用户状态来确认用户权限等级,能有效处理好网站安全和网络信息公开之间的问题,在企业网站优化中能发挥重要作用。
4结束语
除了上述的几种企业网站优化途经外,ASP.NET背景下企业网站还可以采用页面控件(.aspx)、用户控件(.asex)等控件进行控制限制;网站程序分层:用户界面、业务逻辑界面、数据访问界面等结构建立等方式进行企业网站优化设计。
宗旨,企业网站性能的优化是一个长期的工作,需要企业网络工程人员在细致的工作之余,总结实践经验,不断修补和更新才能完成的长期工程,这点是毋庸置疑的。