自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 10g新特性——表空间重命名

在oracle对象的重命名始终都是个麻烦的事情,这些对象主要是指表名,索引名,列名,表空间名。在8i的时候提供了对表名和索引名的重命名功能:SQL> alter table sunwg rename to sunwg01;表已更改。SQL> alter index ind_sunwg rename to ind_sunwg01;索引已更改。在9i的时候提供对表中的列的重命名功能:

2014-01-26 09:56:13 487

原创 10g新特性——回滚监视

大家应该都有等女朋友的经历吧。想想下面两种情况哪种会更让你着急,一是知道她20分钟后肯定到,二是不确定到底她会什么时候来(可能5分钟,也可能50分钟)。我想对大部分人来说第二种会更让人发狂。在oracle的使用过程中,大家也一定会有下面的经历,先前执行了一个错误的大规模操作,幸好没有提交,现在需要做的回滚。等发出了rollback的命令后,迎接我们的是不可预知的等待,我们不知道到底现在回滚进行

2014-01-26 09:55:00 628

原创 10g新特性——闪回版本查询

由于粗心大意,在数据库中误操作数据的情况经常的发生。在9i之前,一般只能通过logminer或者时间点恢复来找回丢失的数据。在9i中出现了一种新的恢复技术——flashback,这样我们有了一种强有力的恢复工具,可以在不影响系统的情况下在最短的时间内找到丢失的数据。但是9i中的flashback还有很多的不足,使用起来并不是很方便。在10g中对flashback进行增强,使用简单明了,并且增加了对

2014-01-26 09:54:03 487

原创 cbo优化中的基数(cardinality)介绍

CBO(基于代价的优化器)是RBO(基于规则的优化器)的替代品,从9i开始oracle就建议用户使用RBO来进行SQL的优化。CBO大概的优化原理很简单,他通过对象上的统计信息来计算各个执行计划的代价,然后选择代价较小的执行计划来运行。所以对于CBO来说对象(比如表,索引)上的统计信息就显得十分的重要,不仅要有统计信息,还要保证统计信息是准确的,不准确的统计信息可能会带来灾难性的结果。那么orac

2014-01-26 09:50:35 659

原创 乱谈2--索引

索引是数据库中最基本的对象之一,我相信没有哪个生产数据库是完全没有索引的。索引存在的目的就是加速数据的访问速度。如果索引没有起到提升数据访问速度的作用,那么这个索引就是没有用的,甚至是有害的。我见过许多的系统中,因为低效的索引的存在,导致SQL的执行缓慢,应用程序运行的缓慢。由此可见,索引对于数据库来说是极其重要的。绝大部分的索引都是基于表的,但是也有特殊的情况存在,那就是索引组织的表IOT。

2014-01-26 09:48:54 461

原创 关于HASH分区

上次参加oracle的培训,老师讲到了利用10g智能分区匹配可以极大地提高两个分区表的连接速度,对于这两个分区的要求就是必须采用相同的分区策略,最简单的实现就是两个分区表都采用HASH分区,并且HASH分区的分区数也必须是相同的。老师还提到对于HASH分区来说,分区的数量最好是2的幂,这样的效率会高一些。至于为什么分区的数量最好是2的幂这个问题,我一直也没有思考,就当个经验记下来了。前两天看一

2014-01-26 09:48:11 1879

原创 由ORA_ROWSCN想到的

在ORACLE10G中提供了一个新的功能,ORA_ROWSCN。ORACLE会在表中记录每条记录的最后的变化的SCN。默认的情况下,每个块中所有的记录的ORA_ROWSCN都是相同的,当块中任意一条记录发生改变的情况下,块中所有记录的ORA_ROWSCN都会变化为最新值,ORA_ROWSCN的最小粒度是块。当我们使用create table …… rowdependencies;建表的时候

2014-01-23 13:36:33 809

原创 ORACLE中的正则表达式

ORACLE终于在10G中提供了对正则表达式的支持,以前那些需要通过LIKE来进行的复杂的匹配就可以通过使用正则表达式更简单的实现。ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE      :与LIKE的功能相似2,REGEXP_INSTR    :与INSTR的功能相似3,REGEXP_SUBSTR  :与SUBSTR的功能相似4,REGEXP

2014-01-23 13:36:08 832

原创 关于函数索引(function-based index)

函数索引是从8i开始提供的,有了函数索引就可以在索引中使用函数或者表达式了。例:SQL> create table sunwg (id varchar2(10));Table created.SQL> insert into sunwg values('a');1 row created.SQL> commit;Commit complete.SQL>create index

2014-01-23 13:34:33 1236

原创 关于INDEX SKIP SCAN

