gpt4 book ai didi

c# - 将 SqlCommand 的 CommandTimeout 设置为高值是否有任何负面影响?

转载 作者:行者123 更新时间:2023-11-30 16:51:26 24 4
gpt4 key购买 nike

当存储过程花费的时间超过默认超时值时,我似乎遇到了一些随机问题;我被告知 here .

所以我增加了值(value),这似乎有所帮助。

但这让我想知道:为什么不总是把它设为一个非常大的数字,以防查询或操作需要很长时间?不会因为这是允许的 MAX 就需要那么长时间,对吧?

既然如此(我想),为什么默认值会这么低(我相信是 30 秒)?

更新

我最初将 SqlCommand 的 CommandTimeout 值设置为 300(5 分钟),但是我得到了“发生上下文切换死锁”。所以我随后将其减少到 120(2 分钟),这似乎或多或少是我的“最佳位置”。我确实在几次测试中有一次“超时已过期”,但是当我重试相同的确切范围时,它第二次成功完成,所以我想这只是“其中之一” - 120 有时不够超时,但 300 显然太多了。 IOW,这种在太少和太多之间的平衡行为似乎并不是“一门精确的科学”。

最佳答案

超时只会限制您等待的最大可能。它不会使快速的事情花费更长的时间。

有时您无能为力,而且某个功能很荒谬,而且会花费很长的时间。在这种情况下,需要更长的超时时间。

但是,希望情况并非总是如此,因为用户通常不想等待很长时间。而且如果用户停止等待,那么您可能会浪费资源创建不会被使用的内容。此外,您还可能让用户等待,以防他们不小心选择做超出预期的事情。

我的建议是保持合理的超时,并且只在必要的有限情况下延长它们。

在一个完全不同的主题上,可以更改功能以使其运行得更快(例如过滤以处理更少的数据、预聚合更快处理的中间总计、索引和/或查询优化.) 有时一个索引可能是 2 分钟和 2 秒之间的差异。

关于c# - 将 SqlCommand 的 CommandTimeout 设置为高值是否有任何负面影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33884332/

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