【问题标题】:Oracle- Does executing simultaneous queries affect their performances?Oracle- 执行同时查询会影响它们的性能吗?
【发布时间】:2021-03-09 10:39:55
【问题描述】:

我正在使用包含数亿行的非常大的表,并且我正在使用 SQL Developer 测量一些查询的性能,我发现有一个名为 Unshared SQL worksheet 的选项,它允许我在以下位置执行许多查询同时。同时执行多个查询适合我,尤其是某些查询或过程需要数小时才能执行。

我的问题是同时执行多个查询会影响性能吗? (性能是指执行查询的持续时间)

【问题讨论】:

  • 是的。数据库上的查询负载会影响性能。
  • 感谢您的快速回答,尽管我希望相反,但这是有道理的
  • 你为什么希望相反?相反可能是正确的,如果查询很小(它们没有进行大量繁重的计算)并且数据很小(不是很多从磁盘读取/写入磁盘并且不是很大内存占用) - 在这种情况下,您可能有两个查询,每个查询分别在 5 秒内运行,而是在相同的 5 秒内并行运行。但你描述的恰恰相反——海量数据、长时间运行的查询;几乎可以肯定,资源会得到充分利用,在这种情况下,必须付出一些代价。

标签: sql database oracle performance oracle-sqldeveloper


【解决方案1】:

每个查询都需要花费一些东西来执行。那只是物理学。你的数据库有固定数量的资源——CPU、内存、I/O、临时磁盘——来服务查询(让我们把弹性云实例排除在外)。同时执行的每个查询都在从该固定罐中请求资源。如果您同时运行太多查询,您可能会遇到资源争用,这将影响单个查询的性能。

注意单词“潜在地”。您是否会遇到实际问题取决于很多事情:您的查询需要什么资源,您的查询编写的效率如何,您的数据库服务器有多少可用资源,它被配置为支持多个用户的效率如何(以及 DBA 是否有实施配置文件来管理资源使用)。因此,就像几乎所有数据库调优问题一样,答案是“视情况而定”。

即使对于像您描述的那样访问大量表的查询也是如此。不过,如果您知道有查询需要几个小时才能运行,您可能希望优先考虑调整它们。

【讨论】:

  • 我认为如果表包含数亿行并且某些列是嵌套数组,那么花费那个时间是正常的...仅更新它们是一项繁重的任务,即使是简单的插入查询可能需要几个小时。
猜你喜欢
  • 2011-04-09
  • 1970-01-01
  • 1970-01-01
  • 2011-02-19
  • 2011-02-17
  • 2014-07-13
  • 2010-10-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多