永洪社区

标题: 普通的添加过滤和传参到SQL数据进行过滤哪个更优? [打印本页]

作者: FintechDog    时间: 2024-9-4 00:20
标题: 普通的添加过滤和传参到SQL数据进行过滤哪个更优?
如题,就有个疑问报表提交后也相当于一个查询,了解到这个查询也是下推到数据库,那和直接传参到SQL数据集进行过滤有什么区别呢?

作者: yhbi老6了    时间: 2024-9-4 00:20
管理系统>监控预警>性能统计>仪表盘sql信息统计。这里面可以查询到你的报告产生的sql。

作者: 阿姆斯特朗炮    时间: 2024-9-4 08:18
我理解的是,过滤是先查一遍,然后根据查询出来的结果进行过滤,传参到sql可以从取数过程中约束住条件,查询的更快
作者: FintechDog    时间: 2024-9-4 15:15
阿姆斯特朗炮 发表于 2024-9-4 08:18
我理解的是,过滤是先查一遍,然后根据查询出来的结果进行过滤,传参到sql可以从取数过程中约束住条件,查 ...

是不是说下推到数据库执行,是指数值的求和、文本的转换之类的,而过滤是不会下推到数据库执行,数据库每次都是查询整个结果集是吧。
作者: 阿姆斯特朗炮    时间: 2024-9-4 15:21
yhdata_PsImcD57 发表于 2024-9-4 15:15
是不是说下推到数据库执行,是指数值的求和、文本的转换之类的,而过滤是不会下推到数据库执行,数据库每 ...

我理解的是,你也可以跟一下日志中的执行语句,看一下是这种执行的效果吗
作者: yhbi老6了    时间: 2024-9-4 15:42
yhdata_PsImcD57 发表于 2024-9-4 15:15
是不是说下推到数据库执行,是指数值的求和、文本的转换之类的,而过滤是不会下推到数据库执行,数据库每 ...

呃,这个很难给你界定,需要看具体的报告+数据集才可以给你调优建议。
1、一般来说的话,如果是直连的数据库并且是结果表,是可以直接下推过滤器到数据库的。(比如平常的sql类型数据库,但是sql过程除外,过程得看数据库引擎的优化能力以及你sql复杂程度。但是直连MongoDB是不下推过滤器的)
2、组合数据集异库,自服务数据集。这种是抽取到yh后,再join等等操作。这种过滤器不会下推
3、yh数据集市,这个不好讨论了,这个研究不来。但是估计yh是会做优化下推的。
我的建议是尽量不要在数据集上做参数,除非万不得已。最好可以用宽表,宽表的性能永远比精确的参数快,并且开发便捷
作者: FintechDog    时间: 2024-9-4 23:19
阿姆斯特朗炮 发表于 2024-9-4 15:21
我理解的是,你也可以跟一下日志中的执行语句,看一下是这种执行的效果吗 ...

还有日志可以分析,感谢分享
作者: FintechDog    时间: 2024-9-4 23:27
yhbi老6了 发表于 2024-9-4 15:42
呃,这个很难给你界定,需要看具体的报告+数据集才可以给你调优建议。
1、一般来说的话,如果是直连的数 ...

大佬,公司用的Oracle,我一般只写SQL查询,意思是只有在《选择表或视图》里选定表而非《自定义SQL语句》才能起到过滤下推吗
作者: yhbi老6了    时间: 2024-9-5 08:05
本帖最后由 yhbi老6了 于 2024-9-5 08:07 编辑
yhdata_PsImcD57 发表于 2024-9-4 23:27
大佬,公司用的Oracle,我一般只写SQL查询,意思是只有在《选择表或视图》里选定表而非《自定义SQL语句》 ...

普通表、物化视图过滤器可以下推。普通物化视图不行,因为普通视图的本质是实时运行的sql代码,下推的过滤器也是在最外层。
作者: FintechDog    时间: 2024-9-7 17:07
yhbi老6了 发表于 2024-9-5 08:05
普通表、物化视图过滤器可以下推。普通物化视图不行,因为普通视图的本质是实时运行的sql代码,下推的过滤 ...

多谢大佬解答




欢迎光临 永洪社区 (https://club.yonghongtech.com/) Powered by Discuz! X3.4