时间:2021-04-16
现在ASP和SQL数据库联系紧密,包括Access数据库,数据库的执行效率直接关系着你系统的运行质量,因此优化好你的数据库,是很有必要的,下面介绍几种SQLSERVER/ACCESS优化方法,对使用ASP的朋友,或许会有不小帮助。
方法一:要使用复合SQL查询,不要使用单一堆彻的大量简单SQL,因为一个复杂的SQL完成的效率高于一堆简单SQL的效率。有多个查询时,要擅长使用JOIN。
以下查询是不效率的:
oRs=oConn.Execute("SELECT * FROM Books")
while not oRs.Eof
strSQL = "SELECT * FROM Authors WHERE AuthorID="&oRs("AuthorID") oRs2=oConn.Execute(strSQL)
Response.write oRs("Title")&">>"&oRs2("Name")&"
&q uot;
oRs.MoveNext()
wend下面这段代码就要比上面的效率高多了:
strSQL="SELECT Books.Title,Authors.Name FROM Books JOIN Authors ON Authors.AuthorID=Books.AuthorID"
oRs=oConn.Execute(strSQL)
while not oRs.Eof
Response.write oRs("Title")&">>"&oRs("Name")&"
&qu ot;
oRs.MoveNext()
wend方法二:不到万不得已,不要使用可更新的Recordset
oRs=oConn.Execute("SELECT * FROM Authors WHERE AuthorID=17",3,3)
oRs("Name")="DarkMan"
oRs.Update()上面的代码要比下面的代码慢:
strSQL = "UPDATE Authors SET Name='DarkMan' WHERE AuthorID=17"
oConn.Execute strSQL方法三:更新数据库时,尽量使用批处理更新,也就是把SQL组成一个大的批处理SQL,一次运行;要比一个个更新好得多:
strSQL=""
strSQL=strSQL&"SET XACT_ABORT ON\n";
strSQL=strSQL&"BEGIN TRANSACTION\n";
strSQL=strSQL&"INSERT INTO Orders(OrdID,CustID,OrdDat) VALUES('9999','1234',GETDATE())\n";
strSQL=strSQL&"INSERT INTO OrderRows(OrdID,OrdRow,Item,Qty) VALUES('9999','01','G4385',5)\n";
strSQL=strSQL&"INSERT INTO OrderRows(OrdID,OrdRow,Item,Qty) VALUES('9999','02','G4726',1)\n";
strSQL=strSQL&"COMMIT TRANSACTION\n";
strSQL=strSQL&"SET XACT_ABORT OFF\n";
oConn.Execute(strSQL);其中,SET XACT_ABORT OFF 语句告诉SQL Server,如果事务处理过程中遇到错误,就取消已经完成的事务。
方法四:避免Text字段太大。当字符串的值大小不固定时,用varchar比用char的效果要好 些。我曾经看到一个例子程序,字段被定义为TEXT(255),但是他的取值经常只有20个字符。这个数据表有50k个记录,从而使这个数据库很大,大的数据库必然较慢。
方法五:数据库索引。需要在Where子句出现的字段,最好建立索引;需要排序的字段,也应该这样做。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
查询语句的优化是SQL效率优化的一个方式,可以通过优化sql语句来尽量使用已有的索引,避免全表扫描,从而提高查询效率。最近在对项目中的一些sql进行优化,总结整
Excel是我们常用的电子表格软件。如何把Excel用得更有效率?下面向您介绍几个快速使用Excel的技巧。 1、快速启动Excel 若您日常工作中要经常使
Excel是我们常用的电子表格软件。如何把Excel用得更有效率?下面向您介绍几个快速使用Excel的技巧。 1、快速启动Excel 若您日常工作中要经常使
格式良好的SQL并不会比乱七八糟的SQL运行效果更好。数据库其实不怎么关心SQL语句中你把逗号放到了字段名的前面还是后面。为了你自己思路清楚,应该做一个有效率的
asp执行带参数的sql语句,需要向sql语句添加参数,可以有效屏蔽SQL注入,源代码如下:复制代码代码如下:varconn=Server.CreateObje