oracle 碎片是什么意思,Oracle碎片整理全面解析

2023-11-17

Oracle 作为一种大型数据库,广泛应用于金融、邮电、电力、民航等数据吞吐量巨大,计算机网络广泛普及的重要部门。对于系统管理员来讲,如何保证网络稳定运行,如何提高数据库性能,使其更加安全高效,就显得尤为重要。作为影响数据库性能的一大因素 -- 数据库碎片,应当引起 DBA 的足够重视,及时发现并整理碎片乃是 DBA 一项基本维护内容。

1、碎片是如何产生的

当生成一个数据库时,它会 分成称为表空间( Tablespace )的多个逻辑段( Segment ),如系统( System )表空间 , 临时( Temporary )表空间等。一个表空间可以包含多个数据范围( Extent )和一个或多个zi you范围块,即zi you空间( Free Space )。

表空间、段、范围、zi you空间的逻辑关系如下:

当表空间中生成一个段时,将从表空间有效zi you空间中为这个段的初始范围分配空间。在这些初始范围充满数据时,段会请求增加另一个范围。这样的扩展过程会一直继续下去,直到达到最大的范围值,或者在表空间中已经没有zi you空间用于下一个范围。最理想的状态就是一个段的数据可被存在单一的一个范围中。这样,所有的数据存储时靠近段内其它数据,并且寻找数据可少用一些指针。但是一个段包含多个范围的情况是大量存在的,没有任何措施可以保证这些范围是相邻存储的。当要满足一个空间要求时,数据库不再合并相邻的zi you范围(除非别无选择),而是寻找表空间中最大的zi you范围来使用。这样将逐渐形成越来越多的离散的、分隔的、较小的zi you空间,即碎片。

2、碎片对系统的影响

随着时间推移,基于数据库的应用系统的广泛使用,产生的碎片会越来越多,将对数据库有以下两点主要影响:

1)导致系统性能减弱

如上所述,当要满足一个空间要求时,数据库将首先查找当前最大的zi you范围,而 " 最大 " zi you范围逐渐变小,要找到一个足够大的zi you范围已变得越来越困难,从而导致表空间中的速度障碍,使数据库的空间分配愈发远离理想状态;

2)浪费大量的表空间

尽管有一部分zi you范围(如表空间的 pctincrease 为非 0 )将会被 SMON (系统监控)后台进程周期性地合并,但始终有一部分zi you范围无法得以自动合并,浪费了大量的表空间。

3、zi you范围的碎片计算

由于zi you空间碎片是由几部分组成,如范围数量、最大范围尺寸等,我们可用 FSFI--Free Space Fragmentation Index (zi you空间碎片索引)值来直观体现:

FSFI=100*SQRT(max(extent)/sum(extents))*1/SQRT(SQRT(count(extents)))

可以看出, FSFI 的最大可能值为 100 (一个理想的单文件表空间)。随着范围的增加, FSFI 值缓慢下降,而随着最大范围尺寸的减少, FSFI 值会迅速下降。

下面的脚本可以用来计算 FSFI 值:

rem FSFI Value Compute

rem fsfi.sql

column FSFI format 999,99

select tablespace_name,sqrt(max(blocks)/sum(blocks))*

(100/sqrt(sqrt(count(blocks)))) FSFI

from dba_free_space

group by tablespace_name order by 1;

spool fsfi.rep;

/

spool off;

比如,在某数据库运行脚本 fsfi.sql, 得到以下 FSFI 值:

TABLESPACE_NAME FSFI

------------------------------ -------

RBS 74.06

SYSTEM 100.00

TEMP 22.82

TOOLS 75.79

USERS 100.00

USER_TOOLS 100.00

YDCX_DATA 47.34

YDCX_IDX 57.19

YDJF_DATA 33.80

YDJF_IDX 75.55

---- 统计出了数据库的 FSFI 值,就可以把它作为一个可比参数。在一个有着足够有效zi you空间,且 FSFI 值超过 30 的表空间中,很少会遇见有效zi you空间的问题。当一个空间将要接近可比参数时,就需要做碎片整理了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