INDEX SKIP SCAN是9i之后提供的新功能,实现了即使WHERE条件中不存在索引的前导列也可以使用索引。但是INDEX SKIP SCAN是需要下面几个条件的:1,版本9i及以后2,CBO(表和索引都经过分析)3,索引的前导列重复值很少(选择性低)4,WHERE条件中不存在索引前导列举例:1,    建立测试环境Sql>select * from v$vers

2014-01-23 13:33:07 931

原创 OBJECT_ID和DATA_OBJECT_ID

在USER_OBJECTS数据字典里面有两个字段:OBJECT_ID和DATA_OBJECT_ID。OBJECT_ID大家都比较熟悉,是每个数据对象的唯一标识。DATA_OBJECT_ID可能就用的少一些了,这个字段是和SEG$对应的,用来标识该OBJECT的物理存储的段的位置。只有表,索引,UNDO这些有实在存储的对象才会对应一个物理的SEGMENT,字段DATA_OBJECT_ID

2014-01-23 13:32:12 705

原创 oracle用户资源管理

一、前言资源管理器有三个部件组成:资源用户组(Resource consumer group )、资源规划(Resource plan )、资源分配方法(Resource allocation method)及资源计划目录(Resource plan directives) 。它们的功能如下:部件说明资源用户组: 根据数据库资源处理需求,将用户会话分成组资源规划: 指定哪些资源分配

2014-01-23 13:31:00 814

原创 常用的数据字典视图和包

一 数据字典视图概述数据字典是ORACLE数据库的核心组成部分,数据库中的用户信息,表信息,索引信息,权限信息等一切数据库运行必须要的数据都是保存在数据字典里面。数据字典的OWNER为SYS,所以访问起来不是很方便,而且里面的数据也很难直接读懂。为了可以方便的得到数据字典的信息,ORACLE建立大量的数据字典视图方便我们的查询。常用的数据字典视图大体上分为两类:1)    静态的数据字

2014-01-23 13:29:30 771

原创 单session下的cr块的产生

一.Update 无索引(全表扫描)Select * from test;1    TEST    xcur    12    34    6B5680002    TEST    xcur    12    33    6B644000Update test set name = ‘001’ where id > ‘000’;1    TEST    xcur    12

2014-01-23 13:28:57 519

原创 关于count

关于count(*)的执行计划的分析一.    RULE优化器(RBO)1,    表上无索引SQL> create table test01 as select * from dba_objects;Table createdSQL> select count(*) from test01;已用时间: 00: 00: 00.05Execution Plan------

2014-01-22 10:02:24 510

原创 oracle恢复

一,    非归档模式1,    参数文件丢失1)    数据库是用spfile启动的情况下,init.ora丢失,不会对数据库的启动产生任何影响,不过为了安全考虑,应该重新创建init.ora,作为spfile的备份。create pfile = 'D:\oracle\admin\myoracle\pfile\init.ora' from spfile;2)    数据库用spf

2014-01-22 09:57:30 715

原创 数据块中的极限1(transaction)

一前言在oracle中关于表的许多属性值都是有限制的,而这些限制很多都是由于data block中的相应属性的表达方式造成的。下面我们研究一下表上的transaction的限制。SQL> create table mytest 2 (id varchar2(3)) 3 initrans 1 4 maxtrans 255;Table createdSQL> inse

2014-01-22 09:56:37 695

原创 oracle数据类型与存储结构

Oracle数据库内建的数据类型主要有如下几种:。CHAR,NCHAR,VARCHAR2,NVARCHAR2。NUMBER。RAW。LONG,LONG RAW。DATE。TIMESTAMP。INTERVAL。CLOB,BLOB,NCLOB,BFILE。ROWID,UROWID每种不同的数据类型用来存储不同的数据,CHAR存储字符,NUMBER存储数值型。此外

2014-01-22 09:48:16 613

原创 foreign key and locks

create table father 2 (id varchar2(3) primary key, 3 name varchar2(10));Table createdSQL> create table son 2 (sid varchar2(3) primary key, 3 fid varchar2(3));Table createdalter tabl

2014-01-21 18:05:01 569

原创 视图的依赖性

视图是一个基于其他对象的查询语句,这里的其他对象包括表,视图,实体化视图.通过视图可以得到以下好处:1,提供表级别的安全性2,隐藏数据的复杂性3,提供简单的语句给用户4,提供比基表更高的灵活性5,保存复杂的查询视图和构建视图的表或其他对象存在很强依赖关系,基表的改变会对视图产生很大的影响.这里以基于表的视图为例,说明一下视图的依赖性.前提准备一基表的建立SQL>

2014-01-21 13:20:10 1149

原创 行链接和行迁移

