两个查询命中同一个表

时间:2017-03-09 09:17:56

标签: sql oracle

如果同时运行的两个单独查询同时命中一个表,那么单个查询的运行时间是否会增加?

由于

2 个答案:

答案 0 :(得分:0)

这是一个非常复杂的问题,它在很大程度上取决于具体情况。

然而,简单的答案是“RDBMS引擎的设计明确目标是支持许多并发查询,并且他们非常擅长。有些情况下,由于并发访问而遇到性能问题,但它们并不常见在企业级硬件上。“

更复杂的答案是:

通常,只要系统有足够的资源(RAM和CPU,以及i / o带宽),并且只要这些查询很快(通常意味着这意味着),“读取”查询就可以同时运行而不会对性能产生明显的影响不到1秒)。

如果你自己的查询速度很慢,同时运行几个可能会导致速度减慢 - 慢查询往往会消耗更多资源(RAM,CPU,i / o),并且争用这些资源会导致放慢速度。

如果您有“编写”查询,则根据您的事务策略,您可能会遇到一个查询锁定另一个查询尝试读取或写入的表的情况。

答案 1 :(得分:-1)

像这样使用:

UPDATE table1 WITH(NOLOCK) SET Column1='asc' WHERE ....