查看: 11  |  回复: 0
  ASP 提高ASP性能和健壮性的其他技巧
楼主
发表于 昨天 12:27

以下是提高ASP应用程序性能和健壮性的快速和粗略提示:


使用Option Explicit指令确保所有变量都正确声明和作用域。误输入变量名是ASP和VB应用程序中最常见的错误原因之一。


一旦不再需要对象,就将其设置为“无”。这在IIS5下特别有效,它会立即释放对象占用的内存。


一旦不再需要,请立即显式关闭所有ADO连接和记录集对象。如上所述,在IIS4和以前的版本中将对象设置为Nothing不会自动释放该对象,因此当您将其设置为Nothing时,您不能指望ADO会自动关闭Connection或记录集(与常规VB应用程序中发生的情况不同)。


使用SQL Server 7.0或其他真正的数据库引擎,而不是Microsoft Access,后者根本无法进行密集的并发访问,就像大多数ASP网站所具有的那样。


对于必须在给定ASP文件中多次运行的查询,请使用ADO命令对象。使用SQL Server 7时,Command对象构建临时存储过程,这些过程编译一次并重复使用任意次数,直到Command对象设置为Nothing。但是,您永远不应该为两个不同的查询重用同一个Command对象,因为这可能会导致系统崩溃,至少在ADO 2.0下使用参数化存储过程时是这样。


尽可能使用只读的ADO记录集。在ASP下工作时,使用基于服务器端或客户端游标的记录集是有意义的,而且只读记录集(即所谓的无游标记录集)几乎总是最有效的选择。


如果必须使用基于游标的记录集,不要要求比实际需要更多的功能。例如,如果不打算更新数据库(或者可以通过直接update或INSERT SQL语句进行更新),请始终指定LockType=adLockReadOnly。如果您对键集游标感到满意,则不要创建服务器端动态游标。等等。


通过在SELECT语句中指定列名来限制从数据库读取的数据。请避免使用SELECT*FROM表语法,并仔细列出您实际要使用的字段。这可能是最简单、最有效的优化技术之一。


如果可能,请使用本机OLE DB提供程序。通常,它们比与相应ODBC驱动程序一起使用的ODBC源的OLE DB提供程序更快、更健壮。这一点尤为重要,因为ODBC的OLE DB提供程序是默认的ADO提供程序,除非您明确指定其他提供程序,否则将使用它。


确保对数据库的所有连接使用相同的连接字符串。字符串的一致性尤为重要,因为ADO在决定是否可以重用连接池中的连接之前会进行逐个字符的比较,这可以在您打开新连接时为您节省几秒钟的时间。确保始终使用相同连接字符串的最佳方法是将其存储到Global.asa中的Application变量中,或使用从打开连接的所有ASP脚本中引用的包含文件。


不要将ADO对象(如Connection或记录集对象)存储在Application或Session变量中。虽然这样做不会引发任何错误,但它会对应用程序的可扩展性产生不利影响,因为对连接或记录集的所有请求都是串行执行的,因此使用该对象的ASP脚本必须等到该对象未被任何其他ASP页面使用。最好在每个使用它的页面中创建一个新的连接或记录集页面,并在页面完成执行之前将其销毁。


将OLE DB Provider用于ODBC源时,请使用无DSN的连接字符串,这比用户和系统DSN更高效、更可扩展,而用户和系统DSNs又比文件DSN更快。使用本机OLEDB提供程序时,请使用不引用UDL文件的连接字符串。

您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2025 MaNongKu.com