今天看书看到关于行链接和行迁移的部分,突然想到一个有趣的情况:数据块的大小为:8k创建了一个有8个列的一个表,每个列的字段全为CHAR(2000),并且设置pctfree 20这时先向表中插入一条记录a,给两个字段赋制值,那么这条记录a大概占用了4k。然后向表中插入一条记录b,给一个字段赋值,那么记录b大概占用了2k。a+b=6k,此时差不多刚好满足pctfree的要求,如果在

2014-01-21 13:16:56 475

原创 手工创建oracle数据库的过程

数据库: Oracle 8i R2 (8.1.6) 安装路径:d:\oracle\ora81 数据库实例:mytest 数据库全局名称:mytest.world步骤一:手工创建相关目录这些目录是新建数据库的一些必要的文件夹之类,比如初始化参数文件夹,udump文件夹,数据文件文件夹等等,下面列出的是一个最基本的目录表d:\oracle\admin\mytest\ar

2014-01-21 13:16:08 541

原创 ORACLE优化器

一 ORACLE优化器概述ORACLE优化器是用于生成SQL语句访问数据库时使用的执行计划的。ORACLE优化器通过使用ORACLE搜集的关于数据库对象的统计数据来生成SQL语句的访问计划(使用什么对象)并执行计划(使用何种操作)。二 ORACLE优化器的分类ORACLE优化器分为三类:1) RULE优化器:基于规则的优化器相对比较简单,通过检查数据库的可用路径并将这些路径

2014-01-21 13:14:03 464

原创 Oracle的验证方式

一基本概念Oracle的验证方式分为两种:操作系统验证和密码验证。操作系统验证的意思就是利用操作系统的帐户密码系统来保护oracle数据库的安全,一般的生产系统只有dba才拥有操作系统的帐户,所以用操作系统验证很方便并且具有很高的安全性。密码验证就是通过oracle的密码文件来保证oracle数据库的安全性。判断当前数据库采用何种验证方式的最简单的方法就是:1, 在命令行中输入“sql

2014-01-21 13:11:48 531

原创 DATA BLOCK内部结构

block是oracle数据库中最基本的存储结构。盘区,段,数据文件都是由block构成的。一个oracle数据库中的block的大小在建立的数据库的时候就已经决定,在整个数据库的生命过程中不能修改;要修改block的大小只能重建数据库。查询数据库中block的大小:SQL> select value from v$parameter where name ='db_block_size'

2014-01-21 13:10:18 634

原创 sga和pga

共享池:“共享池”指定共享池的大小。共享池包含共享游标、存储的过程、控制结构、并行执行消息缓冲区以及其它内容。值越大,多用户系统的性能就越好。值越小,使用的内存就越少。该值被指定为初始化文件参数 SHARED_POOL_SIZE。注:SHARED_POOL_SIZE的值越大,可以缓存的游标,sql就越多,数据库的速度越快;过大的SHARED_POOL_SIZE会导致latch的争用,会导致严重

2014-01-21 11:55:09 581

原创 关于索引压缩的研究

当单列索引和复合索引中的数据列重复项比较多的时候,可以考虑进行索引压缩。索引压缩可以在某种程度上减小索引所占空间,减小扫描索引时候的I/O,提高查询的性能。语法:create index index_name on table_name(col1,col2 ….coln) compress n; (n>0)不输入n的话,默认压缩所有的索引列索引中的前n项被压缩,称做前缀。运行环境

2014-01-21 11:53:08 613

原创 Oracle优化工具——AutoTrace

SQLPLUS的AutoTrace是分析SQL的执行计划,执行效率的一个非常简单方便的工具,在绝大多数情况下,也是非常有用的工具。利用AutoTrace工具提供的SQL执行计划和执行状态可以为我们优化SQL的时候提供优化的依据,以及优化效果的明显的对比效果。一.AutoTrace的设置SQL> connect / as sysdba SQL> @?/rdbms/admin/utlxp

2014-01-21 11:49:06 447

原创 关于get和scan操作

get和scan是hbase中访问数据最基本的两个操作。get访问一个指定key的数据,而scan可以设置begin和end来访问一个范围内所有的数据。而通过查看相关代码,原来get操作就是一种特殊的scan,begin和end相同的scan操作。HRegion.java中的get方法是对get操作的处理,代码的最开始进行了转化,如下:private List get(Get ge

2014-01-21 11:45:46 3704

原创 Hbase中put和delete对hfile的操作

put和delete是hbase中最常见的操作,这些操作最终都是体现在对hfile的修改上。下面通过一些例子看下,当我们执行put和delete后,hfile中发生了什么样的变化。为了简单,我们通过org.apache.hadoop.hbase.io.hfile.HFile来查看hfile中的内容变化。创建测试表sunwg01hbase(main):011:0> create 'sunwg

2014-01-21 11:40:57 1020

空空如也

空空如也

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

TA关注的人

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