我想分析一个查询列表以找出报告与某些表/字段的依赖关系,以尝试记录数据结构重构的影响。
有没有办法(可能利用 SQL Server 查询解析器)根据查询字符串输入找出正在使用的表/字段?
我想分析一个查询列表以找出报告与某些表/字段的依赖关系,以尝试记录数据结构重构的影响。
有没有办法(可能利用 SQL Server 查询解析器)根据查询字符串输入找出正在使用的表/字段?
如果您为查询创建视图或存储过程,则sys.dm_sql_referenced_entities将列出对其他数据库对象的依赖关系。
您可以查看查询的执行计划,然后对该输出进行后处理以接近您要查找的内容。
http://msdn.microsoft.com/en-us/library/ms187735(v=sql.105).aspx
是 SHOWPLAN_ALL T-SQL 命令的起点。
您可以发出SET SHOWPLAN_XML ON
并运行查询(在另一批中)。
这将返回您XML
预期的执行计划。
您可以搜索//ColumnReference
包含@Database
、@Schema
和@Table
的内容@Column
。
但是请注意,优化器可能会决定扩展视图(如果您正在使用它们),优化一些表(如果它决定不需要它们)等。这也可能有助于重构。
您也可以运行SET STATISTICS IO ON
并读取输出。它将显示引擎使用的表上的实际 I/O。