处理数据库的优化问题的探讨 基于 ASP 处理数据库的优化问题的探讨
(嘉兴市建筑工业 张险峰)
摘要: 摘要:ASP 作为目前使用最常见的网站建设工具,得到了很多网站设计人员的好评。
ASP 一个最重要的功能,就是它可以让你非常轻松地连接数据库;对于它访问数据库的速度 优化问题,虽然一直提的很多,可在实际的网站建设运用中能真正实现的并不多。本文就从 实际设计出发,阐述设计 ASP 网站在和数据库的各类处理中,应使用哪些技巧,从而达到优 化代码程序,提高数据处理效率,让自己设计的网站有更强的竞争力的效果。
关键字
数据库连接,优化,访问速度 ASP ,数据库连接,优化,访问速度,
Microsoft Active Server Pages 即我们所称的 ASP ,其实是一套微软开发的服务器端脚 本环境, ASP 内含于 IIS 之中 , 通过 ASP 我们可以结合 HTML 网页、 ASP 指令和 ActiveX 元件建立动态、交互且高效的 WEB 服务器应用程序。有了 ASP 你就不必担心客 户的浏览器是否能运行你所编写的代码, 因为所有的程序都将在服务器端执行, 包括所有嵌 在普通
HTML 中的脚本程序[1]。 ASP 能快速执行你的动态网页,但你还需要通过紧缩代码和数据库连接以使它们执行 更快,因为一旦用户发现任何页面延迟都可能意味着他们会失去继续访问你的网站的耐心; 假如你的是商业站点,这就可能意味着失去潜在的销售。本文在此只讨论
Asp 在处理数据 库如何获得最快执行速度的
问题。
一、设计数据库时要注意的问题
1)确认你的数据库具有索引,因为这样能直接提高你的程序的效率。同样,尽量在你 的数据库服务器运行更新统计(Update Statistics) 以帮助追踪你的数据分发,这样,你的数据 库就能够基于这些信息来改造查询执行。 但是并不是在任何情况下使用索引都是最佳的, 合理的索引
设计要建立在对各种查询的 分析和预测上,一般我们可以这样认为[2]: ①.有大量重复值、且经常有范围查询(between, >,< ,>=,< =)和 order by、group by 发生的列,可考虑建立群集索引; ②.经常同时存取多列,且每列都含有重复值可考虑建立组合索引; ③.组合索引要尽量使关键
查询形成索引覆盖,其前导列一定是使用最频繁的列。 2)尽可能使用存储过程:存储过程是预先编译的程序,含有一个已经准备好的执行计 划,所以比 SQL 语句执行更快。特别是要输出的数据要从存储过程来,通过存储过程访问
数据库来代替使用嵌入式 Sql 语句,你可以提升潜在的性能。同时在存储过程中让 SQL 象 它被设计的那样工作,它能 count(统计),连接(join), 排序(sort)和 group 数据。当你能够 写出
一个查询语句来做这些东西的时候,就不要自己用其它语言来实现,例如:SELECT count(*) FROM Member WHERE state='Grade'。 3)注意一些数据库比如 MS Access,在设计自己的商业网站时,尽量不要考虑; SQL Sever 7.0 或者 Oracle 是一个更好的选择。 4)多表操作的时候注意连接条件的考虑:多表操作在被实际执行前,查询优化器会根 据连接条件, 列出几组可能的连接方案并从中找出系统开销最小的最佳
方案。 所以连接条件 要充份考虑带有索引的表、行数多的表;内外表的选择可由公式:外层表中的匹配行数*内 层表中每一次查找的次数确定,乘积最小为最佳方案。
二、连接数据库时要注意的问题
1)使用快速的 OLEDB Provider 技术连接你的数据库而不是使用 DSN 连接。 你的 ADO 调用首先被送到 OLEDB,接着被送到 ODBC 层。然而,你可以直接连接到 OLEDB 层,并 且如果你这样做的话,你就能看到服务器端性能的提高[3]。 在连接数据库时还要记住每次数据库连接串参数必须相同, 否则会被认为是不同的连接 而 重新 去连接 数据 库,而 不是 使用缓 冲池中 的连 接。 最好的 做法是 将连 接串 存储在 Application 变量中,所有的
程序在建