查询分页-----强势top

查询分页:语句1性能提升10倍多,仅仅是由于多了个topkeyword,非常不理解啊!!!!

1.查询时间1s内,r_object_id主键

select top 100 * from ( 
select all  doc.r_object_id "objid",doc.name,doc.number, doc.cuid, doc.r_creation_date, doc.security, doc.bordline, doc.twicedline, doc.dline, doc.keynum, doc.creator_name, 
doc.security_name, doc.dline_name, doc.pid, doc.modifier_name, doc.tblcount, doc.r_modify_date, doc.prjdefid, doc.voldefid, doc.tabledefid,  doc.relation_id, 
doc.r_object_type "r_object_type", doc.bcode "bcode", doc.copycount, doc.securityapply, doc.pgholtime, doc.done, doc.disciplineid, doc.disciplineid_name, 
tabdef.fieldp2830b1886150468j, tabdef.fieldb7727l1886150454q, tabdef.fields5243t504621622q, tabdef.fieldt3385x504621623d, tabdef.fieldf3763y504621609s, tabdef.fieldk1536t504621614n, 
tabdef.fieldr1297k504621621z, tabdef.fieldb5089j1350775945q, tabdef.fieldk5874q1350775954t, tabdef.fieldb2206h1350775945a, tabdef.fieldf4308a1350775949v, tabdef.recid, 
CAST(ROW_NUMBER() OVER(ORDER BY doc.r_object_id asc ) as int) as dm_rnum 
from ps_fld_doctree_document_sp  doc 
LEFT OUTER JOIN tabledef00054a9a80001e7d_sp  tabdef ON (doc.r_object_id=tabdef.recid) where (doc.keynum like N'aaaaaaaaaaaaaaa%' and  ((doc.isdel=0) or (doc.isdel=1)) ) 
and (doc.i_has_folder = 1 and doc.i_is_deleted = 0) 
) dm_inline_view_1 
where dm_rnum >= 101   AND dm_rnum <= 200 order by 1 asc


2.查询时间10s内

select * from ( 
select all  doc.r_object_id "objid",doc.name,doc.number, doc.cuid, doc.r_creation_date, doc.security, doc.bordline, doc.twicedline, doc.dline, doc.keynum, doc.creator_name, 
doc.security_name, doc.dline_name, doc.pid, doc.modifier_name, doc.tblcount, doc.r_modify_date, doc.prjdefid, doc.voldefid, doc.tabledefid,  doc.relation_id, 
doc.r_object_type "r_object_type", doc.bcode "bcode", doc.copycount, doc.securityapply, doc.pgholtime, doc.done, doc.disciplineid, doc.disciplineid_name, 
tabdef.fieldp2830b1886150468j, tabdef.fieldb7727l1886150454q, tabdef.fields5243t504621622q, tabdef.fieldt3385x504621623d, tabdef.fieldf3763y504621609s, tabdef.fieldk1536t504621614n, 
tabdef.fieldr1297k504621621z, tabdef.fieldb5089j1350775945q, tabdef.fieldk5874q1350775954t, tabdef.fieldb2206h1350775945a, tabdef.fieldf4308a1350775949v, tabdef.recid, 
CAST(ROW_NUMBER() OVER(ORDER BY doc.r_object_id asc ) as int) as dm_rnum 
from ps_fld_doctree_document_sp  doc 
LEFT OUTER JOIN tabledef00054a9a80001e7d_sp  tabdef ON (doc.r_object_id=tabdef.recid) where (doc.keynum like N'aaaaaaaaaaaaaaa%' and  ((doc.isdel=0) or (doc.isdel=1)) ) 
and (doc.i_has_folder = 1 and doc.i_is_deleted = 0) 
) dm_inline_view_1 
where dm_rnum >= 101   AND dm_rnum <= 200 order by 1 asc


posted @ 2017-04-18 12:18  zhchoutai  阅读(175)  评论(0编辑  收藏  举报