问题标签 [command-timeout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
486 浏览

session - 更改新的和现有的会话命令超时值

我是一个自学成才的 DBA,在制造环境中到处都是喜欢摆弄的工程师。尽管我没有给他们系统管理员或任何明确的额外权限,但我对一些运行“杀手”查询的工程师有疑问,其中一些是 io 密集型的。考虑到连接的默认命令超时时间通常为 30 秒,这通常不会成为问题,但其中一些工程师购买了 SQL Developer,纯粹是为了自动完成功能,当然这默认情况下会将它们与无限的“CommandTimeout”连接起来。

在某种程度上,我想做的是改变一个/或新的连接/会话,并将它们的 CommandTimeout 设置为更合理的值,可能小于 30 秒。对于新连接,我设想它是某种数据库触发器,然后在其上下文中执行命令?现有的连接,可能是系统表中的一些可怕的东西?

0 投票
2 回答
971 浏览

c# - 如何超时“建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误”错误

我正在使用 sql server,有时我的数据库因维护而停机。我有错误处理代码,因此用户看不到错误页面,而是看到了一个漂亮友好的错误消息。我的问题是:当数据库关闭时,页面加载并显示错误消息需要很长时间。我认为它与 timeout 属性有关,但使用

或者

Connect Timeout=5;在 web.config 中connectionString似乎没有帮助,页面加载仍然需要很长时间(大约 40 秒)。有没有办法减少这个时间?

被抛出并记录的异常是

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:TCP Provider,错误:0 - 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。)

0 投票
1 回答
12188 浏览

.net - 为所有新命令对象设置自定义默认命令超时

默认的CommandTimeout值为 30 秒。您可以通过执行以下操作手动更改命令对象实例的值

有没有办法指定不同的默认值,这样所有新的命令对象在创建时都会在您的解决方案中自动具有此值?

0 投票
1 回答
5687 浏览

c# - 如何使用 Session.Query 设置 Nhibernate LINQ 命令超时

有人知道UnderlyingCriteria使用时设置的方法Session.Query吗?

我正在尝试为一个特定查询设置更具限制性的命令超时(或查询超时),并且我试图避免在会话中的连接或其他查询上添加该约束。

我在旧QueryOver功能中发现你可以使用这样的东西

问题是它很旧,有问题,而且有很多功能问题。

使用Query返回一个IQueryable<T>

IQueryable是一个 MS 类,对命令超时等没有明显的访问权限。

另一种选择是以某种方式为所有命令设置会话命令超时,然后恢复为默认值,但我没有看到任何这样做的公共机制,除了预先设置命令超时并保留它,比如如何为 NHibernate LINQ 语句设置超时

0 投票
2 回答
2155 浏览

sql-server - 对活动数据库运行长查询的正确方法是什么?

我们正在使用 SQL Server 2012 EE,但目前没有在 R/O 镜像上运行查询的选项,尽管这是我的长期目标,但我担心在这种情况下我也可能会遇到以下问题,因为镜像会还要更新我正在查询的数据。

我有一个视图,它连接来自两个数据库的多个表,并用于从现有数据开具发票。其中三个表也被正在进行的事务主动更新。运行使用此视图的报告以前不是问题,但现在我们的数据库变得越来越大,我遇到了一些超时问题。首先,查询超时,所以我将命令超时设置为 0 并重新运行查询,该查询将所有 4 个 CPU 100% 挂钩 90 分钟,然后我将其杀死。在此期间,活动交易没有问题。我查看了查询,发现我加入的一个字段没有被索引,因此在该字段上创建了一个索引,重新运行报告,然后在三分钟内完成,所有 CPU 都很忙,但根本没有挂钩。两次查询的数据量相同。我想问题解决了。当然后来,我的老板运行了一个类似的查询,可能有更多数据,但可能不会更多,当他的查询运行时,我们的实时事务开始 100% 超时。在那段时间里,我没有机会看到 CPU 的使用情况。

所以我的问题有两个:

  1. 鉴于我必须使用实时和活动数据库,运行长 R/O 查询以使活动事务仍然可以继续的正确方法是什么?我正在考虑 NO LOCK,但希望有更好的标准做法。

  2. 什么可能导致 sqlserver 以 100% 繁忙的速度将 4 个 CPU 挂起并且不会导致实时事务超时,但是当我的老板运行他的查询时,在我添加索引并且我的查询运行得更好之后,实时更新事务开始超时 100% ?

我知道这不是很多信息。我对 sql 分析和性能监控不是很熟悉,但这种行为似乎很奇怪,我希望最佳实践是正确的解决方法。

0 投票
2 回答
803 浏览

c# - WebMatrix Database.Query 与自定义 CommandTimeout

考虑以下带有 TestTable 和过程的 TestDb

使用 WebMatrix 内置的数据库查询助手时,您可以执行以下操作:

