【问题标题】:Rows generation without loops没有循环的行生成
【发布时间】:2019-03-24 15:55:35
【问题描述】:

Microsoft 展示了一个非常有趣的演示 (https://www.youtube.com/watch?v=oEpJB87Xg9U),他们为一个空表生成了 500 万行

正如我所见,没有循环或对具有 500 万行的其他表的引用。我希望这里有 10 行。我在这里错过了什么?

【问题讨论】:

    标签: sql-server common-table-expression data-generation


    【解决方案1】:

    FROM 子句使用旧式连接语法,并指定了 9 次 a CTE。这实际上是 10 行 CTE 的 CROSS JOIN 笛卡尔积,因此生成了 10*10*10*10*10*10*10*10*10 行,但由于 TOP 子句仅返回 5000000。

    请参阅this answer,了解使用更新的CROSS JOIN 语法的这种技术的示例,它在我的盒子上大约 6 分钟内生成了 20 亿行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-07
      • 1970-01-01
      • 2014-10-21
      • 2014-11-13
      • 2012-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多