程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> ASP中存儲過程調用的兩種方式及比較

ASP中存儲過程調用的兩種方式及比較

編輯:ASP技巧

本人用SQL Server 和ASP寫了一個簡單的留言本,在不斷的嘗試中發現,分頁顯示留言的時候,不同的執行方式,時間上的一些差別。

下面通過對比來看看幾種方式的用時對比。

一,使用存儲過程分頁,這種情況又分為兩種方式:

第一種,使用command對象,如下:

Set Cmd=server.CreateObject("Adodb.Command")
Cmd.ActiveConnection=conn
Cmd.CommandText="ycuu_gb_getmsg"
Cmd.CommandType=4'adCmdStoredPRoc
cmd.prepared=true'
set  param=Cmd.CreateParameter("@ipageNo",adInteger,1,2,Page)
Cmd.Parameters.Append  param
set  param=Cmd.CreateParameter("@iPageSize",adInteger,1,2,PageSizeConst)
Cmd.Parameters.Append  param
set rs=Cmd.execute


第二種,使用connection對象的執行方法直接執行,具體如下:

set rs=conn.execute ("execute ycuu_gb_getmsg "&page&", "&pagesizeConst)


二,不使用存儲過程,直接使用ADODB.RecordSet的功能來分頁,具體代碼如下:

Set rs = Server.CreateObject("ADODB.Recordset")
sql = "Select * FROM Guestbook Order By dateandtime Desc"
rs.open sql,conn,1,1
rs.pagesize = 150'每頁顯示的留言數量,
total = rs.RecordCount
mypagesize = rs.pagesize
rs.absolutepage = page

為了更加明顯地顯示出速度,我把每頁顯示的留言數量加大到150(事實上當然不會設置這麼大的數值啦)。至於我機器的配置,就省略不說了,因為主要是速度對比。

發現,執行的時候時間分別如下:

第一種:穩定於0.1953125 秒到0.2109375 秒之間,平均值大概是:0.20秒

第二種:穩定於0.1716875 秒到0.1857秒之間,平均值大概是:0.177秒

第三種:穩定於0.4375 秒到0.4632秒之間,平均值大概是:0.45秒


但是,當讀取的記錄條數為20的時候,結果如下:
發現,執行的時候時間分別如下:

第一種:穩定於.0390625  秒到.0546875  秒之間,平均值大概是:0.045秒

第二種:穩定於0.046875  秒到.0546875 秒之間,平均值大概是:0.050秒

第三種:穩定於.09375 秒到0.1015625 秒之間,平均值大概是:0.97秒

在這樣看來,似乎conn.execute和command.execute這兩種方式似乎差別並不大,
而前者的調用方式好像更加簡單一點。
同時,在這裡可以看出分頁的存儲過程速度確實比recordset的分頁速度要快很多。

PS:小弟第一次發文,嗚嗚嗚,發現寫一篇好的真難,我以後會努力的了。希望大家包涵我這次寫得不好。對了,我還想問問各位大俠conn.execute和command.execute這兩種方式中那種更加好的,呵呵,因為我在網上找到的都是後者這種方式執行存儲過程的。不知道為什麼不用前面那種那麼簡單的。


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved