|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,ASP拥有应用系统所有权,用户拥有使用权,应用系统集中放在ASP的数据中心中,集中管理,分散使用,以一对多的租赁的形式为众多用户提供有品质保证的应用技术服务,实现规模效益。办法1、只管利用庞大的SQL来取代复杂的一堆SQL.
一样的事件,一个庞大的SQL完成的效力高于一堆复杂SQL完成的效力。有多个查询时,要擅长利用JOIN。
oRs=oConn.Execute("SELECT*FROMBooks")
whilenotoRs.Eof
strSQL="SELECT*FROMAuthorsWHEREAuthorID="&oRs("AuthorID")oRs2=oConn.Execute(strSQL)
Response.writeoRs("Title")&">>"&oRs2("Name")&"
"
oRs.MoveNext()
wend
要比上面的代码慢:
strSQL="SELECTBooks.Title,Authors.NameFROMBooksJOINAuthorsONAuthors.AuthorID=Books.AuthorID"
oRs=oConn.Execute(strSQL)
whilenotoRs.Eof
Response.writeoRs("Title")&">>"&oRs("Name")&"
"
oRs.MoveNext()
wend
办法2、只管制止利用可更新Recordset
oRs=oConn.Execute("SELECT*FROMAuthorsWHEREAuthorID=17",3,3)
oRs("Name")="DarkMan"
oRs.Update()
要比上面的代码慢:
strSQL="UPDATEAuthorsSETName=DarkManWHEREAuthorID=17"
oConn.ExecutestrSQL
办法3、更新数据库时,只管接纳批处理更新
将一切的SQL构成一个年夜的批处置SQL,并一次运转;这比一个一个地更新数据要无效率很多。如许也加倍满意你举行事件处置的必要:
strSQL=""
strSQL=strSQL&"SETXACT_ABORTON
";
strSQL=strSQL&"BEGINTRANSACTION
";
strSQL=strSQL&"INSERTINTOOrders(OrdID,CustID,OrdDat)VALUES(9999,1234,GETDATE())
";
strSQL=strSQL&"INSERTINTOOrderRows(OrdID,OrdRow,Item,Qty)VALUES(9999,01,G4385,5)
";
strSQL=strSQL&"INSERTINTOOrderRows(OrdID,OrdRow,Item,Qty)VALUES(9999,02,G4726,1)
";
strSQL=strSQL&"COMMITTRANSACTION
";
strSQL=strSQL&"SETXACT_ABORTOFF
";
oConn.Execute(strSQL);
个中,SETXACT_ABORTOFF语句告知SQLServer,假如上面的事件处置过程当中,假如碰到毛病,就作废已完成的事件。
办法4、数据库索引
那些将在Where子句中呈现的字段,你应当起首思索创建索引;那些必要排序的字段,也应当在思索之列。
在MSAccess中创建索引的办法:在Access内里选择必要索引的表,点击“计划”,然后设置响应字段的索引.
在MSSQLServer中创建索引的办法:在SQLServer办理器中,选择响应的表,然后“计划表”,点击右键,选择“Properties”,选择“indexes/keys”
办法5、制止使Text字段太年夜
当字符串的值巨细不流动时,用varchar比用char的效果要好些。我已经看到一个例子程序,字段被界说为TEXT(255),可是他的取值常常只要20个字符。这个数据表有50k个纪录,从而使这个数据库很年夜,年夜的数据库一定较慢。
asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。 |
|