首页 > 数据库 >Oracle查询表空间使用情况速度很慢

Oracle查询表空间使用情况速度很慢

时间:2025-01-15 11:31:50浏览次数:3  
标签:space dba free 查询 recyclebin 视图 extent Oracle 速度

现象

监控表空间使用率及空间剩余量是数据库日常维护的重要内容。有时候在系统运行很长一段时间后,我们再去查询表空间使用情况,发现相同的查询语句执行时间会变长。

这是因为我们在查询表空间使用情况的时候,需要从dba_free_space视图中获取剩余空间大小,如果该视图中对象过多,就会造成查询缓慢的现象。

那么dba_free_space视图中都是哪些对象呢?为什么会过多呢?

        这个视图记录了表空间中空闲的区,如果一个表空间里的free状态的extent不连续,那么在dba_free_space中会有多条记录对应同一个表空间,当然也会有extent连续但是没有合并起来的情况出现。当用户drop对象时,可以从dba_free_space视图里看到相关对象extent信息。被drop掉的对象都存放在recyclebin中,如果recyclebin里有大量被drop的对象,并且这些对象都曾被分配了大量的extent,就会出现查询dba_free_space缓慢的问题。

用户drop对象到recyclebin,跟dba_free_space有什么关系?

        其实我们查询dba_free_space视图,也访问了sys.recyclebin$。

为什么要访问sys.recyclebin$呢?

        因为用户drop对象不使用purge选项时,对象被扔到recyclebin(其实还在原来的表空间里,只是系统给他改名了),而此时ORACLE不会更新数据文件头extent map(以减少ORACLE对extent map的争用),所以通过访问sys.recyclebin$来获取extent信息。

SELECT * FROM DBA_FREE_SPACE WHERE TABLESPACE_NAME = 'CNOOCMDM';

我们尝试 purge recyclebin

再到dba_free_space视图中查看purge recyclebin之后的情况

问题解决

标签:space,dba,free,查询,recyclebin,视图,extent,Oracle,速度
From: https://blog.csdn.net/xdmxmf0/article/details/145028992

相关文章

  • Oracle系列---【ORA-01017用户名密码无效】
    1.问题项目启动时,报:ORA-01017用户名密码不对的错误,但是没有报具体哪个库错误,因为我是多数据源的项目。2.解决方案2.1定位到连接数据报错的用户和库名select*fromdba_audit_sessionwhereACTION_NAME='LOGON'ANDRETURNCODE=1017ORDERBYTIMESTAMPDESC;1.OS_USERNAM......
  • 如何解决网站在多台电脑上打开速度慢的问题
    问题描述:用户反馈,其家庭和单位的电脑在访问某个特定域名时速度非常慢,但手机端访问速度正常。此外,用户还提到服务器存在大量漏洞,担心网站安全问题,并询问如何处理这些漏洞。解决方案:针对您提到的家庭和单位电脑访问域名速度慢的问题,我们首先需要排查以下几个方面:网络连接质量:......
  • 揭秘10种主流PLC在ModbusTCP通信中的速度表现!
    大家好!我是付工。通透!终于把ModbusRTU弄明白了这样看来,ModbusTCP协议太简单了太简单了!C#轻松实现Modbus通信前面给大家介绍了一系列关于Modbus和ModbusTCP的知识。今天给大家来实测一下,对于不同品牌的PLC或板卡实现ModbusTCP通信时,通信速度有多快。一、测试界面我们使用自......
  • Oracle系列---【Oracle中密码的策略如何设置】
    在Oracle数据库中,profile是一个与用户关联的配置集合,用于控制用户账户的资源使用情况和密码策略。例如,profile可以定义用户的密码过期时间、账户锁定策略、并发会话数限制等。简单来说,profile是一组规则的集合,这些规则可以应用到一个或多个数据库用户,从而限制或管理他们的行......
  • 【MySQL】简单解析一条SQL查询语句的执行过程
    1.MySQL的逻辑架构图MySQL架构主要分为Server层和存储引擎层。Server层集成了连接器、查询缓存、分析器、优化器和执行器等核心组件,负责提供诸如日期、时间、数学和加密等内置函数,以及实现存储过程、触发器、视图等跨存储引擎的功能。存储引擎层则负责数据的实际存......
  • 用于与多个数据库聊天的智能 SQL 代理问答和 RAG 系统(4) —— 利用大型语言模型(LLM)生成
    实现一个与旅行相关的SQL数据库交互的工具,利用大型语言模型(LLM)生成和执行SQL查询,并通过语言模型处理查询结果生成最终答案。完整代码:fromlangchain_core.toolsimporttoolfromlangchain_community.utilitiesimportSQLDatabasefromlangchain.chainsimportcreate_......
  • Kyutai开源端侧模型Helium -1 preview;FoloToy内测「超级智能体」,支持联网查询和语音调
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑......
  • LeetCode - #183 Swift 实现查询未下订单的客户
    网罗开发(小红书、快手、视频号同名)  大家好,我是展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、HarmonyOS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源......
  • Oracle数据库手动备份数据
    切记先不要执行第一句drop,先执行第二句select(可以先不加条件,因为目录名称可能不是DATA_BACKUP),看看DATA_BACKUP有没有,如果没有,按第三句sqlcreate创建一个存放文件的目录,然后按后续的sql授权这个目录:注:要在sys账号下使用如下sql(可在sqlplus下执行)。--前提directory=DATA_BACKUP创......
  • 帝国cms实现数据库查询缓存方法
    <?phpfunctiongetCache($key){$cacheFile='cache/'.md5($key).'.json';//使用md5生成唯一的文件名if(file_exists($cacheFile)){$data=json_decode(file_get_contents($cacheFile),true);//检查缓存是否过期(例如,设置过期时间为......