本人用sql server 和asp写了一个简单的留言本,在不断的尝试中发现,分页显示留言的时候,不同的执行方式,时间上的一些差别。 本站收录这篇文章ASP调用MSSQL存储过程进行分页的两种方式及效率速度比较,详细解说文章中相关MSSQL 存储过程分页效率速度技术与知识,欢迎能给大家一些在这方面的支持和帮助!以下は詳細です。
beerfroth(原作)
本人用sql server 和asp写了一个简单的留言本,在不断的尝试中发现,分页显示留言的时候,不同的执行方式,时间上的一些差别。
比較して、いくつかの方法の時間比較を見てみましょう。
まず、ストレージ手順のページングを使用して、この状況は次の2つの方法に分かれています。
最初の、コマンドオブジェクトを使用して、次のように:
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.oopen sql、conn、1,1
rs.Pagesize = 150 '各ページに表示されるメッセージの数、
合計= rs.rcordcount
myPagesize = rs.Pagesize
rs.absolutepage =ページ
为了更加明显地显示出速度,我把每页显示的留言数量加大到150(事实上当然不会设置这么大的数值啦)。至于我机器的配置,就省略不说了,因为主要是速度对比。
发现,执行的时候时间分别如下:
最初:0.1953125秒から0.2109375秒の間で、平均値は約0.20秒です
2番目:0.1716875秒から0.1857秒の間で安定して、平均値は約0.177秒です
3番目のタイプ:0.4375秒から0.4632秒の間、平均値は約0.45秒です
ただし、読み取られたレコードの数が20の場合、結果は次のとおりです。
発見、実行の時間が次のとおりです。
最初:.0390625秒と.0546875秒の間で、平均値は約0.045秒でした
2番目:0.046875秒と.0546875秒の間で、平均値は約0.050秒です
第三种:稳定于.09375 秒到0.1015625 秒之间,平均值大概是:0.97秒
在这样看来,似乎conn.execute和command.execute这两种方式似乎差别并不大,
以前の呼び出し方法はより単純なようです。
同時に、ページングのストレージ速度は、レコードセットのページング速度よりもはるかに高速であることがここで見ることができます。
PS:弟は最初の記事を投稿しました。ああ、良い記事を見つけるのは本当に困難でした。将来私は一生懸命働きます。今回はみんながうまく書かないことを願っています。对了,我还想问问各位大侠conn.execute和command.execute这两种方式中那种更加好的,呵呵,因为我在网上找到的都是后者这种方式执行存储过程的。なぜ前面ほど単純である必要がないのかわかりません。
ASP调用MSSQL存储过程进行分页的两种方式及效率速度比较文章就讲到这里,欢迎浏览本站的其它内容,点击这里返回首页