oracle数据库总结

news2025/1/6 20:39:19

文章适合熟悉mysql,想学习oracle的选手,基本的语法都相差不大,但还是有区别的

一、oracle高水位线问题

1、什么是高水位线
  简单来说,oracle存储数据的时候会分配空间,但是删除数据的时候并不会回收空间。这样的话,表的空间就只会越来越大,查询的时间不会因为数据删除而变少。

举个例子:
  假如student表了有1000万条数据,使用 select count(*) from student 查询总记录数的时候需要花费2秒,当student的数据被清除到只剩1条数据的时候,再次使用 select count(*) from student 查询总记录数的时候仍然需要花费2秒

2、oracle为什么要这样做
  因为分配空间和回收空间的操作是非常耗时的,这对插入和删除的操作影响是巨大的,因为oracle管理的基本都是百万级别的数据,数据变动非常大,需要定期清理没用的数据,又要插入新的数据,频繁地操作空间会耗费大量时间

  如果不回收空间,那么就单纯删除数据后,在数据删除的位置标记上一个 “已删除” 的标记就可以了,如果插入新的数据,就会优先从已删除的位置插入就可以了。

  表的数据量一般来说是相对稳定,如果建立了索引,这种机制对查询的影响也不会很大,所以这其实是一种比表好的设计

3、如何解决高水位线问题
如果表的数据量非常小,但是查询的时间非常久,那么就可以考虑高水位线的问题了

解决的办法其实也很简单
(1)重构表
先创建中间表缓存数据,删除原表,再创建新表,置入数据即可,参考的sql如下:

create table student_temp as(
    select
        *
    from
        student
);
drop table student;
create table student as(
    select
        *
    from
        student_temp
);
drop table student_temp;

需要注意的是,如果有索引,需要重新创建索引

(2)不使用全表查询
建立索引,查询的时候使用到索引,那么就可以基本忽略这个问题

二、oracle虚表dual

oracle不允许不完整的查询,例如,mysql可以直接select 1+1,而oracle必须补全语法,使用 select 1+1 from dual
在这里插入图片描述

dual是充当一个补全语法的角色,方便本地测试一些函数或是计算的结果,例如查询系统时间:

select sysdate from dual

在这里插入图片描述

三、oracle的fetchSize

1、什么是fetchSize
查询数据的时候,数据需要传输到客户端,那么就需要建立传输通道,而fetchSize就决定了这个通道的大小,fetchSize越大,那么花费的空间就越大,会有数据库内存溢出的风险

2、oracle和mysql的fetchSize的区别
oracle和mysql不同的是,mysql默认是没有fetchSize的,所有数据一次性取出,而oracle默认的fetchSize大小是10,每次只能获取10条数据

对于取出数量级100000的数据,如果oracle不调整fetchSize,那么可能需要花费10秒钟,但是系统会相对稳定,就例如说同时访问的请求过多,用户查询的时间会有延迟,但是系统不会奔溃,而fetchSize过大的话,申请的空间比较多,数据库就会有内存溢出的风险

如果发现sql查询得很快,但是在mybatis中需要很久,那可能就是fetchSize的问题了

网上大多都说fetchSize默认调到40-100区间比较合适,这需要根据业务去考虑商榷吧

四、oracle基本语法备忘录

函数/符号作用示例结果
concat()拼接字符串,在oracle中最多两个参数select concat('ab','cd') from dualabcd
||拼接字符串,和concat效果是一样的,可以连续拼接select 'ab' || 'cd' || 'efg' from dualabcdefg
is null判断是否为空,不可以用=null来代替select * from dual where DUMMY is nullnull
is not null判断是否为不为空,不可以用<>null或!=null来代替select * from dual where DUMMY is not nullX
initcap()首字母大写,其它字母小写select initcap('abcDeF') from dualAbcdef
lower()所有字母小写select lower('abCdEF') from dualabcdef
upper()所有字母大写select upper('abCdEF') from dualABCDEF
trim()去掉首位空格select trim(' abcd ') from dualabcd
substr()截取字符串select substr('abcdefg',3,2) from dualcd
replace()替换字符串select replace('abcdefg','ab','gg') from dualggcdefg
abs()求绝对值select abs(-2) from dual2
ceil()向上取整select ceil(2.7) from dual3
floor()向下取整select floor(2.7) from dual2
round()四舍五入select round(2.7) from dual3
sysdate获取当前完整时间select sysdate from dual2023/8/23 15:07:09
to_char()将时间按指定格式转换select to_char(sysdate,'yyyyMMdd') from dual20230823
to_char()数字转字符串,字符串会靠左显示select to_char(1024) from dual1024    
to_number()字符串转数字,数字会靠右显示select to_number(1024) from dual    1024
to_date()按指定格式将数字转换成日期select to_date('20230823','yyyy/MM/dd') from dual2023/8/23

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/918363.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

