gpt4 book ai didi

C# SqlDataReader 执行统计和信息

转载 作者:太空狗 更新时间:2023-10-29 21:25:38 26 4
gpt4 key购买 nike

我正在创建一个自动化的数据库查询执行队列,这实际上意味着我正在创建一个 SQL 查询队列,一个一个地执行。

使用类似于以下的代码执行查询:

using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString))
{
cn.Open();
using (SqlCommand cmd = new SqlCommand("SP", cn))
{
cmd.CommandType = CommandType.StoredProcedure;
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{

}
}
}
}

我想做的是尽可能多地收集有关执行的信息。花了多长时间。有多少行受到影响。

最重要的是,如果它失败了,为什么会失败。

实际上,我可以获得有关我希望能够保存的执行的任何类型的信息。

最佳答案

尝试对执行时间和选择/受影响的行使用内置统计信息:

using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString))
{
cn.Open();
cn.StatisticsEnabled = true;
using (SqlCommand cmd = new SqlCommand("SP", cn))
{
cmd.CommandType = CommandType.StoredProcedure;
try
{
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{

}
}
}
catch (SqlException ex)
{
// Inspect the "ex" exception thrown here
}
}

IDictionary stats = cn.RetrieveStatistics();
long selectRows = (long)stats["SelectRows"];
long executionTime = (long)stats["ExecutionTime"];
}

查看更多信息 MSDN .

我能看到您找出失败原因的唯一方法是检查 SqlException抛出并查看细节。

关于C# SqlDataReader 执行统计和信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2108041/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com