【问题标题】:How to limit SQL-DML resource use如何限制 SQL-DML 资源使用
【发布时间】:2015-09-12 20:56:00
【问题描述】:

我有一台运行 Oracle 11g 和 Server 2008r2 的服务器,具有 32GB 的 RAM 和 2 个 3Ghz 的四核 CPU(总共 8 个核,无 HT)。我的磁盘由 RAID 10 中的 4 个 10,000RPM SAS 驱动器组成。

当我执行 DML 语句从另一个表中插入行并删除它们时,这可能会耗尽我的机器上的 CPU 并锁定数据库并阻止写入新记录。

有没有办法限制 SQL 查询可以使用的系统资源或 oracle 资源的数量?

谢谢

【问题讨论】:

  • 除非您运行的是 express 版本或者您使用的是并行 DML,否则单个会话最多会使用一个内核的 100%。这将使 7 个核心可供其他会话使用。您确定瓶颈在 CPU 上吗?您使用的是哪个版本的数据库?
  • 具有 Oracle SQL Server 的单一服务器?那是怎么配置的?
  • APC:Windows Server 2008r2 和 Oracle 11g (11.2) Enterprise。
  • Justin Cave:我正在执行一些相当简单的 DML:INSERT INTO ARCHIVE_MYTABLE SELECT * FROM MYTABLE WHERE UNIX_DATE BETWEEN V_ST AND V_ET 其中 V_ST 和 V_ET 是一个月开始和结束时传递的 unix_dates。紧随其后的是 DELETE FROM MYTABLE WHERE UNIX_DATE BETWEEN V_ST AND V_ET。此语句可能会导致所有 8 个内核的上限为 100%,并有大量 RAM 和磁盘 I/O 可供备用。

标签: oracle oracle11g toad


【解决方案1】:

我同意@JustinCave 的观点,一个会话似乎不太可能占用多核服务器上的所有 CPU。除非您安装了多个数据库。

无论如何,从 Oracle 的角度来看,您的 DBA 可以配置消费者组和资源计划,以控制会话如何使用各种资源,包括 CPU。 Find our more.

资源管理是一种战略方法,适用于处理持续存在的资源分配问题。如果您对单个查询有疑问,最好调整它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 2020-11-21
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多