|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
大家可以自己去看一看.可以说看得想呕吐.以前有次下了个动网来看.里面连基本内置函数的保护措施(函数没防御性)都没有.难怪经常补这个补那个了.可能现在.NET版会好点吧server|存储历程|分页SQLServer存储历程的分页,这个成绩已会商过几年了,良多伴侣在问我,以是在此宣布一下我的概念
创建表:
CREATETABLE[TestTable](
[ID][int]IDENTITY(1,1)NOTNULL,
[FirstName][nvarchar](100)COLLATEChinese_PRC_CI_ASNULL,
[LastName][nvarchar](100)COLLATEChinese_PRC_CI_ASNULL,
[Country][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,
[Note][nvarchar](2000)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
拔出数据:(2万条,用更多的数据测试会分明一些)
SETIDENTITY_INSERTTestTableON
declare@iint
set@i=1
while@i<=20000
begin
insertintoTestTable([id],FirstName,LastName,Country,Note)values(@i,FirstName_XXX,LastName_XXX,Country_XXX,Note_XXX)
set@i=@i+1
end
SETIDENTITY_INSERTTestTableOFF
-------------------------------------
分页计划一:(使用NotIn和SELECTTOP分页)
语句情势:
SELECTTOP10*
FROMTestTable
WHERE(IDNOTIN
(SELECTTOP20id
FROMTestTable
ORDERBYid))
ORDERBYID
SELECTTOP页巨细*
FROMTestTable
WHERE(IDNOTIN
(SELECTTOP页巨细*页数id
FROM表
ORDERBYid))
ORDERBYID
-------------------------------------
分页计划二:(使用ID年夜于几和SELECTTOP分页)
语句情势:
SELECTTOP10*
FROMTestTable
WHERE(ID>
(SELECTMAX(id)
FROM(SELECTTOP20id
FROMTestTable
ORDERBYid)AST))
ORDERBYID
SELECTTOP页巨细*
FROMTestTable
WHERE(ID>
(SELECTMAX(id)
FROM(SELECTTOP页巨细*页数id
FROM表
ORDERBYid)AST))
ORDERBYID
-------------------------------------
分页计划三:(使用SQL的游标存储历程分页)
createprocedureXiaoZhengGe
@sqlstrnvarchar(4000),--查询字符串
@currentpageint,--第N页
@pagesizeint--每页行数
as
setnocounton
declare@P1int,--P1是游标的id
@rowcountint
execsp_cursoropen@P1output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcountoutput
selectceiling(1.0*@rowcount/@pagesize)as总页数--,@rowcountas总行数,@currentpageas以后页
set@currentpage=(@currentpage-1)*@pagesize+1
execsp_cursorfetch@P1,16,@currentpage,@pagesize
execsp_cursorclose@P1
setnocountoff
别的的计划:假如没有主键,能够用一时表,也能够用计划三做,可是效力会低。
倡议优化的时分,加上主键和索引,查询效力会进步。
经由过程SQL查询剖析器,显现对照:我的结论是:
分页计划二:(使用ID年夜于几和SELECTTOP分页)效力最高,必要拼接SQL语句
分页计划一:(使用NotIn和SELECTTOP分页)效力次之,必要拼接SQL语句
分页计划三:(使用SQL的游标存储历程分页)效力最差,可是最为通用
在实践情形中,要详细剖析。
更多的会商见:
http://community.csdn.net/Expert/topic/3292/3292678.xml?temp=.1621515
</p>在实现ERP等高端的ASP应用时,用户需要提供核心的经营资料,需要ASP商有很高的信用度。楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。 |
|