【发布时间】: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