行业追踪,2023-08-23

自动复盘 2023-08-23 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…

DFX概述 | Design For X | Design For Excellent

Design for X (DFX) Methods 什么是“Design for X”&#xff1f; Design for eXcellence是一种在设计和制造领域中的不断发展的原则哲学。它采用了全面和系统的设计方法&#xff0c;关注产品的各个方面——从概念生成到最终交付。 它提供了良好的实践和设计指南&#xff0c…

ESD门禁管理系统的主要功能和优势

ESD门禁管理系统是一种用于控制和管理人员进出特定区域的系统。它通常由门禁控制器、门禁读卡器、门禁管理软件等组成。 ESD门禁管理系统的主要功能包括&#xff1a; 1. 门禁控制&#xff1a;通过门禁控制器实现对门禁设备的控制&#xff0c;如开关门、锁定门等。 2. 门禁验…

视频批量剪辑矩阵分发系统源码开源分享----基于PHP语言

批量剪辑视频矩阵分发&#xff1a; 短视频seo主要基于抖音短视频平台&#xff0c;为企业实现多账号管理&#xff0c;视频分发&#xff0c;视频批量剪辑&#xff0c;抖音小程序搭建&#xff0c;企业私域转化等&#xff0c;本文主要介绍短视频矩阵系统抖音小程序开发详细及注意事…

中项系统集成项目管理知识点汇总

中项系统集成项目管理知识点汇总 一、成本-进度二、十大管理及47个过程三、质量四、人力资源五、风险六、干系人沟通七、案例分析万能答案八、选择题知识点九、十大管理输入输出工具技术总结十大管理工具技术总结 一、成本-进度 针对进度滞后的绩效情况 /缩短工期&#xff0c;可…

多态的概念和意义

函数重写回顾 父类中被重写的函数依然会继承给子类 子类中重写的函数将覆盖父类中的函数 通过作用域分辨符 (::) 可以访问到父类中的函数 面向对象中期望的行为 根据实际的对象类型判断如何调用重写函数 父类指针 (引用) 指向 父类对象则调用父类中定义的函数子类对象则调…

开始MySQL探索——数据库概述

计算机语言 计算机语言概述 计算机语言&#xff08;Computer Language&#xff09;可以简单的理解为一种计算机和人都能识别的语言。 机器语言 汇编语言 高级语言 机器语言 汇编语言 高级语言 SQL语言基础 SQL的概述 SQL全称&#xff1a;Structured Query Language&…

如何将远程支持融入企业运营

远程支持软件曾是一款“锦上添花”的工具&#xff0c;现在已成为 IT 堆栈的必要组成。随着企业的快速数字化以及对居家办公的需求不断增长&#xff0c;远程支持系统成为任何企业的重要工具。 远程支持软件可以提高问题解决速度、节省时间和资源&#xff0c;确保业务运营不间断…

LC balun设计

文章目录 1 、LC balun理论推导2、ADS仿真验证结果2.1原理图 3、复数阻抗的LC balun设计3.1示例13.2、示例1的ADS仿真验证3.3示例23.4示例2的ADS仿真结果 4、others 1 、LC balun理论推导 LC 巴伦的拓扑结构如下&#xff1a; 根据电流电压方程有&#xff1a; 化简过程如下&am…

AIGC如何借AI Agent落地?TARS-RPA-Agent破解RPA与LLM融合难题

