- 博客(34)
- 问答 (1)
- 收藏
- 关注
转载 linux连接mysql命令
连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密码 1、例1:连接到本机上的MYSQL 找到mysql的安装目录,一般可以直接键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql> 2、连接到远程主机上的M...
2018-06-19 10:27:38 18584
转载 Linux返回上一级目录的命令
cd .. 返回上一级目录cd ../.. 返回上两级目录cd或cd ~ 返回home目录cd - 目录名 返回指定目录
2018-06-19 10:11:25 14531
转载 Hadoop fs 和Hadoop dfs
(1)fs是文件系统, dfs是分布式文件系统(2)fs > dfs(3)分布式环境情况下,fs与dfs无区别 (4)本地环境中,fs就是本地文件,dfs就不能用了andFS涉及到一个通用的文件系统,可以指向任何的文件系统如local,HDFS等。但是DFS仅是针对HDFS的。那么什么时候用FS呢?可以在本地与hadoop分布式文件系统的交互操作中...
2018-05-31 13:49:46 1310
转载 ffs&fs
当select和where中出现的列都存在索引是发生index full scan与index fast full scan的前提index fast full scan使用多块读的方式读取索引块,产生db file scattered reads 事件,读取时高效,但为无序读取index full scan使用单块读方式有序读取索引块,产生db file sequential reads
2018-01-10 15:03:41 340
转载 组合索引
关于组合索引1.一个表建立多少个索引比较合适?比如说不大于5个 这个没有定论,楼主要综合查询效率和dml效率自己确定,索引可以加快select的查询速度,但也会降低delete,insert和update等dml语句的执行速度。2.联合索引比单索引的效率高么? 如果联合索引中的多个字段都在where谓词中出现了,则联合索引效率比单列索引高,因为通过
2018-01-09 16:22:02 448
转载 集群因子
集群因子创建索引的时候会把索引列的数据拷贝到索引段排序存放,但是表上的数据不一定是按照索引列排序存放的,在做索引扫描的时候,相邻的索引值对应的数据行可能不在同一个数据块中,这样就会产生额外的IO,集群因子就是计算索引值相邻但对应的数据行不在同一个数据块的度量值,最佳的性能是集群因子的数量等于数据表占用的数据块数量,最差的就是集群因子的值接近数据行的值。举个简单的例子,新华字典上
2018-01-04 17:50:29 539
转载 HINT
Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担。但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比。此时就需要DBA进行人为的干预,告诉优化器使用我们指定的存取路径或连接类型生成执行计划,从 而使语句高效的运行。例如,如果我们认为对于一个特定的语句,执行全表扫描要比执行索引扫描更有效,则我们就可以指示优化器使用全
2017-12-11 11:30:02 435
转载 MERGE JOIN CARTESIAN
笛卡尔积合并连接,两个结果集之间做merge join,并且还是笛卡尔积的合并连接.说起来可能很绕.我们先看合并连接的定义:通常称为排序合并连接(Sort Merge Join),因为这种连接的要求是:两个结果集是排序的,排序字段是两个结果集的连接字段.排序合并连接(Sort Merge Join)的执行顺序如下:1.根据sql文本的where条件,对目标表T1进行访问,对过滤
2017-12-11 10:39:52 963
转载 连接方式
排序合并连接(sort merge join)访问次数:两张表都只会访问0次或1次。驱动表是否有顺序:无。是否要排序:是。应用场景:当结果集已经排过序。排序合并连接原理:如果A表的数据为(2,1,4,5,2),B表的数据为(2,2,1,3,1) ,首先将A表和B表全扫描后排序,如下:A B1 12 12 2
2017-12-08 11:43:48 222
原创 nologging
1、ORACLE数据库会对产生改变的操作记录REDO,比如DDL语句、DML语句,这些操作首先会放在redo buffer中,然后由LGER进程根据触发条件写到联机日志文件,如果数据库开启归档的话,还要在日志切换的时候归档。在这样一个完整的链条上的每一个环节,都可能会成为性能的瓶颈,所以需要引起DBA和数据库应用人员的注意。对于我们来说,最好的调优方式就是不产生REDO或者尽量少的产生REDO。
2017-11-24 10:50:17 1763
转载 Oracle的REDO和UNDO
什么是REDO REDO记录transaction logs,分为online和archived。以恢复为目的。 比如,机器停电,那么在重起之后需要online redo logs去恢复系统到失败点。 比如,磁盘坏了,需要用archived redo logs和online redo logs区恢复数据。 比如,truncate一个表或其他的操作,想恢复到之前的状态,同样也需要。 什么
2017-11-23 18:01:28 153
转载 insert /*+append*/
关于insert /*+ append */我们需要注意以下三点:a、非归档模式下,只需append就能大量减少redo的产生;归档模式下,只有append+nologging才能大量减少redo。b、insert /*+ append */ 时会对表加锁(排它锁),会阻塞表上的除了select以外所有DML语句;传统的DML在TM enqueue上使用模式3(row exclusiv
2017-11-23 18:00:48 1462
原创 Oracle归档模式
Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。 如果数据库处于非归档模式,联机
2017-11-23 15:48:16 133
转载 ORA_HASH函数
oracle中的hash分区就是利用的ora_hash函数partition by hash(object_id) 等价于 ora_hash(object_id,4294967295)ora_hash(列,hash桶) hash桶默认是4294967295 可以设置0到4294967295ora_hash(object_id,4) 会把object_id的值进行hash运算
2017-11-23 11:25:36 17164
转载 index range scan,index fast full scan,index skip scan
index range scan(索引范围扫描):1.对于unique index来说,如果where 条件后面出现了 ,between ...and...的时候,那么就可能执行index range scan,如果where条件后面是=,那么就会执行index unique scan。2.对于none unique index来说 如果where 条件后面出现了=,>,3
2017-11-23 11:16:17 685
转载 执行计划的access和filter的区别
一、简要说明: Prediceate(谓词):一个查询中的WHERE限制条件。 在查看执行计划的信息中,经常会看到两个谓词filter和access,它们的区别是什么,理解了这个两个词对我们解读Oracle的执行计划信息会有所帮助。 简单地说,执行计划如果显示是access,就表示这个谓词条件的值将会影响数据的访问路径(表还是索引),而filter表示谓词条件的值并不
2017-11-22 17:29:17 3477
转载 INDEX SKIP SCAN 和 INDEX RANGE SCAN
当表有一个复合索引,而在查询中有除了索引中第一列的其他列作为条件,并且优化器模式为CBO,这时候查询计划就有可能使用到SS Skip scan会探测出索引前导列的唯一值个数,每个唯一值都会作为常规扫描的入口,在此基础上做一次查找,最后合并这些查询 例如:表employees (sex, employee_id, address) ,有一个组合索引(sex, empl
2017-11-22 16:07:04 1363
转载 查空表很耗时的原因
在Oracle数据的存储中,可以把存储空间想象为一个水库,数据想象为水库中的水。水库中的水的位置有一条线叫做水位线,在Oracle中,这条线被称为高水位线(High-warter mark, HWM)。在数据库表刚建立的时候,由于没有任何数据,所以这个时候水位线是空的,也就是说HWM为最低值。当插入了数据以后,高水位线就会上涨,但是这里也有一个特性,就是如果你采用delete语句删除数据的话,数据
2017-11-22 15:59:33 1670
转载 oracle 索引失效原因及解决方法
oracle 索引失效原因及解决方法2010年11月26日 星期五 17:10 一、以下的方法会引起索引失效1,2,单独的>,3,like "%_" 百分号在前.4,表没分析.5,单独引用复合索引里非第一位置的索引列.6,字符型字段为数字时在where条件里不添加引号.7,对索引列进行运算.需要建立函数索引.8,not in ,not
2017-11-22 11:05:19 507
转载 oracle索引
简介1.说明 1)索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引。在数据库中索引可以减少数据库程序查询结果时需要读取的数据量,类似于在书籍中我们利用索引可以不用翻阅整本书即可找到想要的信息。 2)索引是建立在表上的可选对象;索引的关键在于通过一组排序后的索引键来取代默认的全表扫描检索方式,从而提高检索效率 3)索引在逻辑上和物理上都与相关的
2017-11-22 09:13:32 264
转载 B树
介绍B树的目的为了硬盘快速读取数据(降低IO操作次树)而设计的一种平衡的多路查找树。目前大多数据库及文件索引,都是使用B树或变形来存储实现。目录为什么B树效率高B树存储B树缺点为什么B树效率高在大规模数据存储操作中,由于无法一次性加载到内存里。所以避免不了发生内外存交换。所以次数越少,效率表现也越高。来看下面这张图:这是个典型的b
2017-11-22 09:01:08 401
转载 磁盘IO的概念
读/写IO,最为常见说法,读IO,就是发指令,从磁盘读取某段扇区的内容。指令一般是通知磁盘开始扇区位置,然后给出需要从这个初始扇区往后读取的连续扇区个数,同时给出动作是读,还是写。磁盘收到这条指令,就会按照指令的要求,读或者写数据。控制器发出的这种指令+数据,就是一次IO,读或者写。提升磁盘IO的另外一个技巧,一次尽可能多写入或多读取。也就是说,将程序的读写buffer设置得尽
2017-11-21 15:04:42 1895
转载 B树简单理解
平衡二叉排序树便于动态查找,因此用平衡二叉排序树来组织索引表是一种可行的选择。当用于大型数据库时,所有数据及索引都存储在外存,因此,涉及到内、外存之间频繁的数据交换,这种交换速度的快慢成为制约动态查找的瓶颈。若以二叉树的结点作为内、外存之间数据交换单位,则查找给定关键字时对磁盘平均进行㏒㏒次访问是不能容忍的(树的深度过大而造成磁盘I/O读写过于频繁,进而导致查询效率低下)。磁盘读取
2017-11-21 14:59:13 179
转载 Oracle优化面试题
Oracle SQL性能优化(1)选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection ta
2017-11-20 10:51:32 5576
原创 ORACLE的两种优化模式
Oracle的优化器共有两种的优化方式,即基于规则的优化方式(Rule-Based Optimization,简称为RBO)和基于代价的优化方式(Cost-Based Optimization,简称为CBO)A、RBO方式:优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中的一列有索引时去走索引。B、CBO方式:依词义可知,它是看语句
2017-11-20 10:49:19 842
转载 ORACLE隐式游标
游标的概念: 游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样数据处理的速度才会提高,否则频繁的磁盘数据交换会降低效率。 游标有两种类型:显式游标和隐式游标。我们常用到的SELECT...INTO...查询
2017-11-09 10:28:59 414
转载 ORACLE优化
不能用null作索引,任何包含null值的列都将不会被包含在索引中。即使索引有多列的情况下,只要这些列中有一列含有null,该列就会从索引中排除。也就是说如果某列存在空值,即使对该列建索引也不会提高性能任何在where子句中使用is null或is not null的语句优化器是不允许使用索引的如果每列确实可能存在空值的情况,可以使用默认值的方式替代以便充分利用索引提高性能
2017-11-09 10:15:41 102
转载 oracle管道函数的用法
oracle管道函数是一类特殊的函数,oracle管道函数返回值类型必须为集合,下面将介绍oracle管道函数的语法。在普通的函数中,使用dbms_output输出的信息,需要在服务器执行完整个函数后一次性的返回给客户端。如果需要在客户端实时的输出函数执行过程中的一些信息,在oracle9i以后可以使用管道函数(pipeline function)。关键字PIPELINED表明这是
2017-11-07 14:56:39 402
转载 ora-24381
该异常只是在使用forall的时候、并且使用SAVE EXCEPTIONS保存异常信息时:若其中异常为DML异常才会爆出 如下例子: 例一这种情况不会爆出该异常 declareTYPE num_tISTABLEOFNUMBER;num num_t:=num_t(1,2,3);i NUMBER;BEGIN i:='a';FORALL i
2017-10-26 15:07:19 3950
转载 table of number index by varchar2(100)
--字符串序列要这样declare type t istable of number(3) indexby varchar2(3); hash_t t; l_row varchar2(3); begin hash_t('a') := 10; hash_t('b') :
2017-10-25 17:17:12 1413
转载 oracle中integer、pls_integer和number类型
NUMBER [ (p [, s]) ] 是ORACLE自身的数据类型。 INTEGER或者INT、SMALLINT 则是 ANSI SQL 的数据类型,它对应的ORALCE数据类型是NUMBER(38)INT、INTEGER 是 NUMBER 的受限子类型(只表示整数),相当于 NUMBER(38)。NUMBER 类型最大可表示 38 个十进制位的数值。
2017-10-25 11:02:23 7836
空空如也
ORACLE的index by是啥意思
2017-10-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人