EXPLAIN结果含义
EXPLAIN结果字段如下:字段名 字段类型 含义 STATEMENT_ID VARCHAR2(30) explain PLAN 语句中所指定的最优STATEMENT_ID 参数值, 如果在EXPLAN PLAN语句中没有使用SET STATEMENT_ID,那么此值会被设为NULL。 REMARKS VARCHAR2(80) 与被解释规划的各步骤相关联的注释最长可达80 字节 OPERATION VARCHAR2(30) 各步骤所执行内部操作的名称在某条语句所产生的第一行中该列的可能取值如下DELETE STATEMENT INSERT STATEMENT SELECT STATEMENT UPDATE STATEMENT OPTIONS VARCHAR2(30) 对OPERATION 列中所描述操作的变种 OBJECT_NODE VARCHAR2(128
本地管理表空间(6)
六、其它留给大家讨论的地方我这里的文章仅仅是抛一个砖头,也写的很仓促,难免可能有错误,欢迎大家继续讨论,我会继续整理相关内容并返回给大家。大家还可以从多个方面讨论,如1、 在实际使用中,本地管理表空间带来的好处2、 本地管理表空间的bug,如8i中在临时,回滚中使用本地管理表空间3、 关于本地管理表空间其他看法…………s若 db_block-size 为 16k和16k以下,数据文件头是 64k 保留空间若是32k的block size ,则是 保留 128k/******************************************/SQL> create tablespace test datafile 'e:test.dbf'
本地管理表空间(4)
四、本地管理表空间管理机制表空间是一种为段(表,索引等)提供空间的逻辑结构,所以,当在表空间中增加,删除段的时候,数据库就必须跟踪这些空间的使用。如下例所示,假定一个新创建的表空间包含了五个表表一……表二……表三……表四……表五……未用空间当我们删除表四的时候,就有如下结果表一……表二……表三……空闲空间段……表五……未用空间很明显,ORACLE需要有一个机制来管理表空间中各数据文件的这些分配的或未分配的空间,为了跟踪这些可以使用的空间(包括未分配使用的和可以重复使用的),对于每一个空间,我们必须知道
本地管理表空间(5)
五、迁移到本地管理表空间在很多情况下,如果你想在字典表空间与本地表空间之间转换是很难的,你可能需要转出该表空间所有的数据,从新创建表空间,再加载该数据。但是在816以后,有一个叫dbms_space_admin的包使两类表空间的互相转换变成可能,体现在如下两个过程:DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_FROM_LOCAL 但是在你想利用这个过程进行转换的时候,你必须注意两件事:1、 数据库版本必须是816以上,兼容版本(compatible)必须是8.1以上2、 如果是转换成为本地管理,必须有足够的空闲
本地管理表空间(3)
三、本地管理表空间的由来在 Oracle8I的版本中,Oracle推出了一种全新的表空间管理方式:本地化管理的表空间。所谓本地化管理,就是指Oracle不再利用数据字典表来 记录Oracle表空间里面的区的使用状况,而是在每个表空间的数据文件的头部加入了一个位图区,在其中记录每个区的使用状况。每当一个区被使用,或者被 释放以供重新使用时,Oracle都会更新数据文件头部的这个记录,反映这个变化。本地化管理的表空间的创建过程: 语法:CREATE TABLESPACE 表空间名字 DATAFILE '数据文件详细信息'
本地管理表空间(2)
二、名词解释与约定表空间(Tablespace)——为数据库提供使用空间的逻辑结构,其对应物理结构是数据文件,一个表空间可以包含多个数据文件本地管理表空间(Locally Managed Tablespace简称LMT)——8i以后出现的一种新的表空间的管理模式,通过本地位图来管理表空间的空间使用。字典管理表空间(Dictionary-Managed Tablespace简称DMT)——8i以前包括以后都还可以使用的一种表空间管理模式,通过数据字典管理表空间的空间使用。段(Segment)——数据库一种逻辑结构,如表段,索引段,回滚段等,段存在于表空间中,并对应一定的存储空间
本地管理表空间(1)
本地管理表空间Locally Managed Tablespace一、概述1、理解本地管理表空间的由来2、理解什么是字典管理表空间及工作原理3、理解本地管理表空间的优势(为什么要使用本地管理表空间)4、理解本地管理表空间的内部结构5、理解字典管理表空间与本地管理表空间的转换[@more@]
rman备份脚本
rmanfullbak.batrman target sys/passw0rd nocatalog cmdfile 'd:rmanbakfullbackup.rman' log 'd:rmanbakfullbackup.log'fullbackup.rmanrun {allocate channel c1 type disk;backup full tag 'dbfull' format 'e:rmanbakora_o_%u_%s_%p' database ;sql 'alter system archive log current' ;backup(archivelog all delete input format 'e:orabakrman_bkora_a_%u_%s_%p');backup format ‘e:orabakrman_bkcntrl_%u_%s_%p' CURRENT CONTROLFILE;release channel c1;}db_back.cmdrun {sql 'alter system archive log current';allocate ch
FIRST_ROWS_n
在Oracle9i之前,仅有的两个CBO模式是ALL_ROWS以及FIRST_ROWS。传统的FIRST_ROWS SQL最优化的缺点之一是,它的运算法则并没有特别指定行检索的范围。 但是,在Oracle9i中包含了几个新的最优化指令: FIRST_ROWS_1 FIRST_ROWS_10 FIRST_ROWS_100 FIRST_ROWS_1000 FIRST_ROWS_n最优化会指示选择一个查询执行计划,这个计划会缩短生成最初n行查询结果的时间。 你可以把这个新的CBO模式设置到数据库中的几个层次上:systemwide,在会话层或者在查询层次上。 alter system set optimizer_mode=first_rows_100; alter session set optimizer_
oracle存储研究方法
一、表/*先介绍一下rowid的定义规则:第7~9位是表示的是数据文件,而10~15位表示的是在这个数据文件中的第几个BLOCK。rowid编码相当于64进制。用A~Z a~z 0~9 + /共64个字符表示。A表示0,B表示1,……,a表示26,……,0表示52,……,+表示62,/表示63。)接下来看几个基本概念:一个table至少有一个segment,如果分区表,则每个分区是一个segment。segment由一个或多个extents组成,segment不可以跨表空间但可以跨数据文件。extent由多个连续的blocks组成,不可以跨数据文件。block由1-多个os块组成,是oracle i/o的最小存储单位。*/-
about oracle10g rac
Q1. How to configure "listener.ora" and "tnsnames.ora"A1. Usually, NETCA will launch automatically during the DBCA. IF you have encountered some errors or want to reconfig them later, please do the following things:(1) Launch NETCA ;(2) Choose the option "Cluster" in the first page;(3) Choose one type such as "create listener","create local net service";(4) Test the new created listener or local net service until success;(5) By default, the appli
delete/truncate删除数据索引空间问题
drop table dt_test_tab; create table dt_test_tab (i number); create index dt_test_idx on dt_test_tab(i); insert into dt_test_tab values (1); insert into dt_test_tab select i from dt_test_tab; / ... / 共17次得到131072条记录,然后 commit; select sum(bytes)/1024 from user_extents where segment_name='DT_TEST_IDX'; 结果为4352k truncate table dengtaotest; select sum(bytes)/1024 from user_extents where segment_name='DT_TEST_IDX'; 结果为128k(就是建表建索引时缺省的initial extent,看来是缩回去了) alter i
oracle中执行os命令
I can think of a couple of different ways....o In Oracle8i, release 8.1, we could use java to run a system command with an "&" after it (assuming unix) or perhaps "start xxx.cmd" if using NT.o In Oracle8.0 and up, we can write an external procedure in C that runs host commands with system() and the "&". (see attached for an external procedure example)o In Oracle7.0 and up, we can use dbms_pipes to talk to a daemon running outside the database. Here is
checkpoint相关概念
html,body { border: 0px; }相关概念:RBA checkpoin rba on-disk rba RBA:redo block address 重作日志地址logfile sequence number(4bytes)logfile block number(4bytes)redo entry offset(2bytes)checkpoint rba:最后一次检查点对应的重作日志地址,意味着这个地址之前的redo log都是实例恢复不需要的。实例恢复的起点on-disk rba:当前日志中最新的重作日志地址。实例恢复的终点相关视图:x$kcccp v$instance_recovery v$instance_recovery实例恢复对应的视图:actual_redo_blks:最后一次检查点到当前日志尾所差的redo b
用insert all实现同时向多表插入数据
html,body { border: 0px; }看到一个很有意思的问题如下: 有三个表,表A , 表B, 表C。这3个表,都有4个字段,并且这4个字段名称都一样,分别是:ID NAME CODE MESSAGE。我现在要做以下操作:每一个表都同时插入5条数据。其中这5条数据当中,前两列是一样的,第三列的数据是1--5,而最后一列的值是固定的。 例如:表A: ID NAME CODE MESSAGE0001 xiaoming 1 1400001 xiaoming 2 1120001 xiaoming 3 840001 xiaoming 4 560001 xiaoming 5 28表B: ID NAME CODE MESSAGE0001 xiaoming 1 550001 xiaoming 2 330001 xiaoming 3 5700
ORACLE系统概述(5)
数据库结构和空间管理 一个ORACLE数据库是数据的集合,被处理成一个单位。一个ORACLE数据库有一个物理结构和一个逻辑结构。 物理数据库结构(physical database structure)是由构成数据库的操作系统文件所决定。每一个ORACLE数据库是由三种类型的文件组成:数据文件、日志文件和控制文件。数据库的文件为数据库信息提供真正的物理存储。 逻辑数据库结构是用户所涉及的数据库结构。一个ORACLE数据库的逻辑结构由下列因素决定: l 一个或多个表空间 l 数据库模式对象(即表、视图、索引、聚集、序列、存储过程) 逻辑存储结构如表空间(data
ORACLE系统概述(4)
ORACLE运行1) 使用专用服务进程的ORACLE的运行在这种配置下,ORACLE运行过程如下:(1) 数据库服务器计算机当前正在运行ORACLE(后台进程)。(2) 在一客户工作站运行一个数据库应用(为用户进程),如SQL*PLUS。客户应用使用SQL*NET DRIVER建立对服务器的连接。(3) 数据库服务器计算机当前正运行合适的SQL*NET DRIVER,该机上接收器进程检出客户数据库应用的连接请求,并在该机上为用户进程建立专用服务器进程。(4) 用户发出单个SQL语句。(5) 专用服务器进程接收该语句,在此处有两种方法处理SQL语句:如果在共享池一共享SQL区中
ORACLE系统概述(3)
ORACLE的配置方案 所有连接到ORACLE的用户必须执行两个代码模块可存取一个ORACLE数据库实例: 应用或ORACLE工具:一数据库用户执行一数据库应用或一个ORACLE工具,可向ORACLE数据库发出SQL语句。 ORACLE服务器程序:负责解释和处理应用中的SQL语句。 在多进程实例中,连接用户的代码可按下列三种方案之一配置:对于每一个用户,其数据库应用程序和服务器程序组合成单个用户进程 对于每一个用户,其数据库应用是由用户进程所运行,并有一个专用服务器进程。执行ORACLE服务器的代码。这样的配置称为专用服务器体系结构; 执行数据库应用
ORACLE系统概述(2)
二、 ORACLE数据库系统的体系结构 ORACLE数据库系统为具有管理ORACLE数据库功能的计算机系统。每一个运行的ORACLE数据库与一个ORACLE实例(INSTANCE)相联系。一个ORACLE实例为存取和控制一数据库的软件机制。每一次在数据库服务器上启动一数据库时,称为系统全局区(SYSTEM GLOBAL AREA)的一内存区(简称SGA)被分配,有一个或多个ORACLE进程被启动。该SGA 和 ORACLE进程的结合称为一个ORACLE数据库实例。一个实例的SGA和进程为管理数据库数据、为该数据库一个或多个用户服务而工作。 在ORACLE系统中,首先是实例启动,然
ORACLE系统概述(1)
ORACLE公司自86年推出版本5开始,系统具有分布数据库处理功能.88年推出版本6,ORACLE RDBMS(V6.0)可带事务处理选项(TPO),提高了事务处理的速度.1992年推出了版本7,在ORACLE RDBMS中可带过程数据库选项(procedural database option)和并行服务器选项(parallel server option),称为ORACLE7数据库管理系统,它释放了开放的关系型系统的真正潜力。ORACLE7的协同开发环境提供了新一代集成的软件生命周期开发环境,可用以实现高生产率、大型事务处理及客户/服务器结构的应用系统。协同开发环境具有可移植性,支持多种数据来源、多种图形用户