ASP抽取資料的執行效率

來源:互聯網
上載者:User

通常從資料庫中抽取資料記錄,需要使用到SQL語句,查詢獲得相關記錄集,然後從屬記錄集中選擇相關欄位、相關記錄行進行顯示。

那麼在抽取到顯示的一系列列過程中,如果注意如下幾個要點,則令抽取資料的執行效率大大增加。

1,明確抽取的欄位名稱

正常的SQL語句抽取記錄是:
Select * from [data_table]
即從資料表data_table中抽取所有欄位的記錄值。

select * 語句的執行效率是很低的,因為在執行這樣的語句的時候其實執行了兩次查詢,在執行select語句前,首先必須查詢系統資料表來確定名稱和資料類型。

所以盡量最少使用select *語句,而使用明確的欄位名稱,如:
Select cn_name,cn_pwd from [data_table]
2,使用rs(0)比rs(filename)更快
Set rs=conn.Execute("Select cn_name,cn_pwd from [data_table]")
記錄集rs()裡面可以寫欄位名(字元型),或者欄位索引號(數字),它代表欄位列表中第幾個欄位。比如:
rs(0)就表示rs("cn_name")
rs(1)表示rs("cn_pwd")

事實已證明了用索引數(index number)訪問記錄集元素要比用欄位名稱(field name)快出幾倍。按字串查詢要比按整數查詢花去更多的時間和系統資源。

3,使用記錄集rs值前,將其賦值給變數
<%
Set rs=conn.Execute("Select cn_name,cn_pwd from [data_table] where cn_id=1")
if not rs.eof then
do while not rs.eof
cn_name = rs(0) ' 把rs值賦給變數
cn_pwd = rs(1)
' ... 使用變數處理工作
rs.movenext
loop
end if
rs.close
Set rs = Nothing
%>

但在SQL語句或預存程序中改變了select列表的欄位顯示順序,那麼在賦值和處理時就要注意了。
4,當然,使用GetRows()又是另外一回事了

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.