在应用程序,什么是"长时间"保留一交易的开放的承诺之前或滚回来吗?分钟?几秒钟?小时?

和在其数据库?

有帮助吗?

解决方案

@lomaxx,@ChanChan:给我最大的知识光标是唯一的问题就SQL服务器和Sybase(T-SQL变体)。如果你的数据库的选择是Oracle,然后游标都是你的朋友。我已经看到一些情况下使用的光标实际上已经改进的性能。光标是一个非常有用的机制和别说这样的话"如果你使用了光标,我们炒了你的"是有点荒谬的。

说到这,你只要保持一个标开放的绝对最低所需。指定一个最长时间将是任意和毫无意义的,不理解的问题领域。

其他提示

我可能会让火烧这个,但你真的应该试试和避免使用光标,因为他们产生严重性的打击。如果你必须使用它,你应保持开放的绝对最低数额的可能的时间让你免费的资源是阻止通过标。

交易:分钟。

光标:0seconds最大,如果使用了光标,我们开火。

这是不是很可笑,当你考虑我们是在一个高级酒店网的环境中,具有运行sql服务器,并且我们甚至不允许存储处,因为无法精确的版本,并保持他们。如果我们使用oracle也许。

一般来说,我同意其他的答案:避免游标时,有可能(在大多数情况下)和靠近他们尽可能快。

但是:这一切都取决于你的工作环境。

  • 如果它是一个生产网站的环境中有大量的用户,确保标走之前有人得到超时。
  • 如果你-例如-写入一个"日志的分析存储程序"(或者)在一个专有的机,这并没有什么别的:随意做任何你想要做的。你会是唯一的人已经等待。这并不是因为如果数据库服务器要死,因为你使用了光标。你应该考虑,虽然也许使用的行为,将随时间改变,在某些时候可能有10人使用该应用程序。因此,试图找到另一种方式;)

@ninesided:性能的问题放在一边,它也是关于使用正确的工具。给出的选择将光标移动了你的查询到代码,我将认为99次出的100它将更好地把环逻辑进入某种形式的托管的代码。这样做可以让你得到的优势,采用一个调试器,编制时间错误的检查类型的安全等。

我的答案的问题仍然是相同的,如果你使用了光标,关闭它尽快,在oracle我还是试图使用明确的光标。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top