以编程方式读取SQL Server的触发器查询计划

时间:2015-12-11 14:25:59

标签: c# sql-server sql-execution-plan

我需要从C#中读取与SQL命令相关的所有查询计划。但是,触发器的查询计划不会在阅读器中返回。我正在使用这样一个简单的代码:

            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandText = "SET SHOWPLAN_XML ON";
            cmd.CommandType = CommandType.Text;
            cmd.ExecuteNonQuery();

            // next method
            SqlCommand cmd = new SqlCommand(commandText, conn);
            cmd.CommandType = CommandType.Text;
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                AnalyzeQueryPlan(reader[0].ToString());
            }
            reader.Close();

但是我错过了触发器的查询计划。如果我在SSMS中处理相同的查询,我可以看到它们。有没有办法如何在C#中读取触发器的查询计划?

1 个答案:

答案 0 :(得分:1)

我无法对此进行测试,但想象一下,您只需要使用reader.NextResult()前进到下一个结果然后进行处理。