文/王吉伟 大语言模型&#xff08;LLM&#xff0c;Large Language Model&#xff09;的持续爆发&#xff0c;让AIGC一直处于这股AI风暴最中央&#xff0c;不停席卷各个领域。 在国内&#xff0c;仍在雨后春笋般上新的大语言模型&#xff0c;在持续累加“千模大战”大模型数量的…

ARM DIY(二)配置晶振频率

文章目录 前言串口乱码问题定位内核修改晶振频率uboot 修改晶振频率番外篇 前言 上篇文章《ARM DIY 硬件调试》介绍了 DIY ARM 板的基础硬件焊接&#xff0c;包括电源、SOC、SD 卡座等&#xff0c;板子已经可以跑起来了。 但是发现串口乱码&#xff0c;今天就来解决串口乱码问…

CSS 实现页面底部加载中与加载完毕效果

效果图 实现代码 <view class"bottom-load-tip"><view class"line-tip"></view><view class"loading-animation" v-if"!lastPage"></view><view>{{ lastPage ? "没有更多了" : "…

科技政策 | 四川省科学技术厅关于发布2024年第一批省级科技计划项目申报指南的通知

原创 | 文 BFT机器人 近日&#xff0c;四川省科学技术厅发布了2024年第一批省级科技计划项目申报指南&#xff1b;其中包括自然科学基金项目、重点研发计划、科技成果转移转化引导计划、科技创新基地&#xff08;平台&#xff09;和人才计划。 01 自然科学基金项目 实施周期 …

代码随想录算法训练营第四十三天 | 1049. 最后一块石头的重量 II,494. 目标和,474.一和零

代码随想录算法训练营第四十三天 | 1049. 最后一块石头的重量 II&#xff0c;494. 目标和&#xff0c;474.一和零 1049. 最后一块石头的重量 II494. 目标和回溯算法动态规划 474.一和零 1049. 最后一块石头的重量 II 题目链接 视频讲解 有一堆石头&#xff0c;用整数数组 ston…

API接口变更频繁,协作效率低?试试Apipost

在团队协作开发和API管理过程中&#xff0c;API接口变更频繁、变更信息得不到及时同步且同步后沟通效率低&#xff0c;各个环节人员处理问题节奏不统一等等&#xff0c;都是在API开发中很多开发者面临的痛点。 这些痛点可能会导致工作进度受阻、出现重复动作等多个问题&#x…

化繁为简,使用Hibernate Validator实现参数校验(一)

目录 前言 环境配置 导入依赖 基础校验 校验注解 参数绑定 PathVariable RequestParam RequestBody Validated Valid 单参校验 对象校验 分组校验 顺序校验 前言 在之前的悦享校园的开发中使用了SSM框架&#xff0c;由于当时并没有使用参数参数校验工具&#xf…

如何向学校图书馆推荐数据库?

学校图书馆在满足师生学习和研究需求方面起着至关重要的作用。作为一名学生或研究员&#xff0c;您可能会意识到某些数据库对于学校的教学和研究至关重要。遇到拥有优质数据的数据库如何向学校图书馆推荐呢&#xff1f; 一、了解学校需求。 在向学校图书馆推荐数据库之前&…

WMS精细化库存管理

在现代供应链管理中&#xff0c;仓储和库存管理起着至关重要的作用。仓库管理系统&#xff08;WMS&#xff09;作为一种关键工具&#xff0c;通过精细化库存管理&#xff0c;提高了仓库操作的效率和准确性。 一、概述WMS精细化库存管理 WMS精细化库存管理是指利用先进的信息技…

【1++的数据结构】之map与set(一)

&#x1f44d;作者主页&#xff1a;进击的1 &#x1f929; 专栏链接&#xff1a;【1的数据结构】 文章目录 一&#xff0c;关联式容器与键值对二&#xff0c;setset的使用 三&#xff0c;mapmap的使用 四&#xff0c;multiset与multimap 一&#xff0c;关联式容器与键值对 像l…

linux文本三剑客

linux文本三剑客 1、grep2、sed 1、grep 过滤 参数用法作用-igrep -i STRING xxx.txt从xxx.txt文件查找不区分大小写STRING-wgrep -w STRING xxx.txt精确匹配STRING-egrep -e STRING1 -e STRING2 xxx.txt查找多个STRING行-ngrep -n STRING xxx.txt查看STRING 在第几行-vgrep …