Oracle文库
文章平均质量分 52
Oracle理论,实践笔记
smileNicky
优秀
展开
-
Oracle SQL统计各单位及其子级单位用户总数
Oracle SQL统计各单位及其子级单位用户总数。业务场景:最近帮同事写一个sql,业务是统计各个单位及其子单位用户总数,听起来是挺容易的,所以拿起键盘就是敲原创 2021-06-11 23:14:40 · 3630 阅读 · 2 评论 -
Oracle系列之add_months简介以及用法归纳教程
Oracle系列之add_months简介以及用法归纳教程,最近遇到一个SQL统计,需要遇到获取某个日期n个月后的日期,比如统计入职时间超过2年的员工信息,如果不依靠Oracle函数,自己去写有点麻烦,不过通过网上资料,找到Oracle官方提供的add_months函数原创 2021-03-23 10:52:11 · 18614 阅读 · 4 评论 -
Oracle SQL调优系列之SQL Monitor Report
Oracle调优之SQL Monitor Report查看所有的sql monitor report select dbms_sqltune.report_sql_monitor from dual;查看某个sql的sql monitor report SELECT DBMS_SQLTUNE.report_sql_monitor(sql_id => '2rjh5d5k2yujz', type => 'TEXT') from dual;查看某个sql的整体性能 SELEC原创 2020-06-19 15:23:36 · 4738 阅读 · 0 评论 -
Oracle SQL调优系列之看懂执行计划explain
Oracle调优之看懂Oracle执行计划1、写作前言2、什么是执行计划?1、写作前言之前曾经拜读过《收获,不止sql调优》一书,此书是国内DBA写的一本很不错的调优类型的书,是一些很不错的调优经验的分享。虽然读了一遍,做了下读书笔记,觉得很有所收获,但是到实际的实践中觉得还是很缺实践。刚好最近又有一次sql调优培训活动,去参加后,重新复习Oracle执行计划,所以整理资料,做成笔记分享出来2、什么是执行计划?执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述declare b1原创 2020-06-18 10:49:02 · 10593 阅读 · 6 评论 -
Oracle应用之批量递增更新数据脚本
/* 查询max值*/select max(to_number(replace(t.user_num, 'Z', ''))) from base_user t where t.user_num like 'Z%';/* Create sequence,start with改为max值 */create sequence user_num_base_userminvalue 1maxvalu原创 2020-05-18 13:31:19 · 3300 阅读 · 0 评论 -
Oracle基础之保留字和关键字
Oracle基础之保留字和关键字在Oracle之中,有分为保留字和关键字,所谓关键字就是Oracle中有实际意义的,而保留字(比如DESC、ORDER等等)是Oracle中不能随便使用的,比如不能随便用来做表的列名,当然关键字(比如KEY等等)也是不推荐的,不过使用的话是不会报错的,而保留字被使用不当的话是会报错的然后如何区分保留字和关键字?Oracle中可以通过查询v$reserved_wo...原创 2020-01-11 17:13:56 · 6713 阅读 · 1 评论 -
Oracle SQL调优系列之no_unnest和unnest用法简介
Oracle调优之子查询嵌套本博客介绍Oracle SQL调优的一种常用也是很实用的方法,也即/*+no_unnest */和/+ unnest/,介绍Oracle 的/*+unnest /、/+ no_unnest */ `之前,先介绍一下Hint。Hint对于开发人员来说,可能不是很熟悉,但是对于DBA来说,Hint可是一种调优的利器,Hint 是Oracle 提供的一种SQL语法,是or...原创 2020-01-11 16:43:26 · 7302 阅读 · 0 评论 -
Oracle基础之define用法简介教程
继上一篇博客Oracle绑定变量学习笔记,再写一篇define变量的简单教程文章目录1、define常量用法2、&和&&符号用法1、define常量用法注意:define常被误解为定义变量,其实不然,define定义的是字符常量,define定义一下常量,然后用&或者&&符号进行引用环境准备,先建表来实验:create table t as...原创 2019-09-20 11:39:44 · 5963 阅读 · 0 评论 -
Oracle SQL调优系列之绑定变量用法简介
继上一篇博客Oracle的cursor学习笔记:[Oracle的游标Cursor原理简介](https://smilenicky.blog.csdn.net/article/details/99946785),再介绍oracle的绑定变量介绍绑定变量之前,先介绍SQL执行过程和硬解析的概念:执行sql的过程,会将sql的 /*通过性能视图查询*/select a.*, b.name from v$sesstat a, v$statname b where a.stat原创 2019-09-20 11:39:05 · 3467 阅读 · 0 评论 -
Oracle SQL调优系列之cursor学习笔记
文章目录一、oracle库缓存1.1、库缓存简介1.2、相关概念1.3、库缓存结构1.4、sql执行过程简介二、oracle cursor2.1、cursor分类2.2、shared cursor2.3、session cursor2.4、sql执行过程最近在看《基于oracle的sql优化》一书,并做了笔记一、oracle库缓存1.1、库缓存简介介绍oracle cursor(游标)之前...原创 2019-08-23 21:06:00 · 2887 阅读 · 0 评论 -
oracle应用导入Excel表文本数据
首先导Excel表数据原创 2019-08-23 21:05:08 · 3149 阅读 · 0 评论 -
Oracle基础之创建设置查询权限用户
用户创建的可以参考博客:https://blog.csdn.net/u014427391/article/details/84889023Oracle授权表权限给用户:* 语法:grant [权限名(select|insert |update|delete|all)] on [表名] to [用户名]* 例子:给user1授权查询table1的权限:`grant select on table1 to user1;`不过上面的有点麻烦,假如表很多的话,或许可以用游标试验,如果对用户表权限不是原创 2019-08-10 09:48:07 · 5653 阅读 · 0 评论 -
oracle应用之使用sequence批量写数据
本博客是对之前写的博客Oracle批量新增更新数据的补充,oracle的知识真是多,其实要学精任何一门知识都是要花大量时间的,正所谓:学如逆水行舟,不进则退先介绍oracle sequence的一些知识,sequence顾名思义,就是创建一个序列,这个序列没调一次就会自动加,利用它这个特性,我们显然可以用来写一些批量脚本(1)sequence用法oracle sequence的基本语法...原创 2019-07-10 21:25:58 · 2992 阅读 · 0 评论 -
oracle应用之聚合函数XMLAGG用法简介
XMLAGG函数语法基本如图,select t.item, RTRIM(XMLAGG(XMLELEMENT(e, t.rs_name, ',').extract('//text()')) .getClobVal(), ',') 材料名称 from t_itm_rcv_stuff t;...原创 2019-07-10 21:25:37 · 17420 阅读 · 0 评论 -
Oracle应用之insert all用法简介
insert all是oracle中用于批量写数据的现在直接通过例子学习一下,比较简单直观,例子来自《收获,不止SQL优化》一书环境准备create table t as select object_name,rownum as object_idfrom dba_objects where rownum<=10;创建两张测试表,不用写数据create table t1 as ...原创 2019-07-04 22:11:50 · 2960 阅读 · 0 评论 -
Oracle应用之分组函数之ROLLUP用法
rollup函数本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种环境准备create table dept as select * from scott.dept;create table emp as select * from scott.emp;业务场景:求各部门的工资总和及其所有部门的工资总和这里可...原创 2019-07-03 21:45:03 · 3841 阅读 · 0 评论 -
Oracle SQL调优系列之表连接学习笔记
文章目录一、表连接类型1.1 内连接1.2 外连接二、表连接方法2.1 表连接方法分类2.2 表连接方法特性区别一、表连接类型表连接类型可以分为:内连接、外连接,在看《收获,不止sql优化》一书并做了笔记1.1 内连接内连接:指表连接的结果只包含那些完全满足连接条件的记录。下面学习一下内连接的,给个例子,这里创建两张表,然后用内连接方式查询,看看例子:SQL>select * fr...原创 2019-06-24 09:28:17 · 2474 阅读 · 0 评论 -
Oracle SQL调优系列之索引知识学习笔记
索引由根块(Root)、茎块(Branch)、叶子块(Leaf)组成,其中叶子块主要存储索引列具体值(Key Column Value)以及能定位到数据块具体位置的Rowid,茎块和根块主要保存对应下级对应索引,如图,图来自《收获,不止SQL优化》一书索引特性:索引本身是有序的索引本身能存储列值...原创 2019-06-16 22:06:10 · 3149 阅读 · 1 评论 -
oracle细节之like模糊查询不能走索引?
这里要纠正一个网上很多教程说的模糊匹配不能走索引的说法,因为在看《收获,不止SQL优化》一书,里面举例说到了,并且自己也跟着例子实践了一下,确实like一些特殊情况也是可以走索引的例子来自《收获,不止SQL优化》一书,实践准备://建表,注意要非空数据drop table t purge;create table t as select * from dba_objects where o...原创 2019-06-07 21:29:31 · 6957 阅读 · 1 评论 -
Oracle应用之安全等保加密存储
业务场景:在做安全等保问题,需要将原来保存的用户明文密码改成md5加密的密文密码,数据库是Oracle的首先Oracle要管理员账号登录才可以调md5函数,具体函数是DBMS_OBFUSCATION_TOOLKIT.MD5,网上很多教程都是基于这个函数然后进行封装,代码如CREATE OR REPLACE FUNCTION MD5(passwd IN VARCHAR2)RETURN V...原创 2019-06-07 10:26:26 · 3927 阅读 · 0 评论 -
Oracle SQL调优系列之表设计与性能
在看《收获,不止sql优化》一书,并做了笔记,本博客介绍一下一些和调优相关的表比如分区表、临时表、索引组织表、簇表以及表压缩技术分区表使用与查询频繁而更新数据不频繁的情况,不过要记得加全局索引,而不加分区索引,分区类型:分区分为范围分区、列表分区、HASH分区、组合分区四种,用了分区表,查询时就定位到对应的区,而不用全表,所以查询效率比普通表好,当然有很多细节,还是建议看《收获,不止sql优化》...原创 2019-05-18 15:48:15 · 2557 阅读 · 0 评论 -
Oracle SQL调优系列之分区表用法
文章目录一、分区表简介二、分区表优势三、分区表分类3.1 范围分区3.2 列表分区3.3 散列分区3.4 组合分区四、分区相关操作五、分区相关查询附录:分区表索引失效的操作一、分区表简介分区通过让您将它们分解为更小且更易于管理的分区(称为分区)来解决支持非常大的表和索引的关键问题。不需要修改SQL查询和DML语句以访问分区表。但是,在定义分区之后,DDL语句可以访问和操作个别分区,而不是整个...原创 2019-05-18 15:47:34 · 3419 阅读 · 0 评论 -
oracle应用之批量新增更新数据
本博客介绍一下Oracle批量新增数据和更新数据的sql写法,业务场景是这样的,往一张关联表里批量新增更新数据,然后,下面介绍一下批量新增和更新的写法:批量新增数据对于批量新增数据,介绍两种方法(1)命令窗口执行的一种需要在命令窗口执行的,Oracle数据库可以使用sqlplus或者plsql developer客户端软件可以使用sqlplus工具登录,进入数据库sqlplus / a...原创 2019-05-12 00:11:12 · 9092 阅读 · 0 评论 -
Oracle应用之sys_connect_by_path用法
sys_connect_by_path函数是为了配合递归查询的函数,递归查询可以参考我之前的博客:https://blog.csdn.net/u014427391/article/details/84996259,sys_connect_by_path函数是将递归查到的数据加上特定的符号,看起来更明显connect by递归查询配合sys_connect_by_path基本语法是:select...原创 2019-05-11 14:53:00 · 4257 阅读 · 0 评论 -
Oracle SQL调优系列之逻辑结构学习笔记
数据库(Database)由若干表空间(Tablespace)组成,表空间(Tablespace)由若干段(Segment)组成,段(Segment)由若干区(Extent)组成,区(Extent)又由若干块(Block)组成原创 2019-05-11 13:55:23 · 2486 阅读 · 0 评论 -
Oracle SQL调优系列之体系结构学习笔记
Oracle体系结构由实例和一组数据文件组成,实例由SGA内存区,SGA系统结构关系图如:原创 2019-05-08 15:20:18 · 2857 阅读 · 0 评论 -
Oracle SQL调优系列之物化视图用法简介
文章目录一、物化视图简介二、实践:创建物化视图一、物化视图简介物化视图分类物化视图分类,物化视图语法和as后面的sql分为:(1) 基于主键的物化视图(主键物化视图)(2)基于Rowid的物化视图(Rowid物化视图)本博客介绍一下Oracle的物化视图,物化视图(Materialized view)是相对与普通视图而已的,普通视图是伪表,功能没那么多,而物化视图创建是需要占用一定...原创 2019-05-03 00:03:58 · 2627 阅读 · 0 评论 -
Oracle SQL调优系列之虚拟索引用法简介
本博客记录一下Oracle虚拟索引的用法,虚拟索引是定义在数据字典中的伪索引,可以说是伪列,没有修改的索引字段的。虚拟索引的目的模拟索引,不会增加存储空间的使用,有了虚拟索引,开发者使用执行计划的时候也不需要等索引完全创建好才可以看到效果ok,这里找张用户表来测试一下虚拟索引//设置执行计划SQL> set autotrace traceonly//查询用户,因为没加索引,所以是全...原创 2019-05-03 00:03:11 · 2481 阅读 · 0 评论 -
Oracle调优之Hint用法整理笔记
/*+ result_cache */设置缓存,特殊业务场景才可以使用/*+ connect_by_filtering */强制使用联合型的关联型(CONNECT BY WITH FILTERING),ps:详情见:https://smilenicky.blog.csdn.net/article/details/89604262/*+ no_unnset */双重否定表示肯定,即让子查...原创 2019-05-01 14:50:22 · 5851 阅读 · 0 评论 -
oracle部署之plsql developer编码设置
oracle设置编码 select userenv('language') from dual;设置oracle数据库编码,注意不要顺便改,除非是空库,修改会清空数据库的表等等例子,这里是修改编码为UTF8SQL*Plus: Release 11.2.0.1.0 Production on 星期三 5月 1 10:42:52 2019Copyright (c) 1982, ...原创 2019-05-01 12:53:44 · 4662 阅读 · 0 评论 -
Orace SQL调优系列之执行计划学习笔记
整体性能分析AWR、ASH、ADDM、AWRDD整体分析调优工具AWR:关注数据库的整体性能的报告;ASH:数据库中的等待事件与哪些SQL具体对应的报告;ADDM:oracle给出的一些建议AWRDD:Oracle针对不同时段的性能对比报告AWRSQRPT:oracle获取统计信息与执行计划不同场景对应工具局部分析调优工具:explain plan forset aut...原创 2019-04-27 22:29:35 · 4280 阅读 · 0 评论 -
Oracle SQL调优系列之AWRDD报告简介
我写的SQL调优专栏:https://blog.csdn.net/u014427391/article/category/8679315对于局部的,比如某个页面列表sql,我们可以使用Oracle的执行计划进行sql调优,但是对于整个系统来说,你可以知道哪些sql比较耗时?当然可以通过查Oracle的共享池得到,不过Oracle系统本身就提供了几种性能分析报告,比如AWR、ASH、ADDM、AW...原创 2019-04-21 15:29:31 · 2916 阅读 · 1 评论 -
Orace SQL调优系列之ADDM报告简介
我写的SQL调优专栏:https://blog.csdn.net/u014427391/article/category/8679315对于局部的,比如某个页面列表sql,我们可以使用Oracle的执行计划进行sql调优,但是对于整个系统来说,你可以知道哪些sql比较耗时?当然可以通过查Oracle的共享池得到,不过Oracle系统本身就提供了几种性能分析报告,比如AWR、ASH、ADDM、AW...原创 2019-04-21 14:15:31 · 3246 阅读 · 0 评论 -
Oracle SQL调优系列之AWRSQRPT报告简介
我写的SQL调优专栏:https://blog.csdn.net/u014427391/article/category/8679315对于局部的,比如某个页面列表sql,我们可以使用Oracle的执行计划进行sql调优,但是对于整个系统来说,你可以知道哪些sql比较耗时?当然可以通过查Oracle的共享池得到,不过Oracle系统本身就提供了几种性能分析报告,比如AWR、ASH、ADDM、AW...原创 2019-04-21 14:14:46 · 3750 阅读 · 0 评论 -
Oraccle SQL调优系列之ASH简介
我写的SQL调优专栏:https://blog.csdn.net/u014427391/article/category/8679315对于局部的,比如某个页面列表sql,我们可以使用Oracle的执行计划进行sql调优,但是对于整个系统来说,你可以知道哪些sql比较耗时?当然可以通过查Oracle的共享池得到,不过Oracle系统本身就提供了几种性能分析报告,比如AWR、ASH、ADDM等等报...原创 2019-04-20 17:36:02 · 3090 阅读 · 0 评论 -
Oracle SQL调优系列之AWR报告简介
文章目录AWRASHADDMAWRSQRPTAWR进入数据库sqlplus / as sysdba查看用户show parameter db_name开始压测后执行exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();可以通过dba_hist_wr_control查看当前的配置情况,当前awr为每1小时做一次数据快照,保留时间为7天...原创 2019-04-20 15:42:36 · 4951 阅读 · 0 评论 -
oracle和mysql批量Merge对比
orm框架采用mybatis,本博客介绍一下批量合并merge用oracle和mysql来做的区别,oracle merge合并更新函数的详细介绍可以参考我以前的博客:https://blog.csdn.net/u014427391/article/details/87898729oracle方法:<!-- 批量更新新增关联信息 oracle--> <insert id=...原创 2019-04-16 12:30:47 · 2717 阅读 · 0 评论 -
Oracle和Mysql获取uuid的方法对比
场景:orm框架用mybatis,需要往数据库新增一条数据,用Oracle和mysql数据库分别需要怎么实现?mysql方法,用mysql提供的uuid函数<insert id="add" parameterType="com.t.model.ActionModel" databaseId="mysql"> insert into t_config ...原创 2019-04-13 23:22:02 · 2705 阅读 · 1 评论 -
Oracle SQL调优系列之优化器基础知识
文章目录一、访问数据的方法1、直接访问数据1.1 全表扫描1.2 ROWID扫描2、访问索引2.1 索引唯一扫描2.2 索引范围扫描2.3 索引全扫描2.4 索引快速全扫描2.5 索引跳跃式扫描拓展补充本博客介绍一下属于oracle优化器范畴的一些基础知识,访问数据的方法,分为直接访问数据的方法和访问索引的方法两种,然后有了这些基础知识后,可以参考学习我的另外一篇博客:Oracle优化器简介,对...原创 2019-03-19 23:03:45 · 2995 阅读 · 0 评论 -
Oracle SQL调优系列之访问数据的方法
本博客介绍oracle优化器的一些基本概念原创 2019-03-02 23:36:18 · 2682 阅读 · 0 评论