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