自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

QianXun

一位热爱sql的dba开发者

  • 博客(31)
  • 收藏
  • 关注

原创 SQL之美第一篇:组合索引巧解错误的BITMAP AND

大家好,我是千寻,一名追求SQL优化极限的开发DBA,欢迎大家一起与我共赏SQL之美妙,如有疑问,欢迎留言,共同研究,下面进入正题:问题描述:接到开发反馈,有一个SQL查询不出来结果,原因是字段【pysts_cd】是varchar2类型,去掉符号‘’ 就可以查出来结果,确认数据库没有问题数据以及各种异常数据(比如null,空值,特殊符号,都不存在)原SQL:select * from qx_prd_psch_d mwhere m.bqx_flag = 'spddqx' and...

2021-07-19 14:42:50 474

原创 详解ORACLE-HINT之pq_distribute

这次给大家说明一个新奇的hint:pq_distribute (tablename,outer_distribution inner_distribution )个人翻译:并行查询hint,用于提高并行连接性能官方文档说明:The PQ_DISTRIBUTE hint instructs the optimizer how to distribute rows of joined tab...

2019-05-30 12:07:00 1023

原创 分析函数-MAX/MIN 改写

1.MIN改写场景求每个部门工资最低的人?普通SQL:select employee_id, first_name, last_name, salary from employees a where salary = (select min(salary) from employees b where b.department_id = a.department_id);...

2019-04-24 16:53:18 273

原创 ORACLE执行计划之【MERGE JOIN ANTI】与【MERGE JOIN SEMI】

简要说明执行计划两者区别:1.SQL> ALTER TABLE DEPT ADD CONSTRAINTS PK_DEPT PRIMARY KEY (deptno);2.执行两次SQL 如下图所示:3.结果:同样的SQL,因为in与not in 执行计划走了不同的链接方式,merge join semi(也叫组合排序半连接),在外部行集,查找内部(即子查询)行集,...

2019-03-05 18:00:15 1451

原创 WIN10 安装ORACLE 11G 报错:INS-30131

今天使用公司电脑安装ORACLE 11g客户端差点翻车,联想R480默认安装 【WIN10家庭中文版】 各种不兼容欲仙欲死。话不多说,直接发解决方案:1.右键我的电脑->管理->服务与应用程序,设置SERVER与TCPIP服务为自动启动,同时查看C盘是否设置为共享文件夹,百度一堆此类方案,并没有卵用,只能做个前置确认条件吧2.修改temp环境变量:右键开始菜单--系统-...

2019-01-31 14:48:11 2315 1

转载 人生这口井,要开始挖了

 夜已深,人虽然非常疲惫,但是却无睡意,微信上的一篇文章”用下班的时间挖一口属于自己的井,省的老了没有水喝”让我无法入眠。 这篇文章的内容如下:    有两个和尚住在隔壁,每天都会在同一时间下山去溪边挑水,不知不觉己经过了五年。   突然有一天,左边这座山的和尚没有下山挑水,过了一个星期,还是没有下山挑水。   直到过了一个月,右边那座山的和尚很担心就去探望他,当他看到...

2018-12-16 14:50:07 200

转载 使用with as优化Subquery Unnesting