这会导致超时过期错误,因为 WebMatrix Database.Query 帮助程序已修复默认的 30 秒 CommandTimeout。有没有办法将单个查询的默认值覆盖为 5 分钟?

在没有找到解决方案的情况下,我开始根据大量搜索创建自己的 SimpleQuery 帮助程序并尝试各种方法,直到最终找到我能够理解和适应的代码参考。

因此,现在通过更改网络代码以使用新的 SimpleQuery 帮助器,我可以获得几乎相同的结果,但存在一些问题

问题 1-3 在使用 SimpleQuery 帮助器的第二个 Web 代码中进行了注释。这些我可以解决,但我仍然在努力解决的是为什么没有检测到 Number 和 Date 值的 NULL 检查。

我会很感激帮助正确检测这些,所以我可以在使用 Double.Parse 或 DateTime.Parse 时避免随后的错误。对于 SimpleQuery 帮助程序或您看到的任何其他内容,我也将不胜感激。

提前致谢。

0 投票
1 回答
123 浏览

asp.net - 代码需要时间,因系统而异

在过去的 15 天里,我遇到了一个问题。我有一个代码,其中包含一个 do-while 循环,其中有 4 个 for 循环。在每个循环中,都会调用以下函数。

现在的问题是 1)在我的本地系统中,我得到“超时已过期。在操作完成之前超时时间已过或服务器没有响应”错误。所以我将函数更改如下。(即)我添加了 CommandTimeout =0

2)但是发生的事情是“超时已过期”异常仍然存在。抓住它就可以解决问题。但整个过程需要1个小时。

3)同样的问题也出现在服务器机器上。所以我们改变了服务器。现在在备份服务器中,整个代码只需要 3 分钟。但是我的本地机器和主服务器中的相同代码需要 30 多分钟。

添加:

连接字符串

我有 2 个问题。

  1. 为什么“超时过期..”只出现在我的本地系统和主服务器机器上,而不出现在备份服务器机器上?

  2. 备份服务器所用的代码只需要 3 分钟。但在我的本地系统和主服务器中,大约需要 30 分钟或更长时间。(都具有相同的源、数据库)。

更新:

我已经检查了 sql Profiler 中的过程。由于循环没有限制,我们不知道它迭代了多少次。对于前几次迭代,持续时间低于 120。然后对于同一个 SP,持续时间为 13000、1200 等。这是什么原因造成的?

以下显示在 sql Profiler 中,即使我在存储过程中设置了 Arithabort

谁能建议我是什么原因?

0 投票
0 回答
88 浏览

c# - 部分类表适配器为空

我想在 ReportViewer 使用的 ObjectDataSource 上设置 CommandTimeout。

我创建了一个部分类,但 TableAdapter 为空,直到我在调试中单击 TableAdapter 以展开属性。只有这样 TableAdapter 才会获取值。

这是代码:

和我的部分类代码:

0 投票
1 回答
1446 浏览

vb.net - 如何在应用程序范围内设置 DataContext.CommandTimeout

我想为我的DataContext Class应用程序设置超时。我可以找到很多翻译成 C# ( 1 , 2 )的例子vb.net

但它给出了错误:Class '<classname1>' must declare a 'Sub New' because its base class '<classname2>' has more than one accessible 'Sub New' that can be called with no arguments.

我现在有两个问题: 我只是无法解决"sub new"问题。如果我放一个

我得到这个构造函数没有退出的错误,但我不确定我应该使用什么现有的构造函数,因为我以前从未使用Partial Class过。

第二个是我不确定SampleDBDataContext我必须使用什么,因为我有一个名为 MySolution 的解决方案,我有一个MySolution.SampleDBDataContext并且我也有System.Date.Linq.DataContext.

0 投票
1 回答
436 浏览

c# - 使用 DbDataAdapter.Fill 忽略 CommandTimeout

我似乎无法让 CommandTimeout 在下面的代码中工作。我将超时值设置为 1 秒只是为了测试以确保它有效,但它似乎被忽略了。SELECT 语句运行大约需要 15 秒,然后运行完成。我预计 1 秒后会发生超时异常。我在互联网上搜索了如何执行此操作的示例,但我找不到任何东西。我究竟做错了什么?


更新: 我写了一个运行时间超过 30 秒的 SELECT 命令。这也不会超时。我什至注释掉了我的 CommandTimeout 行,它仍然运行完成。因此,似乎即使是默认的 30 秒 CommandTimeout 也被忽略了。我很难过......任何帮助将不胜感激。


更新: 我想我可能已经弄清楚了。当我编写一个非常复杂的 SELECT 语句时,似乎发生了命令超时异常。我只能猜测发生了什么,使用我的简单 SELECT 命令,执行命令需要不到 1 秒的时间,但加载数据集需要额外的 15 秒。我在正确的轨道上吗?这看起来有可能吗?