【发布时间】:2017-05-24 15:58:11
【问题描述】:
用户有时在程序中启动一个非常大的查询以从 DB(在本例中为 SQLserver)中提取数据。
String SQL_SELECT = " SELECT * FROM BIG_TABLE";
SqlConnection conn = null;
SqlDataReader aReader = null;
conn = getConnessione();
SqlCommand aCommand = new SqlCommand(SQL_SELECT, conn);
conn.Open();
aReader = aCommand.ExecuteReader();
可以知道命令前的预计时间
aReader = aCommand.ExecuteReader();
是否有命令或最佳实践?
【问题讨论】:
-
我要在这里硬着头皮说不
-
也许this post可以帮助你。
-
@diiN__________ 这需要运行查询
-
是的,你可以估计。问题是,根据你想估计什么?没有 API 可以为您提供“需要 X 秒”的估计。如果你告诉我查询是
SELECT * FROM Table,有多少行,行有多大,你的网络速度,你的服务器的内存,你的存储速度和你的应用程序的处理时间,我可以估计......但这可能是不是你要找的。典型的方法是提供适当的超时时间(默认为 30 秒),然后根据需要进行优化。 -
哦,当然(差点忘了!)运行查询和测量。您可以在 production 上执行查询之前执行此操作——只需在之前对其进行测试。如果在测试机器上需要 3 个小时,那么生产可能会更快(取决于您的硬件),但可以肯定地说这不是一个快速查询。
标签: c# .net sql-server visual-studio tsql