马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
写软件都是想的时间比写的时间要长的.如果反过来了就得看看是什么原因了.另外大家可以回去问问公司里的小MM.(一般企业里,跟你们交付软件接触得最多的是她们)实行办法1、只管利用庞大的SQL来取代复杂的一堆SQL.
一样的事件,一个庞大的SQL完成的效力高于一堆复杂SQL完成的效力。有多个查询时,要擅长利用JOIN。
[code]
oRs=oConn.Execute("SELECT*FROMBooks")
whilenotoRs.Eof
strSQL="SELECT*FROMAuthorsWHEREAuthorID="&oRs("AuthorID")oRs2=oConn.Execute(strSQL)
Response.writeoRs("Title")&">>"&oRs2("Name")&"<br>"
oRs.MoveNext()
wend
</DIVde>
要比上面的代码慢:
strSQL="SELECTBooks.Title,Authors.NameFROMBooksJOINAuthorsONAuthors.AuthorID=Books.AuthorID"
oRs=oConn.Execute(strSQL)
whilenotoRs.Eof
Response.writeoRs("Title")&">>"&oRs("Name")&"<br>"
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个纪录,从而使这个数据库很年夜,年夜的数据库一定较慢。</p>ASP在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQLServer,而ASP+COM+SQLServer实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQLServer都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。 |