首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是什么导致临时表空间满了并生成ORA-01652错误?

是什么导致临时表空间满了并生成ORA-01652错误?
EN

Database Administration用户
提问于 2022-08-18 06:28:12
回答 1查看 1.1K关注 0票数 0

我想了解在什么样的情况下,什么问题会导致临时表空间耗尽空间。

  • 在临时工上会发生太多的排序吗?
  • 我如何从AWR中识别出这样的问题?
  • 怎么才能解决这个问题呢?

我的Oracle数据库实例正在18c版上运行。

我是一名DBA,主要管理DB的运营方面。我不做太多的开发/代码编写。我想了解更多,这样我就可以为开发者提供一些建议。

EN

回答 1

Database Administration用户

发布于 2022-08-18 11:21:23

正如您已经注意到的,当排序数据集太大而无法存储时,将使用临时空间。它还用于实现中间数据集(例如来自子查询或CTE),无论是否排序,用于创建索引,或用于临时LOB存储。

您无法避免使用它:它是由Oracle自动化的。最常见的情况是,您的选择是“一次处理较少的数据”或“使温度更大”。您可以手动放大临时表空间中的一个或多个数据文件,将数据文件设置为最大限度的自动扩展,或者添加更多的数据文件。

您可以使用以下内容按会话监视使用情况:

代码语言:javascript
复制
SELECT    S.sid || ',' || S.serial# sid_serial, S.username, S.osuser, P.spid, S.module,
          P.program, SUM (T.blocks) * TBS.block_size / 1024 / 1024 mb_used, T.tablespace,
          COUNT(*) statements
 FROM     v$sort_usage T, v$session S, dba_tablespaces TBS, v$process P
 WHERE    T.session_addr = S.saddr
 AND      S.paddr = P.addr
 AND      T.tablespace = TBS.tablespace_name
 GROUP BY S.sid, S.serial#, S.username, S.osuser, P.spid, S.module,
          P.program, TBS.block_size, T.tablespace
 ORDER BY sid_serial;

然后检查v$session或使用类似SQL的实例查看器之类的工具获取有关当前SQL的信息,以查看是哪个SQL命令导致了问题。请注意,它可能不仅仅是导致问题的一个操作:它也可能是多个操作同时运行的累积效应。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/315767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档