【问题标题】:SQL automatic query analysis for involved tables/columns涉及表/列的SQL自动查询分析
【发布时间】:2014-07-30 14:38:42
【问题描述】:

假设我们有大量的 SQL 查询需要很长时间才能运行。现在,我们想对数据库进行一些更改并重新执行查询。我们可以重新运行所有内容,但我更喜欢只执行那些受更改影响的查询的解决方案。 您是否知道为每个查询获取相关表/列的任何方法?一个简单的例子是:

(让我们考虑这个表:TABLE1 列:A;B;C)

SELECT C FROM TABLE1 WHERE B>10;

我想知道 TABLE1.B 参与了这个查询。

编辑:数据库是 HSQLDB,通过 JDBC 从 Java 中使用。

【问题讨论】:

  • 您别无选择。您可以使用一些外部解析器解析 sql,或者运行它并让数据库为您解析它,并且可能会保存一些关于每个 SQL 语句的元数据
  • @Randy 使用元数据听起来很有趣,但据我所知,我只能获取返回的列名(而不是 where 语句中的列名)。
  • 检查系统上 EXPLAIN PLAN 或执行计划的结果。应该可以解析。
  • 谢谢,我不知道!

标签: sql code-analysis


【解决方案1】:

您是否使用任何工作台来执行您的 sql 查询?在 Mysql 工作台中,您有查询优化器选项,您可以在该选项下检查哪个查询具有执行器以及对查询结果执行了哪些操作,这肯定会在树形框图中对您有所帮助,您还可以解析查询并在查询优化器中检查您的结果:) 希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    • 2012-08-15
    • 1970-01-01
    • 2022-08-10
    • 2020-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多