如何避免asp的SQL的執行效率低

2021-06-21 16:54:48 字數 1647 閱讀 7651

一、盡量使用複雜的sql來代替簡單的一堆 sql.nudne.com

同樣的事務,乙個複雜的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

要比下面的**慢:yeivn.com

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,如果下面的事務處理過程中,如果遇到錯誤,就取消已經完成的事務。

sql語句or與union all的執行效率比較

看到一篇文章是講sql語句or與union all的執行效率比較的,以前沒怎麼注意這個問題,感覺文章寫的不錯,轉來一看。sql語句or與union all的執行效率比較 當sql語句有多個or語句時,可以考慮使用union或者union all代替來提高速度。使用or的sql語句往往無法進行優化,導...

優化sql,避免影響sql的執行效率

1.避免使用 select from 表名 只查詢需要的需要的字段 如果表字段較多,用到的字段佔表字段中的少數,使用select 造成資源浪費,影響sql執行效率 但是如果查詢的表字段較少,或者表中80 資料字段都是需要用到的,可以使用select from 表名 2.限制結果集的資料量。查詢時不要...

mysql 如何檢視sql語句執行時間和效率

檢視執行時間 1 show profiles 2 show variables 檢視profiling 是否是on狀態 3 如果是off,則 set profiling 1 4 執行自己的sql語句 5 show profiles 就可以查到sql語句的執行時間 檢視操作了多少行 在sql語句前面加...