oracle 碎片是什么意思,Oracle碎片整理全面解析 的相关文章

  • #QGIS源码官方编译指南

    QGIS源码官方编译指南 将QGIS官方的编译指南windows部分翻译一下 供大家参考 这个版本是QGIS源代码工程中2017年4月30日最后修改的版本 对应QGIS 2 99 也就是即将发布为QGIS 3 0的版本 翻译 Jacory
  • 计算机开机时间不对,为什么电脑每次开机时间都不对

    电脑是很智能的 一般情况下一开机电脑上面的时间就会自动校准 可有时候也会出现毛病 比如每次开机时间都不对 那么这是为什么呢 windows电脑 电脑时间不准的原因有 1 主板电池没电 2 有病毒 3 主板出问题 对应的解决方法 1 更换主板
  • 2023华为OD机试真题Java实现【寻找最大价值的矿堆/深度优先搜索】

    前言 本题使用Java实现 如果需要Python代码 请点击以下链接 点我 题目 我们规定 0表示空地 1表示银矿 2表示金矿 矿堆表示由相邻的金矿或银矿连接形成的地图 银矿价值是1 金矿价值是2 你的目标是找出地图中最大价值的矿堆 并且输
  • react页面渲染之前_React 单页面初始化渲染优化

    由于项目使用 React React Router Redux 来开发项目 采取了前端渲染的方式 如果采用 ssr 就不会有这个问题 问题 所以每到一个页面 需要发一个初始化的请求来获取页面数据 然后重新渲染页面 所以之前一个页面从请求到加
  • PP-YOLOE的译读笔记

    PP YOLOE An evolved version of YOLO 摘要 本文介绍了PP YOLOE模型 一种SOTA的产业级目标检测器 具有性能高效和部署友好的特点 本文在之前的PP YOLOv2的基础上进行优化 使用了anchor
  • linux如何脚本监控tps,Linux性能监控分析命令(三)—iostat命令介绍

    性能监控分析的命令包括如下 1 vmstat 2 sar 3 iostat 4 top 5 free 6 uptime 7 netstat 8 ps 9 strace 10 lsof 命令介绍 iostat是对系统的磁盘I O操作进行监控
  • vs中nuget包引用感叹号解决

    移除其中一个包引用 然后重新再nuget中搜索 然后在添加进来 其他的有感叹号的nuget包引用也自动刷新包了 就解决了
  • +-字符串(简单贪心)

    字符串 时间限制 1000 ms 内存限制 65535 KB 难度 1 描述 Shiva得到了两个只有加号和减号的字符串 字串长度相同 Shiva一次可以把一个加号和它相邻的减号交换 他想知道最少需要多少次操作才能把第一个字符串变换成第二个
  • python 安装第三方库imblearn

    首先把自己的numpy scikit learn scipy卸载掉 然后执行 pip install imblearn i http pypi douban com simple trusted host pypi douban com 如
  • MySQL学习笔记

    文章目录 一 数据库概述及数据准备 SQL DB DBMS 表 table SQL语句分类 导入数据 查看表结构 查看表中的数据 二 常用命令 查看MySQL版本 创建数据库 查询当前使用的数据库
  • ChatGPT/InstructGPT详解

    前言 GPT系列是OpenAI的一系列预训练文章 GPT的全称是Generative Pre Trained Transformer 顾名思义 GPT的目的就是通过Transformer为基础模型 使用预训练技术得到通用的文本模型 目前已经
  • sublime主题配色

    ignored packages Vintage theme Default Dark sublime theme dark theme Default sublime theme light theme Adaptive sublime
  • 【华为OD机试】生日礼物【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 小牛的孩子生日快要到了 他打算给孩子买蛋糕和小礼物 蛋糕和小礼物各买一个 他的预算不超过x元 蛋糕cake和小礼物gift都有多种价位的可供选择 请返回小牛共有多少种
  • 【vue3】watchEffect只监听一次的方法

    import watchEffect from vue let data ref watchEffect gt console log data value 要利用data value执行的操作 而且还必须在watchEffect里面执行
  • 记录错误:con not perform the following tasks

    Ubuntu系统下安装软件出现报错 con not perform the following tasks TOC 检查软件源 实在不行改为国内源 或者等待网络再次下载
  • Bootstarp4 设计网页轮播组件

    很多网站都有广告轮播功能 可使用bootstrap4中的carousel组件非常简单的实现 目录 下载bootstrap4 轮播功能实现 简单实现轮播组件 增加标识图标 增加标题和说明 切换淡入淡出 设置数据间隔 总结 下载bootstra
  • 基于微信云开发实现电影推荐小程序

    一 项目背景 项目名称为柚子电影 此小程序的目的是为了给大家推荐电影 与其他的售票等小程序不同 二 性能需求 我的影单的增加 删除和查询 电影详情页面的完整实现 对小程序的各个方面 电影推荐 电影详情 用户授权 影院查询 影院位置 用户登录
  • Scala(一):概述&变量&流程控制(转载)

    文章目录 一 简介 1 1 scala语言的特点 1 2 第一个scala程序 二 变量 2 1 Scala变量的使用 2 2 Scala数据类型 2 3 值类型转换 三 循环控制 3 1 分支控制if else 3 2 for循环控制 S
  • opencv4应用开发基础

    opencv3 0版本以上都是用C 实现的 常用的一些函数及类型集中在cv命名空间里 cv Mat类型用于表示一个图像 构造函数除了空的构造函数外 还有很多个 Mat int rows int cols int type 创建指定行 列数的

