找回密码
 立即注册

QQ登录

只需一步,快速开始

小郭哥

注册会员

8

主题

47

帖子

169

积分

注册会员

积分
169

[已处理] 查询过程很慢

小郭哥
注册会员   /  发表于:2021-11-17 17:25  /   查看:2968  /  回复:13
10金币
描述一下问题:1、数据量大约5万行左右,使用视图把各个表中的数据汇总。2、页面中有汇总视图辅助表和显示表(通过公式计算满足查询条件的辅助表中的数据)。
3、如果使用辅助表建立1000行以内的分页导航,查询速度很快,但是在显示表中对应查询出来的数据只有辅助表中显示的1000行数据计算值。如果辅助表不使用分页导航,那么查询的时间就会需要几分钟或者十几分钟才能完成。


求助:有没有什么方法可以让查询的过程更快捷?

13 个回复

正序浏览
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-11-25 17:54:09
14#
小郭哥 发表于 2021-11-25 15:17
主键已经添加,不过还是很卡,比如查询半年的数据,大约20秒左右出来,查询一年的数据半个小时都还在加载中 ...

1.您将同样的视图语句在数据库中执行一下,看看运行时间,如果运行时间也比较长,说明是视图效率的问题,需要从这方面优化;
2.是内建库还是外联库?如果是外联库设计器与数据库是否为同一台机器?如果不是同一台机器可能受网络连接因素的影响,导致外联库数据加载较慢;
3.同样的工程,发布在本机,而不是服务器,看看是否会更快,如果不说明是与服务器的网络连接问题导致的;
4.如果不是以上原因造成,可以运行时按下F12,在网络中查看,是什么进程的加载时间比较长?



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
小郭哥
注册会员   /  发表于:2021-11-25 15:17:58
13#
本帖最后由 小郭哥 于 2021-11-25 15:19 编辑

主键已经添加,不过还是很卡,比如查询半年的数据,大约20秒左右出来,查询一年的数据半个小时都还在加载中,还有没有其他排查方向?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-11-25 11:15:48
12#
小郭哥 发表于 2021-11-25 10:16
谢谢帮助,我自己在研究一下具体怎么修改。

好的,不客气~
回复 使用道具 举报
小郭哥
注册会员   /  发表于:2021-11-25 10:16:33
11#
谢谢帮助,我自己在研究一下具体怎么修改。
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-11-25 10:08:16
10#
小郭哥 发表于 2021-11-24 21:23
是多表格视图过来的,里面会有很多重复数据,必须有的,比如购买同一样东西很多次,就需要录入很多次,不一 ...

原来是这样,不过SQL语句我们也不是很擅长,大佬可以在网上搜索一下相关的教程,或者求助一下身边更擅长这方面的同事哟~
回复 使用道具 举报
小郭哥
注册会员   /  发表于:2021-11-24 21:23:56
9#
是多表格视图过来的,里面会有很多重复数据,必须有的,比如购买同一样东西很多次,就需要录入很多次,不一样的就是录入时自动生成的ID不一样,都是视图里面如果不串起来就没有唯一值,查询就回很卡
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-11-24 18:18:15
8#
本帖最后由 Chelsey.Wang 于 2021-11-25 17:48 编辑
小郭哥 发表于 2021-11-24 15:47
多问一下,怎么把几个字段的合到一起做唯一主键,就是视图命令中如何把ID,编号,日期,供应商,凭证字号, ...


这个SQL语句的话我也不是特别擅长,不过猜测您是不是想像这里写的一样,先拼接字段?
https://blog.csdn.net/Alice_qixin/article/details/91420919
不过有一点疑问,咱们的ID已经是必须且唯一的了,为什么还需要这样做主键呢?
回复 使用道具 举报
小郭哥
注册会员   /  发表于:2021-11-24 15:47:40
7#
多问一下,怎么把几个字段的合到一起做唯一主键,就是视图命令中如何把ID,编号,日期,供应商,凭证字号,经办人,金额全部串起来作为唯一值。
如下:SELECT fy1.ID, fy1.编号,日期,供应商,凭证字号,,经办人,支出 as 金额 FROM 费用1 as fy1 inner join 信息 as xm on xm.编号 = fy1.编号
union all
SELECT fy2.ID, fy2.编号,发生日期 as 日期,null as 供应商,null as 凭证字号,经办人,金额 FROM 费用2 as fy2 inner join 信息 as xm on xm.编号 = fy2.编号
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-11-18 17:58:36
6#
小郭哥 发表于 2021-11-18 16:15
好的 我试试 看看是不是因为主键的原因。需要多花点时间,要在视图里新增一个唯一ID

好的嘞
回复 使用道具 举报
小郭哥
注册会员   /  发表于:2021-11-18 16:15:42
5#
Chelsey.Wang 发表于 2021-11-18 15:58
右键视图,选择“设置主键”就可以设置主键了哈~

好的 我试试 看看是不是因为主键的原因。需要多花点时间,要在视图里新增一个唯一ID
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部