如何提高千万条数据分页查询效率

 我来答
抹不掉的痕迹80
2016-11-06 · 超过29用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:7.8万
展开全部
SQL语句如下:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

WITH OrderedResults AS
( SELECT R.MyUserID,R.Pername,R.Sex,R.Birthday,workedcomnumber,workedyear,workedmonth, R.Hometown,R.Location,R.updateDate,R.photoflag,[PhotoName], R.selfdescription,R.ResumeStatus,R.checkflag, isnull(R.joblocation1,'') as joblocation1,isnull(R.joblocation2,'') as joblocation2,isnull(R.joblocation3,'') as joblocation3, R.JobFunction1,R.JobFunction2,R.JobFunction3, isnull(R.JobSeeking1,'') as JobSeeking1,isnull(R.JobSeeking2,'') as JobSeeking2,isnull(R.JobSeeking3,'') as JobSeeking3, [dbo].[F_GetMyWorkExp](R.MyUserID) as workExp, [dbo].[F_GetMyEducation](R.MyUserID) as schools, ROW_NUMBER() OVER (order by ResID) as RowNumber
FROM wuerbajob.dbo.My_Resume R
WHERE 1=1  and checkflag=2
and (ResumeStatus=0 or ResumeStatus=2)
and R.updatedate between '2002-01-01 00:00' and  '2012-08-28 17:02' )

select * from OrderedResults orderR left outer join weibo.dbo.v_getAllUserLabels userLabel on orderR.myuserid=userLabel.userid where  orderR.RowNumber between 1 and 10000

测试结果:
单线程环境下 花费时间3分钟,去掉left outer join weibo.dbo.v_getAllUserLabels,效率差不多

已做如下操作:
表my_resume 已根据resID分为10个分区表(测试表明加了分区,只快了1分钟左右)
resID为索引
壹寰(深圳)科技文化有限公司
2021-03-27 广告
不同公司提供的方案也不一样。以上内容如果还觉得不够全面,也可以沟通下壹寰(深圳)科技文化有限公司。91数据恢复是壹寰(深圳)科技文化有限公司旗下专业数据恢复品牌,91数据恢复专注于勒索病毒数据恢复、勒索病毒数据修复、数据库修复、数据库解密恢... 点击进入详情页
本回答由壹寰(深圳)科技文化有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式