- 博客(101)
- 收藏
- 关注
原创 oracle常用运维脚本(查进程、查表空间、查表大小、查锁对象情况)
【代码】oracle常用运维脚本(查进程、查表空间、查表大小、查锁对象情况)
2023-11-19 08:58:05 244
原创 Oracle12C列表分区Auto-List Partitioning
Oracle可以将大表或索引分成若干更小、更方便管理的部分,每一部分成为一个分区,这样的表称为分区表。官方文档通常当表的大小超过2GB,或对于OLTP系统,当表的记录超过1000万时,都应考虑对表进行分区。在12.2引入的新特性中-Auto-List Partitioning可以针对新的列表值,进行自动的分区创建,从而减少了维护的复杂性。如果系统故障只影响表的一部分分区,那么只有这部分分区需要修复,可能比整个大表修复花的时间更少。如果表的一个分区由于系统故障而不能使用,那么表的其余好的分区仍然可以使用。
2023-11-17 15:58:04 339
原创 update与merge基本语法规则、异同点、使用场景
2、“UPDATE A SET i=(SELECT i FROM b WHERE a.id=b.id) WHERE NOT EXISTS (SELECT 1 FROM b WHERE a.id=b.id)”NOT exists部分需要额外消耗,可以用merge避免。3、修改一条已有的数据:使用update的时候不管出现什么情况都会去修改(即覆盖原有数据),而merge会去查询原有数据,如果一样的话,不会取修改,只有出现不同的内容的时候才会取修改。2、merge只需要遍历一次表,可以更新可以插入。
2023-11-17 11:30:33 972
原创 Oracle递归查询树形数据
prior跟子节点列sub_id放在一起,则往叶子节点方向遍历。parent_id、id两列谁放在“=”前都无所谓,关键是prior跟谁在一起。如果想查询某个节点的父节点或者子节点,一般通过表自身连接完成,但如果该节点的子节点还有很多层结构,就需要使用递归调用。但如果数据量特别大,递归的次数指数级上升,而且查询数据库的次数也指数级上升,导致程序和数据库压力剧增,查询时间特别长。如果要查父节点,这里可以用子节点的列,反之则反。sys_connect_by_path:递归路径。3、查询指定节点的根节点。
2023-11-09 18:04:51 979
原创 oracle数据导出exp导入imp
Oracle的exp/imp命令用于实现对数据库的导出/导入操作;exp命令用于把数据从远程数据库服务器导出至本地,生成dmp文件;imp命令用于把本地的数据库dmp文件从本地导入到远程的Oracle数据库。
2023-11-08 17:48:04 1573
原创 oracle查询前几条数据的方法
在Oralce中实现select top N:由于Oracle不支持select top 语句,所以在oracle中经常是用order by 跟rownum的组合来实现select top n的查询
2023-11-08 17:31:37 2741
原创 数仓增量表、全量表、快照表、拉链表
(3)当前记录存的是当前时间之前的所有历史记录的最后变化量(总量)(2)每次上报的数据都是所有的数据(变化的+没有变化的)(1)记录一个事物从开始,一直到当前状态的所有变化的信息。(2)每次上报的数据是所有的数据(变化的+没有变化的)增量表:新增数据,增量的数据是上次导出之后的新数据。快照表:按日分区,记录截止数据日期的全量数据。(2)拉链表每次上报的都是历史记录的最终状态。(2)增量表,只报变化量,无变化不用报。全量表:每天的所有的最新状态的数据。(1)快照表,有无变化,都要报。
2023-11-08 17:26:06 889
原创 Oracle 三种分页方法(rownum、offset和fetch、row_number() over())
Oracle 三种分页方法(rownum、offset和fetch、row_number() over())
2023-11-08 16:09:23 3338
原创 CAP、ACID、Base理论
CAP, ACID 和 BASE 是数据库系统中的三个重要概念,它们分别描述了在分布式系统和数据库事务处理中需要考虑的一些重要属性。
2023-06-10 22:33:43 300
原创 Oracle索引类型、应用场景以及索引常见问题处理
Oracle数据库支持多种类型的索引,每种类型的索引都适合于不同的应用场景。常见4种索引:B-Tree索引(B树索引)、Bitmap索引(位图索引)、function-Based索引、Partitioned索引(分区索引),常见的索引相关问题和可能的解决方案。
2023-06-10 22:18:32 3199
原创 Linux目录结构
工作中只能远程登录,只看得见控制台,看不见界面,所以要对目录有印象每个目录里面放什么文件都是规定好了的linux会把硬件变成文件来管理,在linux的世界里,一切皆为文件/:根目录1、root(常):超级用户目录,root用户的主目录。2、home(常):用户的属主目录,一个用户登录系统,进入后,所处的位置就是/home。root用户的家目录是/root3、bin(常):常用的指令就放在这里面,存放二进制可执行命令的目录4、etc(常):系统管理、配置文件存放目录(大多数都是纯文本文件)。比如
2022-06-26 18:06:36 3441
原创 Hive集群部署启动Zookeeper&Hadoop&MySQL&Hive操作详细步骤
Hive集群部署启动Zookeeper&Hadoop&MySQL&Hive操作详细步骤
2022-06-19 21:20:45 3749 6
原创 Oracle典型的表连接类型(sort merge join(SMJ) 排序-合并连接、nested loops(NL) 嵌套循环、hash join 哈希连接)
1、sort merge join(SMJ) 排序-合并连接连接过程:将两个表排序,然后再进行join①首先生产drving table【驱动表】需要的数据,然后对这些数据按照连接操作关联列进行排序;②然后生产probed table【被探查表】需要的数据,然后对这些数据按照与driving table对应的连接操作列进行排序;③最后两边已经排序的行被放在一起执行合并操作。应用场景:①排序是一个费时、费资源的操作,特别对于大表。所以SMJ通常不是一个特别有效的连接方法,但是如果driving
2022-02-02 12:23:50 2323
原创 Oracle执行计划-访问数据的存取方法(3种)
1、Full Table Scans,FTS(全表扫描)为实现全表扫描,oracle读取表中所有行,并检查每一行是否满足语句的where限制条件。利用多块读(一个多块读操作可以使一个I/O能读取多块数据块)的方法可以十分高效地实现全表扫描,通过设置db_block_multiblock_read_count可以设置一次I/O能读取的数据块个数,从而减少全表扫描是的I/O总块数,也就是通过预读机制将要访问的数据块预先读入内存中。只有在全表情况下才能使用多块读操作。使用全表扫描的前提:在较大的表上不建议使用
2022-01-29 17:23:29 1567
原创 《货币金融学》期末复习题
一、名词解释:劣币驱逐良币:是指当一个国家同时流通两种实际价值不同而法定比价不变的货币时,实际价值高的货币(良币)必然要被熔化、收藏或输出而退出流通领域,而实际价值低的货币(劣币)反而充斥市场。无限法偿:货币具有的法定支付能力,指不论用于何种支付,不论支付数额有多大,对方均不得拒绝接受,是有限法偿的对称国家信用:是国家及其附属机构作为借贷主体,根据信用原则向社会公众或国外政府举债的一种形式。商业信用:是指银行及其他金融机构以货币形式提供给企业或者个人的信用。金融市场:以金融资产为交易对象,以金融资
2021-02-20 08:19:45 28417
原创 数据仓库三种基础粒度
数据仓库三种基础粒度:事务、定期快照和累计式快照这三种测量类型是用于任务指定事实表的粒度的选项。这三种都是很有用的,并且通常需要最少两种类型才能得到业务的完整图景。1、代表空间和时间上某个点的事务粒度。事务粒度的事实表代表着即将发生的原子操作(记录仅在事务发生时才存在)。2、代表不断重复的有规律时间段的定期快照粒度。定期快照粒度的事实表代表着预定义的时间段。3、代表一个严格定义了开始和结束时间的实体的整个生命周期的累计式快照粒度。累计式快照粒度的事实表代表着一个不确定的时间段从开始到当前时间为止的整
2021-02-20 08:16:02 643
原创 如何判断一个字符是否含有中文汉字
如何判断一个字符是否含有中文汉字可以使用LENGTH、LENGTHB和TO_SINGLE_BYTE函数来解决这个问题。LENGTH:返回以字符为单位的长度LENGTHB:返回以字节为单位的长度TO_SINGLE_BYTE:将字符串中的多字节转化为单字节字符。–测试原数据prompt Importing table TEST…set feedback offset define offinsert into TEST (NAME)values (‘123’);insert into T
2020-09-10 13:00:25 616
原创 Oracle限制返回行数(Rownum)与随机返回n条记录(dbms_random)
Oracle限制返回行数(Rownum)与随机返回n条记录(dbms_random)1、Rownum限制返回的行数Rownum依次对返回的每一条数据做一个标识,使用Rowmun能限制返回的行数。例如,返回2条数据不能直接用“rownum = 2”,要使用“rownum <= 2”,因为Rownum是依次对数据做标识的,就像上学时依据考分排名一样,需要有第一名,后面才会有第二名。所以,要先...
2019-09-08 18:42:59 3030
原创 季度取上季度正常日期(年月日)取上季度
–季度取上季度 /思路:把原来季度值(如:201803–)转换成正常的8位正常的日期(如:20180301),再在经常的日期上进行减少3月,最后再把处理后的结果转换过来。/select to_char(last_day(add_months(to_date(substr('201803--',0,4)||lpad(substr('201803--',5,2)*3,2,'0')||'01', ...
2018-07-07 12:18:38 2543
原创 ORA-02266 表中的唯一 主键被启用的外键引用
1、根据提示找出外键 delete U_BASE_CONFIG; 2、通过外键名称找到对应的子表SELECT *FROM ALL_CONSTRAINTS AWHERE A.CONSTRAINT_TYPE = 'R'AND OWNER = 'FMSS'AND A.CONSTRAINT_NAME LIKE '外键名%'3、使子表U_AUTH_RES_MAP的外键约束失效...
2018-07-07 12:16:52 1271
原创 Oracle 索引 index
索引是数据库对象,通过使用快速路径访问方法快速定位数据,减少了磁盘的I/O, 用来加速对表的查询速度(相当于书本的目录)。与表独立存放,但需要依附于表,是在表的基础上创建的,但由Oracle数据库自动维护的。不适合创建索引的情况1、很小数据量的表2、在查询中不常用来作为查询条件的列3、查询最终得到的结果集很大4、频繁更新的表(索引对于DML操作是有部分负面影响的)5、索引列作为表达式的一部
2017-01-23 17:52:57 597
原创 Oracle 序列 sequence
序列是一种用于产生唯一数字列值得数据库对象,一般使用序列自动地生成主码键或唯一键值,序列可以是升序或降序。NEXTVAL和CURRVAL伪列序列特点可以自动产生唯一数值;可被多个用户共享;典型应用是生成主键值,用于标识记录的唯一性,但不保证其值是连续的,可能是中间回滚了;使用缓存加速序列的访问速度。 创建序列、序列使用、修改序列、删除序列
2017-01-23 17:46:43 573
原创 Oracle视图
视图:虚表,是一个命令的查询,用于改变基表的数据的显示,简化查询;访问方式与表相同,同样可使用查询语句。视图特点:简化查询(把复杂的SQL语句写成视图,别人直接用视图来查询即可,无须再写复杂的SQL语句)隐藏数据(不是把整张表的数据给别人,而是通过指定字段弄成视图,把视图给别人,让别人查视图)视图操作步骤创建视图、查看视图、修改视图、视图上执行DML操作
2017-01-23 17:38:10 429
原创 Oracle的集合运算
一、所谓的集合运算 集合运算是用来把两个或多个查询的结果集做并、交、查的集合运算,包含集合运算的查询称为复合查询。二、集合运算的几种方式1、联合运算(union) [去重 不排序] 联合运算是从两个查询返回除去重复值后的结果。2、完全联合运算(union all)[不去重 升序] 完全联合运算是从每个查询返回包括所有重复的结果。 注意:
2016-12-30 09:10:35 6193
原创 Oracle在DOS中解锁用户、修改密码思路和具体过程
1、以管理员用户的身份登录sqlplus / as sysdba2、查看系统用户的名称和状态 select username,account_status from dba_users;3、解锁(以scott用户为例):alter user 用户名 account unlockalter user scott account unlock;4、查看结果 select username,account
2016-12-30 08:59:32 1381
原创 Oracle的存储过程
一、存储过程定义 存储过程,是命名的PL/SQL块、能够接受参数、能够被重复调用、用于某项操作、存储在数据库中(凡是create出来的东西都是存在数据库中的)的子程序。二、存储过程与函数的唯一区别 存储过程无返回值,而函数有返回值。三、存储过程实例讲解 (一)、创建存储过程CREATE PROCEDURE PRINTLN(STR VARCHAR) ASBEGIN DBMS_OUTPUT
2016-12-11 10:33:19 636
原创 Oracle存储过程in、out、in out 模式参数
1、in模式参数 输入模式的参数,用于接收参数,在子程序内部,不能进行修改。默认的参数模式:in。--定义打印的存储过程CREATE OR REPLACE PROCEDURE println (str VARCHAR)ASBEGIN dbms_output.put_line(str); END;--定义测试in模式的存储过程CREATE OR REPLACE PROCEDURE p
2016-11-14 11:59:38 17796 4
转载 谈谈SQL中where 1=1和0=1的作用
一、where 1=1 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句,用于拼接条件。string MySqlStr=”select * from table where 1=1 ; if(Age.Text.Lenght>0) { MySqlStr=MySqlStr+“and Age=“+“'Age.Text'“; } if(Address.Tex
2016-11-04 16:40:37 986
原创 你不知道的JavaScript学习笔记1
JavaScript 是一种解释型语言,不是 C++或 Java 那样的编译语言。JavaScript 指令以普通文本形式传递给浏览器,然后依次解释执行。它们不必首先“编译” 成只有计算机处理器能够理解的机器码,这让 JavaScript 程序很便于阅读,能够 迅速地进行编辑,然后在浏览器里重新加载页面就可以进行测试。 JavaScript 是一种能够让 Web 页面更具有交互性的脚本
2016-10-20 09:18:02 456
原创 HTML form 表单提交方式get和post的区别
method属性规定如何发送表单的数据。有两种提交的方法分别为get和post。1、get:提交的数据量要小于1024字节,表单提交时表单域数值(表单请求的信息:账号、密码…)将在地址栏显示。<!DOCTYPE html><html><head> <title>测试get提交数据方法</title></head><body> <center> <form ac
2016-10-19 13:55:09 34078 2
原创 你不知道的Java学习笔记24-- 线程同步
线程同步1、线程同步就是多个线程并发地访问同一个数据。 2、多线程就是同时去做同样的事情,目的是提高程序的运行效率。通过“售票”模拟线程同步/* * 通过"卖票"模拟线程同步 */public class TestTicket { public static void main(String[] args) { //创建实现类
2016-10-06 09:00:19 379
原创 你不知道的Java学习笔记23-- 线程优先级
1、setPriority(newPriority);设置线程的优先级。2、Java线程的优先级用1-10的整数来表示,越小则优先级越低。3、Thread类的三个常量,表示常用的线程优先级:Thread.MIN_PRIORITY //1Thread.NORM_PRIORITY //5Thread。MAX_PRIORITY //104、线程优先级方法 getPriority():确定线程的
2016-10-05 18:27:45 473
原创 你不知道的Java学习笔记22-- 线程阻塞(线程休眠)方法
线程阻塞(线程休眠)方法一、Sleep(long millis)方法Sleep(long millis):在指定的毫秒内让当前正在执行的线程休眠(暂停执行)。sleep()让当前正在执行的线程休眠,CPU去执行其他线程,等到休眠时间结束后,该线程处于就绪状态。等待CPU的继续执行,是接着上一次的执行,而不是重新执行。/* * 测试Sleep()方法 */public class TestSle
2016-10-04 11:29:05 1145
原创 你不知道的Java学习笔记21-- 集合(Collection)
一、常量、数组、集合 常量:数据类型固定,存放个数只能有一个。 数组:数组类型固定,大小限定,存放个数可以是多个。 集合:集合相当于一个容器,用来存放一组对象的。存储数据量不限制,可以根据实际的需要进行扩展,是弹性存储空间。能存储任何类型的对象,存储数据的包容性更强。二、Java中集合框架层次结构1、Colection 相当于数组,以值(value)进行存储。2、Map 以键值(key-v
2016-10-03 17:22:49 830
原创 你不知道的Java学习笔记19-- 对象序列化
对象序列化1、序列化是对引用类型的读写操作。2、将对象从程序写入外部存储器的过程就是序列化。3、将对象从外部存储器读到程序的过程就是反序列化。import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import
2016-10-03 14:08:19 394
原创 你不知道的Java学习笔记20-- 多线程编程
一、进程与线程1、进程 针对系统而言,是操作系统中的一个执行单元。 对于Windows系统来说就是一个.exe程序。2、多进程 系统同时执行多个应用程序。 DOS单进程操作系统只能执行一个进程,一个进程执行完才能执行另一个进程。 单核CPU:每次只能执行一个程序,执行多个程序其实是在程序中不停地切换,只不过切换的速度超过了人的感知,让人觉得可以同时执行多个程序。在系统中执行的程序越多执行的
2016-10-02 21:06:50 374
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人