【问题标题】:Multiple EXPLAIN in an Teradata SQL queryTeradata SQL 查询中的多个 EXPLAIN
【发布时间】:2017-03-02 15:39:27
【问题描述】:

假设我们有 3 个视图:A、B 和 C。 A和B可以成功执行。 C不能成功执行。

我想创建一个 SQL 查询来检查它并给出输出:

  • 查看已验证
  • 好的
  • B 好的
  • C 不行

为了确定视图是否可运行,我更喜欢根据以下方式运行它们:EXPLAIN SELECT * FROM View_Name

原因是,例如SELECT COUNT(*) View_Name 太慢了。

我可以使用 SQL 创建预期的输出吗?在那种情况下怎么办? (我知道这可以使用例如 Python 来解决,但我不能将它用作此解决方案的一部分)

【问题讨论】:

  • 您无法使用单个查询获得该结果。这通常在存储过程中完成,您在其中打开具有所有视图名称的游标,然后对每个视图运行 select 1 into declaredvariable from view where 1=0,而继续处理程序会捕获任何 object does not exist 错误。跨度>

标签: sql teradata


【解决方案1】:

Rob Paller 详细描述了如何在存储过程中创建这样的检查。正如 dnoeth 所说,这只能通过存储过程实现。

以下是 Rob 在博客中描述他的考虑和逻辑的地方: https://robpaller.com/archive/2012/09/finding-broken-views-in-teradata/

【讨论】:

    猜你喜欢
    • 2021-09-02
    • 1970-01-01
    • 2018-07-05
    • 2017-04-30
    • 2014-03-02
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 2020-04-25
    相关资源
    最近更新 更多