gpt4 book ai didi

c# - 如何使用 SqlCommand 在查询中获取一些结果

转载 作者:行者123 更新时间:2023-11-30 22:57:48 24 4
gpt4 key购买 nike

我正在使用 SqlCommand 执行查询,但是这个查询一般来说非常慢 - 大约需要 50 秒才能完成 - 无论如何我可以读取结果,因为它们一个接一个地出现?

using (SqlConnection connection = new SqlConnection(ExportMetrics.CreateConnectionString()))
{
SqlCommand command = new SqlCommand(sqlQuery, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();

try
{
while (reader.Read())
{
//Read results
}
catch (Exception e)
{
//Exception
}
finally
{
reader.Close();
}
}
}

最佳答案

“当它们一个接一个地出现时”读取结果是 SqlDataReader 已经做的事情。

这是否有帮助取决于查询。使用 GROUP BY+聚合函数或 ORDER BY1 子句的查询通常必须在服务器内存中具体化整个结果集,然后才能开始返回结果。其他语言结构也可能需要这样做。没有这些语言特性的查询可能能够更快地开始返回结果,这取决于执行计划。

但是 50 秒在 SQL 的世界里是一个很长的时间。几乎总有一种方法可以重写查询或调整索引以运行得更快。当然,除非我们可以看到查询、表结构和索引都列为问题的一部分,否则我们对此无能为力。


1 如果 ORDER BY 子句与 JOIN 相关的主键或其他重要索引相匹配,这样请求的顺序与用于查询工作集的顺序相匹配,并且这可以在数学上显示,您 可能仍然没问题。

关于c# - 如何使用 SqlCommand 在查询中获取一些结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53398279/

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