探討一下rs(0)與rs("fieldname")的執行效率
發表時間:2024-06-22 來源:明輝站整理相關軟件相關文章人氣:
[摘要]事實已證明了用索引數(index number)訪問記錄集元素要比用字段名稱(field name)快出幾倍.按字符串查詢要比按整數查詢花去更多的時間和系統資源.因此,在遍歷數據庫時應注意下面的兩個問題: 1.盡量最少使用select * 這樣的語句 在遍歷某表里少量的字段時,se...
事實已證明了用索引數(index number)訪問記錄集元素要比用字段名稱(field name)快出幾倍.按字符串查詢要比按整數查詢花去更多的時間和系統資源.
因此,在遍歷數據庫時應注意下面的兩個問題:
1.盡量最少使用select * 這樣的語句
在遍歷某表里少量的字段時,select * 語句的執行效率是很低的,因為在執行這樣的語句的時候其實執行了兩次查詢,在執行select語句前,首先必須查詢系統表來確定名稱和數據類型。
2.在使用記錄集rs值前,應該把它賦值給本地變量.
這尤其適用于操作Text/Memo字段.
我發現在"read mode"下調用本地變量比從記錄集中從新調用rs值要略快,特別是在多次recall recordset時,效果會更明顯.
下面來看一個ASP的例子:
<%
' 創建數據庫連接.
set rs = conn.execute("exec sp_getRecords")
if not rs.eof then
do while not rs.eof
id = rs(0) ' 把rs值賦給本地變量
fname = rs(1)
lname = rs(2)
' ... 使用本地變量處理工作
rs.movenext
loop
end if
' ... 釋放變量,結束連接.
%>
最后要注意:如果在SQL語句或存儲過程中改變了select列表的字段順序,那么在賦值時要特別注意.