使用 no_unnest hint可以让执行计划产生filter,即不展开,但一般情况下使用unnest hint无法消除filter。如下SQL,找出库中非唯一索引,那么大家可能会这么写SQL:SELECT SEGMENT_NAME,SUM(BYTES/1024/1024) m FROM DBA_SEGMENTS WHERE SEGMENT_NAME NOT IN (select in...

2018-12-15 15:05:32 206

原创 Oracle 根据字段值查询其所在的表、字段(只有字段值信息,连字段类型都不知道)

今天一哥们求助,oracle的我只知道ziduan字段的值,连类型,大小设置全都不知道,如何查询到该字段所在的表,以及该字段名。以下是我编写的实际脚本:1.假设该字段是varchar2或者char类型DECLARE CURSOR cur_hh IS SELECT table_name, column_name, data_type FROM user_tab_columns; ...

2018-06-08 14:45:29 5392 5

原创 查询Oracle中带有Clob字段的表的大小

在oracle里面,由于lob字段有独立的lob segment来存储,所以查询需要DBA_SEGMENTS S, DBA_INDEXES  2张表结合才可查出结果。以下是实验SQL说明:表名:GJ_NORM_POOL表归属用户名:ORACLESELECT (SELECT NVL(SUM(S.BYTES),0)

2018-04-17 20:13:12 6180

转载 Mondrian Schema workbench工作界面 简介

Mondrian Schema workbench工作界面 简介SchemaSchema 定义了一个多维数据库。包含了一个逻辑模型,而这个逻辑模型的目的是为了书写 MDX 语言的查询语句。这个逻辑模型实际上提供了这几个概念: Cubes (立方体)、维度( Dimensions )、层次( Hierarchies )、级别( Levels )、和成员( Members )。而一个 schema 文...

2018-03-19 17:38:29 404

原创 Oracle 行迁移详解

行迁移 英文的意思是 Row movement 默认情况下,oracle数据块中的一行其生命周期内是不会发生移动的,即块的rowid不会发生改变. 但是在某些情景下,我们希望行的rowid可以发生变化,这时候我们就需要启动表的row movement特性。启用row movement特性,使用如下语句:Alter table table_name enable row movement

2017-09-22 10:32:01 8573

原创 DNS 解析流程

DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统。它用于 TCP/IP 网络,它所提供的服务是用来将主机名和域名转换为 IP 地址的工作。俗话说,DNS 就是将网址转化为对外的 IP 地址。DNS 从用户访问到响应的整个流程,如下图:第一步浏览器将会检查缓存中有没有

2017-09-21 17:36:05 289

原创 oracle随机数的用法:dbms_random.value()

需求:产生两位的随机数 FUNCTION GetNumber RETURN NUMBER IS ResultNumber NUMBER(6); BEGIN ResultNumber := CEIL(DBMS_RANDOM.VALUE() * 100); IF ResultNumber

2017-09-20 14:27:49 14706 1

原创 Oracle占比函数: oracle ratio_to_report

今天学习了一个函数ratio_to_report占比函数,这个函数有什么用呢,简单来说就是算百分比的。以下做个实验:SQL> create table emp as select * from scott.emp;Table created.SQL> select * from emp;     EMPNO ENAME      JOB

2017-09-15 18:24:12 2605

原创 Oracle 更改表名称的几种方式

1:使用命令直接修改(推荐)ALTER TABLE old_table_name RENAME TO new_table_name;(大写为系统命令)2:使用rename修改 SQL> select tname from tab ;TNAME------------------------------TESTSQL> rename test to temp ;T

2017-09-05 10:23:35 16448 1

原创 oracle的执行计划中表的链接方式介绍

在日常基于数据库应用的开发过程中,我们经常需要对多个表或者数据源进行关联查询而得出我们需要的结果集。那么Oracle到底存在着哪几种连接方式?优化器内部又是怎样处理这些连接的?哪种连接方式又是适合哪种查询需求的?只有对这些问题有了清晰的理解后,我们才能针对特定的查询需求选择合适的连接方式,开发出健壮的数据库应用程序。选择合适的表连接方法对SQL语句运行的性能有着至关重要的影响。下面我们就O

2017-08-01 15:51:05 869

原创 oracle 分页优化(stopkey)

SQL优化stopkey技术是一种预测技术,完全是为了适应大量数据的出现而出现的从名称就可以看出,stopkey就是在关键位置上停止,终止的技术,oracle这里指的就是不再继续读取剩余的数据.======================================================1.创建测试表create table vast as sel

2017-07-31 19:09:08 1240 2

转载 ORACLE Scheduler特性(12)使用Windows和Window Groups

七、使用Windows  此Windows非彼Windows,通常说的Windows是指盖首富的操作系统,而此处所说的Windows,是指SCHEDULER特性中的一个子项。在SCHEDULER中,WINDOW对应的是一个时间窗口的概念。  我们知道普通的jobs是没有运行时间管理地概念的,就是说一个job启动之后,用户只能被动地等待其执行,一直到其执行地任务完成(或DBA手动ki

2017-07-31 17:41:04 1271

转载 ORACLE Scheduler特性(11)使用Job Classes

六、使用Job Classes  Job Classes 相当于创建了一个job组,DBA可以将那些具有相同特性的job,统统放到相同的Job Classes中,然后通过对Job Class应用ORACLE中的"资源使用计划"特性,就可以对这些job执行过程中所需要的资源分配情况进行管理。1、 创建Job Classes  使用DBMS_SCHEDULER包的CREATE_

2017-07-31 17:40:00 381

转载 ORACLE Scheduler特性(10)管理Chains

5.2  管理Chains5.2.1  修改Chains属性  基本上碰到修改CHAIN属性的机率不会太大,因此确实没啥可修改的,对于CHAIN对象来说,能够修改的属性只有两个:evaluation_interval和comments,这两个参数一般情况下甚至都不会进行设置。如果你碰到了确实需要修改的情况,没问题,DBMS_SCHEDULER.SET_ATTRIBUTE过程还记的吧

2017-07-31 17:36:23 218

转载 学习ORACLE Scheduler特性(9)创建Chains

五、使用Chains  今天要来认识一位新同学:CHAIN(注意不要敲成CHINA)。CHAIN可以被视做一组Programs的复合,举个简单的例子:运行PROGRAM:A以及PROGRAM:B,如果成功的话继续运行PROGRAM:C,否则的话运行PROGRAM:D。Programs:A、B、C、D以及执行的逻辑关系就构成了一个最简单的CHAIN。  关于CHAIN的管理操作比较多

2017-07-31 17:30:07 352

转载 学习ORACLE Scheduler特性(8)Application抛出的Events

4.2 Application抛出的Events  首先要说明,这里所说的Application是个代词,即可以表示ORACLE数据库之外的应用程序,也可以是ORACLE数据库中的PROCEDURE等对象,总之你就将其理解成用户自己创建的对象就好了。  Scheduler 能够抛出Events让外部应用处理,外部的应用也可以抛出Events让Scheduler启动job处理,不过并

2017-07-31 17:29:33 299

转载 ORACLE Scheduler特性(7)Scheduler抛出的Events

4.2 Application抛出的Events  首先要说明,这里所说的Application是个代词,即可以表示ORACLE数据库之外的应用程序,也可以是ORACLE数据库中的PROCEDURE等对象,总之你就将其理解成用户自己创建的对象就好了。  Scheduler 能够抛出Events让外部应用处理,外部的应用也可以抛出Events让Scheduler启动job处理,不过并

2017-07-31 17:27:29 541

转载 ORACLE Scheduler特性(6)设置Repeat Interval参数

3.3 设置Repeat Interval  Job 和Schedule中REPEAT_INTERVAL参数都是用来控制执行的频率或周期,虽然说周期是一个时间性概念,不过REPEAT_INTERVAL指定的时候并不是一个时间值,而是由一组关键字描述的时间。  除了前面介绍Job和Schedule的REPEAT_INTERVAL参数时,提到该参数拥有FREQ以及INTERVAL两个关

2017-07-31 17:21:51 870

转载 ORACLE Scheduler特性(5)Schedules调度Programs执行的Jobs

3.2 Schedules调度Programs执行的Jobs  通过schedule调度program的执行的job,看到这样的形容是不是让你彻底晕头了,就说明你还是没搞明白10g中SCHEDULERS特性管理的jobs的含意,让三思更直白地给你描述描述。10g版本中SCHEDULER将JOB分成了多个部分,program负责做什么,schedule负责啥时候做,job就简单了,一个字:做

2017-07-31 17:21:14 344

转载 ORACLE Scheduler特性(4)创建和管理Schedule

三、使用Schedules  10g 中新推出的SCHEDULER可能确实会让很多初接触的朋友感觉晕头晕脑,相比之前的jobs,SCHEDULER中新增的概念太多。比如说jobs,仍然可以理解成之前版本中的jobs,不过功能更加强大(注意10g中也仍然可以使用普通jobs,这是废话,相信看本篇文章的朋友目前应该还是这样在用),比如说program,指的是运行的程序(把要做什么单提出来了),

2017-07-31 17:20:39 599

转载 ORACLE Scheduler特性(3)使用Programs

二、使用Programs  在论坛中偶尔见过有人讨论如何在ORACLE中执行操作系统命令,或是ORACLE数据库外的应用。应该说在9i及之前的版本中,虽然说并非完全无法实现(其实还是有多种方式能够变相实现的),不过复杂的实现方式让DBA使劲了力,伤透了心,费劲了事儿。  进入10g版本之后,就完全不必如此费神,因为有了DBMS_SCHEDULER,因为有了PROGRAM。2

2017-07-31 17:19:04 432

转载 ORACLE Scheduler特性(2)管理jobs

1.2  管理Jobs1.2.1  启用Jobs  前面创建JOB时,由于未显式的指定ENABLED参数,因此即使指定了START_DATE,不过默认情况下JOB不会自动执行。对于这种情况,DBMS_SCHEDULER包中提供了一个过程ENABLE,可以用来修改JOB的启用状态,调用方式非常简单,例如:SQL> exec dbms_scheduler.enable(¨I

2017-07-31 17:18:01 420

转载 ORACLE Scheduler特性(1)创建jobs

所谓出于job而胜于job,说的就是Oracle 10g后的新特性Scheduler啦。在10g环境中,ORACLE建议使用Scheduler替换普通的job,来管理任务的执行。其实,将Scheduler描述成管理job的工具已经太过片面了,10G版本中新增的Scheduler绝不仅仅是创建任务这么简单。。。。提示:ORACLE中管理Scheduler是通过DBMS_SCHEDULER

2017-07-31 17:16:58 407

原创 解决oracle11G安装84%报错 出现Error in invoking target

进入VM里面的64为Liunx下,用的red hate6.5版本安装oracle11g1,当最后一步安装执行到84%的时候蹦出错.2.日志中的查到的详细错误信息如下:INFO: usr/bin/ld: warning: libstdc++.so.5, needed by '/u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib//libsc_

2017-03-24 23:40:13 17211 3

原创 Red Hat 7.0 如何修改root密码

1.VM LINUX7一开机 立刻上下键选择上方的文件 按E进入编辑2.将linux16开头这一行里面的 ro 替换为 rw init=sysroot/bin/sh,完成后按Ctrl+X保存退出3.执行完成以后 ,进入单用户模式 ,输入 chroot sysroot4.然后passwd,输入2次修改好的密码5.输入touch /.autorelabel 让selinux安全加强工具

2017-03-17 21:36:26 1159

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除