分页查询超时问题(1)
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">晚上割接了1500万联系人账号到EI_LinkmanUserInfos表,第二天程序报告下面的查询语句超时</span>
;WITH a AS (
SELECT ROW_NUMBER() OVER(ORDER BY l.LinkmanId) AS LinkmanCount,
l.LinkmanId,l.Name,l.LinkmanType
,l.Mobile,l.Email,l.DepartmentId,d.Name AS DepartmentName,l.Position,l.Code AS VnetCode
FROM dbo.EI_Linkmen l LEFT JOIN dbo.EI_Departments d ON l.DepartmentId=d.DepartmentId left join (SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY LinkmanId ORDER BY LinkmanUserInfoId) AS rn,* FROM dbo.EI_LinkmanUserInfos ) uix WHERE uix.rn=1) ui on l.LinkmanId=ui.linkmanid WHERE l.DataStatus = 0 AND l.EnterpriseId=916627 ) SELECT (SELECT COUNT(1) FROM a ) AS TotalCount,LinkmanId,Name,Mobile,Email,DepartmentId,DepartmentName,LinkmanTypeas [Type],Position,OpenContent='',VnetCode
FROM a WHERE LinkmanCount BETWEEN 1 AND 10
分析:
1、查询中左连接了EI_LinkmanUserInfos表,但是查询的结果列表中没有包含EI_LinkmanUserInfos表的任何字段。
2、where条件中只包含对表EI_LinkMen表的过虑l.DataStatus = 0 AND l.EnterpriseId=916627,并且EI_Departments.departmentID是主键,这种情况下应该先对EI_LinkMen分页,再去关联EI_Departments。
SQL语句改成先分页,再查询关联信息:
;with a as(
select ROW_NUMBER() OVER(ORDER BY l.LinkmanId) AS LinkmanCount, l.LinkmanId,l.Name,l.LinkmanType,l.Mobile,l.Email,l.DepartmentId,l.Position,l.Code AS VnetCode
from ei_linkmen l
where DataStatus=0 and EnterpriseId=916627
)
select (SELECT COUNT(1) FROM a ) AS TotalCount,l.LinkmanId,l.Name,Mobile,Email,l.DepartmentId,d.Name DepartmentName,LinkmanType,x.AccountName,x.AccountECcode
from a lLEFT JOIN dbo.EI_Departments d ON l.DepartmentId=d.DepartmentId outer apply(select top 1 * from EI_LinkmanUserInfos where LinkmanId=l.LinkmanId order by LinkmanUserInfoId) x
where LinkmanCount BETWEEN 1 AND 10
分页查询超时问题(1)相关推荐
- mysql分片库分页查询_mysql数据库分页查询优化
当数据很多需要进行分页查询时:需要先查出第一条数据的id然后根据id查询大于id的数据 limt 一页的数据量 1. 直接用limit start, count分页语句, 也是我程序中用的方法: ...
- mysql 大分页查询优化_Mysql骚操作:优化大分页查询
背景 系统结构如上图.经过排查是因为系统B拉取数据时间太长导致的推送超时. 系统B拉取数据的方法是根据_tiemstamp(数据操作时间)分页查询系统A的接口,即: 1SELECT 字段名2FROM ...
- mysql为何500w拆表_【mysql】MySQL 单表500W+数据,查询超时,如何优化呢?
1.问题描述: MySQL 数据库,单表 `im_data_record`,查询超时(30s) 表结构如下图: 表索引如下图: 查询语句如下: SELECT `record_global_id`, ` ...
- mysql中如何分页查询_MySQL_mysql分页原理和高效率的mysql分页查询语句,以前我在mysql中分页都是用的 l - phpStudy...
mysql分页原理和高效率的mysql分页查询语句 以前我在mysql中分页都是用的 limit 100000,20这样的方式,我相信你也是吧,但是要提高效率,让分页的代码效率更高一些,更快一些,那我 ...
- LDAP用户登录认证校验 及 LDAP分页查询
某天,老大说,给我一个需求,支持LDAP用户登录,一听,哇,这是啥 啥 啥.经过刻苦努力Ctrl+C/V,终于搞出来了,上代码! 了解一下,LDAP(Lightweight Directory Acc ...
- mybatis分页插件--列表切割成分页查询
在使用mybatis列表查询时存在大数据量内存溢出的风险,这里实现了在不改变代码逻辑的情况下将查询做分页切割.点击下载资源 由定时任务跑批的数据往往使用列表直接一次性查询出来,在程序刚上线的时候可能没 ...
- [JAVA EE] JPA 查询用法:自定义查询,分页查询
项目已上传:https://codechina.csdn.net/qq_36286039/javaee 自定义查询 问题:内置的crud功能不满足需求时如何添加自定义查询? 几种自定义查询方法 方法命 ...
- jpa分页查询_spring data jpa 居然提供了这么多查询方式!
spring data jpa提供了多种查询方式,如下: 方法名称查询 继承Repository接口 测试代码 方法名称中支持的关键字(官方文档提供) 使用JPA命名查询 在User实体中定义jpql ...
- Oracle中分页查询语句
Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,如果您对此方面感兴趣的话,不妨一看. Oracle分页查询语句基本上可以按照本文给出的格式来进行套用. ...
最新文章
- .net_ckeditor+ckfinder的图片上传配置
- 有答案了!一张图告诉你到底学Python还是Java!你咋看?
- 服务器反馈为空,反馈服务器端error的处理
- Python架构(一)
- 按键改变元素背景颜色 链式编程的原理 评分案例 each方法的使用
- Teams Meeting App的 task 弹出框
- Android开发之动画(转)
- 最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁
- 线程池异步线程中再次获取线程池资源的问题
- qt界面嵌入web_使用Qt WebAssembly而不是JavaScript创建Web用户界面
- Ubuntu-创建wifi热点-Android能连接(2)
- 99se.PCB技术大全
- 聚焦基因组学研究,JMP参加第七届国际统计遗传学与基因组学高峰论坛
- 叮,你有一份光线追踪技术合集待查收 | IMG2020
- 使用知用电流探头时如何设置示波器参数
- 建筑力学与结构【3】
- 男人四十以后适合在哪个行业创业?为什么?
- 2021年中国报刊出版行业经营现状及A股上市企业对比分析[图]
- 安卓IMS 原理解析(二、IMS之InputReader事件获取)
- java定义一个方法计算三角形,长方形,圆形面积和周长
热门文章
- update两个表中的同一字段的数据_用Python实现多个工作簿中的数据按列合并到同一个工作表中...
- ac86u原厂固件去广告_苹果发布最新固件IOS12.3.2,估计不修正你的手机
- c语言学习-从键盘输入三个数,按照从小到大(或从大到小)的顺序输出
- 搭建自己的Unity Package
- .net core精彩实例分享 -- 应用配置和数据库访问
- Vue 3 正式发布
- Vue学习笔记(二) —— 组件开发
- 新商标表明华为鸿蒙系统在海外或叫做“Harmony OS”
- vue-router中hash模式、history模式原理
- latex 公式编号_放弃mathtype,word也可以轻松输入公式