随机推荐

  • springcloud常见面试题(2023最新)

    目录 前言 一 微服务 1 微服务是什么 2 你知道哪些RPC框架 3 springCloud和Dubbo有什么区别 4 SpringCloud由什么组成 二 Spring Cloud Eureka 1 Eureka包含几个组件 2 Eur
  • 探究Android SQLite3多线程

    http www cnblogs com xyczero p 4096297 html 最近做项目时在多线程读写数据库时抛出了异常 这自然是我对SQlite3有理解不到位的地方 所以事后仔细探究了一番 关于getWriteableDataB
  • visio增加连接点

    在画系统架构图的时候遇到一个问题 如果一个图形本来有的连接点不够 需要在任何的位置上增加连接点 看了很多网络介绍 但是总是增加不成功 继续发现接下来问题揭晓 2013版本visio举例 首先在开始中找到连接点 其次 按住ctrl键 在想要添
  • CBOW 与 skip-gram

    skip gram是利用中间词预测邻近词 cbow是利用上下文词预测中间词 一 CBOW 1 continues bag of words 其本质是通过context来预测word CBOW之所以叫连续词袋模型 是因为在每个窗口内它也不考虑
  • Sublime Text自定义配色方案

    先推荐介绍几款非常好用的自定义主题 https github com aziz tmTheme Editor http tmtheme editor herokuapp com 这个可以在线修改配色方案 也可以上传本地的方案修改 https
  • linux源码文件数量,Linux 下统计文件夹大小及文件数量

    查看文件夹大小 lib 目录大小 du sh lib lib 子目录大小 du sh lib 查看 lib 目录下普通文件大小 find lib type f xargs ls la awk F BEGIN sum 0 sum 5 END
  • prim算法解决最小生成树问题

    刚好这次又遇到了prim算法 就做了下整理 可以参考 数据结构与算法分析c 描述 这本书 个人而言 很经典 并把以前写的代码也整理了一下 做下分享 同时也加深下自己的理解 prim算法是解决最小生成树问题的一个很好的算法 此算法是是将点集合
  • iOS - 常用的宏定义

    1 处理NSLog事件 开发者模式打印 发布者模式不打印 ifdef DEBUG define NSLog FORMAT fprintf stderr s d t s n NSString stringWithUTF8String FILE
  • 第九章 Qt拖放

    拖放是Qt实现的应用程序内或者多个应用程序之间传递信息的一种直观的现代操作方式 有没有想到windows的剪贴板 数据的移动和复制功能都异曲同工嘞 一 使拖放生效 拖放包含两个动作 拖动 和 放下 Qt窗口部件可以作为拖动点 drag si
  • NestedScrollView + RecyclerView完美解决显示不全及滑动冲突

  • color属性 python_Python cv2.CV_LOAD_IMAGE_COLOR属性代码示例

    需要导入模块 import cv2 as 别名 或者 from cv2 import CV LOAD IMAGE COLOR as 别名 def load cv2 img grayscale None TODO load images if
  • Hive连接报错,显示用户没有权限 org.apache.hadoop.ipc.RemoteException:User: xxx is not allowed to impersonate root

    Hive连接报错 显示用户没有权限 org apache hadoop ipc RemoteException User xxx is not allowed to impersonate root org apache hadoop ip
  • docker学习使用文档

    docker学习参考文档 学习途径 安装 介绍 环境准备 开始安装 卸载依赖 删除资源 阿里云镜像加速 底层原理 docker怎么工作 docker为什么比虚拟机快 1 docker有着比虚拟机更少的抽象层 2 docker利用的是宿主机内
  • 安卓ui开发教程下载!被面试官问的Android问题难倒了,内容太过真实

    前言 这些题目是网友去百度 小米 乐视 美团 58 猎豹 360 新浪 搜狐等一线互联网公司面试被问到的题目 熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率 欢迎一线公司员工以及网友提交面试题库 欢迎留言 网上的都是按照公司划分的
  • Linux实现多进程服务端Socket通信

    目录 程序流程 程序实例 运行结果 本例主要是让服务器能够同时处理多个客户端的连接请求 程序流程 1 创建基本的套接字 并绑定地址信息 设置监听 2 循环accept来接收连接请求 每接收一个连接请求 就创建一个子进程 3 在子进程中进行客
  • 浅谈人工智能专业,作为普通学生对未来的看法

    一 个人简介 本人是一个普通大学的普通学生 和大多数人一样 经历过高考志愿填报 在身边人的建议下 自己对于人工智能专业那听起来高大上的名字以及对于未知的探索渴望 我最终填报了人工智能专业 二 给普通学生的一段话 我真的和许许多多人一样就是一
  • Intel C and C++ Compilers: Features and Supported Platforms

    Submitted by Jennifer J Intel on April 20 2015 Share Tweet Share Intel C Compiler Features Supported in Different Produc
  • c++ 可变参数的三种实现方式

    c 可变参数 方法一 C语言的 va list1 include
  • 【python零基础入门学习】python基础篇(基础结束篇)之数据结构类型-列表,元组,字典,集合(五)

    本站以分享各种运维经验和运维所需要的技能为主 python零基础入门 python零基础入门学习 python运维脚本 python运维脚本实践 shell shell学习 terraform 持续更新中 terraform Aws学习零基
  • oracle 碎片是什么意思,Oracle碎片整理全面解析

    Oracle 作为一种大型数据库 广泛应用于金融 邮电 电力 民航等数据吞吐量巨大 计算机网络广泛普及的重要部门 对于系统管理员来讲 如何保证网络稳定运行 如何提高数据库性能 使其更加安全高效 就显得尤为重要 作为影响数据库性能的一大因素