【问题标题】:Does Oracle use Intermediate Resultsets like SQL Server or Sybase?Oracle 是否使用 SQL Server 或 Sybase 等中间结果集?
【发布时间】:2013-04-07 21:18:24
【问题描述】:
选择姓氏、州、计数(*)
从测试
所在州('NY'、'NJ'、'CA')
按州、姓氏分组
有 COUNT(*)>1;

MS SQL server 和 Sybase 中类似查询,内部处理如下,

在应用子句并制作结果集(内部表)的测试表上,然后应用 group by 并制作另一个内部结果集,最后应用 Have 并将最终结果集显示给用户。

Oracle 是否也使用结果集方法,还是有所不同?

顺便说一句,我尝试用谷歌搜索,检查了 Oracle 文档,找不到我正在寻找的细节。 Sybase 文档对这些事情非常清楚。

【问题讨论】:

  • 您在寻找查询计划吗?如果是这样,这里是documentation
  • 我知道如何获取查询计划。我只是在寻找简单的解释,如果 oracle 使用结果集(中间表)来获得最终结果集还是使用其他方法。
  • 我猜对我来说有些新东西...您能在 Sybase 文档中指导我您正在寻找什么吗?
  • 查看第 244 页。虽然这是 Sybase 9,但这是我使用最多的一个。

标签: oracle


【解决方案1】:

在这种情况下,您可以依靠 Oracle 来实现结果集。可以肯定的是,检查计划。我打赌你会在顶部找到一个哈希组,然后是一个过滤操作。

您的情况可能有一些罕见的变体,可以通过遍历合适的索引来解决,以避免中间结果集,但我从未在执行计划中遇到过。

【讨论】:

    猜你喜欢
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多