2

我想分析一个查询列表以找出报告与某些表/字段的依赖关系,以尝试记录数据结构重构的影响。

有没有办法(可能利用 SQL Server 查询解析器)根据查询字符串输入找出正在使用的表/字段?

4

3 回答 3

1

如果您为查询创建视图或存储过程,则sys.dm_sql_referenced_entities将列出对其他数据库对象的依赖关系。

于 2013-07-22T18:31:56.523 回答
1

您可以查看查询的执行计划,然后对该输出进行后处理以接近您要查找的内容。

http://msdn.microsoft.com/en-us/library/ms187735(v=sql.105).aspx

是 SHOWPLAN_ALL T-SQL 命令的起点。

于 2012-11-02T10:05:07.530 回答
1

您可以发出SET SHOWPLAN_XML ON并运行查询(在另一批中)。

这将返回您XML预期的执行计划。

您可以搜索//ColumnReference包含@Database@Schema@Table的内容@Column

但是请注意,优化器可能会决定扩展视图(如果您正在使用它们),优化一些表(如果它决定不需要它们)等。这也可能有助于重构。

您也可以运行SET STATISTICS IO ON并读取输出。它将显示引擎使用的表上的实际 I/O。

于 2012-11-02T09:59:48.807 回答