Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从C#中的代码中获取SQL查询统计信息?_C#_Visual Studio_Tsql_Sqlcommand - Fatal编程技术网

如何从C#中的代码中获取SQL查询统计信息?

如何从C#中的代码中获取SQL查询统计信息?,c#,visual-studio,tsql,sqlcommand,C#,Visual Studio,Tsql,Sqlcommand,我正在使用SqlCommandclass从Visual Studio 2015运行查询。我需要知道运行查询所用的时间以及结果集的大小。我知道我可以通过SQL Server Management Studio获取这些信息,但我不知道如何从Visual Studio获取这些信息。首先,进入Visual Studio中的SQL Server对象资源管理器(视图>SQL Server对象资源管理器)。然后选择查询您选择的数据库。右键单击>新建查询。在运行查询之前,请选择页面顶部附近的“包含实际执行计划”

我正在使用
SqlCommand
class从Visual Studio 2015运行查询。我需要知道运行查询所用的时间以及结果集的大小。我知道我可以通过SQL Server Management Studio获取这些信息,但我不知道如何从Visual Studio获取这些信息。

首先,进入Visual Studio中的SQL Server对象资源管理器(视图>SQL Server对象资源管理器)。然后选择查询您选择的数据库。右键单击>新建查询。在运行查询之前,请选择页面顶部附近的“包含实际执行计划”:

然后可以运行查询,在页面底部,您将看到多个选项卡,如结果、消息和执行计划。选择ExecutionPlan,您将能够以百分比的形式查看查询的成本,但将鼠标悬停在成本或聚集索引扫描部分上可以找到更多信息


我希望这有帮助

首先,进入Visual Studio中的SQL Server对象资源管理器(视图>SQL Server对象资源管理器)。然后选择查询您选择的数据库。右键单击>新建查询。在运行查询之前,请选择页面顶部附近的“包含实际执行计划”:

然后可以运行查询,在页面底部,您将看到多个选项卡,如结果、消息和执行计划。选择ExecutionPlan,您将能够以百分比的形式查看查询的成本,但将鼠标悬停在成本或聚集索引扫描部分上可以找到更多信息


我希望这有帮助

您可以使用秒表来计时:

StopWatch sw = new StopWatch();
sw.Start();
// Run query here
sw.Stop();

// Check sw.ElapsedMilliseconds or some other property you prefer

要获得结果集的大小,您可以计算datareader.Read()或其他替代方法的迭代次数。

您可以使用秒表来计时:

StopWatch sw = new StopWatch();
sw.Start();
// Run query here
sw.Stop();

// Check sw.ElapsedMilliseconds or some other property you prefer

要获得结果集的大小,可以计算datareader.Read()或其他替代方法的迭代次数。

可以使用SMO。请尝试下面的代码

Server myServer = new Server("ServerName");
myServer.ConnectionContext.LoginSecure = true;
myServer.ConnectionContext.Connect();

Database db = myServer.Databases["dbName"];

Table myTable = db.Tables["TableName", "SchemaName"];

Statistic stat = default(Statistic);
stat = new Statistic(myTable, "StatisticName");
StatisticColumn statcol = default(StatisticColumn);
statcol = new StatisticColumn(stat, "FieldName");
stat.StatisticColumns.Add(statcol);
stat.Refresh();
var x = stat.LastUpdated;
您还可以找到其他属性。您还可以更新统计信息,甚至创建统计信息等

要查找表的所有统计信息,请使用以下代码,这样您就可以遍历所有统计信息并获取每个统计信息的信息:

var allStat = myTable.Statistics;
有关更多信息,请查看以下链接:


您可以使用SMO。请尝试下面的代码

Server myServer = new Server("ServerName");
myServer.ConnectionContext.LoginSecure = true;
myServer.ConnectionContext.Connect();

Database db = myServer.Databases["dbName"];

Table myTable = db.Tables["TableName", "SchemaName"];

Statistic stat = default(Statistic);
stat = new Statistic(myTable, "StatisticName");
StatisticColumn statcol = default(StatisticColumn);
statcol = new StatisticColumn(stat, "FieldName");
stat.StatisticColumns.Add(statcol);
stat.Refresh();
var x = stat.LastUpdated;
您还可以找到其他属性。您还可以更新统计信息,甚至创建统计信息等

要查找表的所有统计信息,请使用以下代码,这样您就可以遍历所有统计信息并获取每个统计信息的信息:

var allStat = myTable.Statistics;
有关更多信息,请查看以下链接:


可能重复您是否尝试处理连接上的事件信息?可能重复您是否尝试处理连接上的事件信息?