如何解决oracle中distinct和grouping以及join和subquery之间的性能
我有两个例子
-
我有一个简单的表格,列中的所有值都相同。假设第一个列中的 2 列是第二个 'xyz' 中的值 'abc',这对夫妇在几行中。 如果我使用,什么会更快,那里会发生什么
a) 从 tab group by column2 中选择 max(column1),column2;
b) 从选项卡中选择不同的 column1、column2;
-
我有一个包含多列的大表,但在一列中有数据作为 yyyyMM 格式的字符串。在表中,一年/月有成千上万行,其他列中有不同的值。 日期列上有一个索引。所以如果表有很多年,如果我只选择上个月的例子,优化器就有机会使用该索引。但我需要动态改变过去。假设我想要自 201701 年以来的所有行,可能优化器选择全表扫描,这取决于我的问题,下面这两种方法之间是否有任何性能优势?
a) 从选项卡中选择 date,column1..n,其中 date >= (select to_char(add_months(sysdate,-50),'yyyyMM') from dual)
b) with ds as (select to_char(add_months(sysdate,-level),'yyyyMM') as dat from dual 按级别连接
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。