Oracle
bruce_wang_janet
人生有三宝:终身运动,终身学习,终身反醒.吸收新知,提高效率,懂得相处,成就自己,也成就他人,创造最高价值.
展开
-
ORACLE监听服务管理
1. 启动 方式一 lsnrctl start /stop/status 方式二 services.msc中找到oracle对应的服务名然后再:net start 服务名 如[OracleOraDb10g_home2TNSListener] 方式三 对于非缺省监听器,使原创 2011-07-26 21:51:03 · 556 阅读 · 0 评论 -
Oracle编程艺术读书比较--堆表
1.基本概念执行CREATE TABLE语句时,默认得到的表类型就是堆组织表。其他类型的表结构需要在CREATE TABLE语句本身中指定它。堆组织表中,数据以堆的方式管理。增加数据时,会使用段中找到的第一个能放下此数据的自由空间。从表中删除数据后,允许以后的INSERT和UPDATE重用这部分空间。堆(heap)是一组空间,以一种随机的方式使用。因此,无法保证按照放入表中的顺序取得数据。转载 2011-12-26 21:32:37 · 1855 阅读 · 0 评论 -
Oracle编程艺术学习比较--索引组织表
1. 基本概念索引组织表(index organized table)简称IOT。IOT中,数据要根据主键有序地存储。适合使用IOT的几种情况:· 表完全由主键组成或者只通过主键来访问一个表。使用IOT,表就是索引,可以节约空间,提高效率。· 通过外键访问子表,子表使用IOT。通过IOT将相同外键的子表数据物理的存储在同一个位置,查询所需要的物理I/O更少,因为数据都在同一个(原创 2011-12-26 21:38:01 · 654 阅读 · 0 评论 -
Oracle编程艺术学习笔记-位图索引(bitmap index)
对于B*树索引,通常索引条目和行之间存在一种一对一的关系:一个索引条目就指向一行。而对于位图索引,一个索引条目则使用一个位图同时指向多行。使用create bitmap index...来创建位图索引。位图索引适用于相异基数(distinct cardinality)低而且通常只读的数据(相异基数低的是指相对于表中的总行数,数据只有很少的几个不同值)。考虑在一个有100万行的表中,转载 2011-12-26 21:48:27 · 697 阅读 · 0 评论 -
oracle 查询计划中的基数cardinality概念
CBO(基于代价的优化器)是RBO(基于规则的优化器)的替代品,从9i开始oracle就建议用户使用CBO来进行SQL的优化。CBO大概的优化原理很简单,他通过对象上的统计信息来计算各个执行计划的代价,然后选择代价较小的执行计划来运行。所以对于CBO来说对象(比如表,索引)上的统计信息就显得十分的重要,不仅要有统计信息,还要保证统计信息是准确的,不准确的统计信息可能会带来灾难性的结果。那么orac转载 2012-01-26 17:47:00 · 17272 阅读 · 0 评论 -
Oracle 扫描类型
1原创 2012-01-27 00:14:50 · 581 阅读 · 0 评论 -
sqlplus 使用手册
1. 执行一个SQL脚本文件 SQL>start file_name SQL>@ file_name 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 2. 对当前的输入进行编辑 SQL>edit 3. 重新运行上一次运行的sql语句 SQL>/ 4.转载 2011-11-19 21:55:01 · 540 阅读 · 0 评论 -
oracle 索引重建提示脚本
1. Oracle 发布的索引重建的脚本,如下:REM =============================================================REMREM rebuild_indx.sqlREMREM Copyright (c) Oracle Software, 1998 - 2000REMR原创 2012-01-24 09:04:20 · 1336 阅读 · 0 评论 -
oracle 聚簇 学习
1. 什么是聚簇聚簇是根据码值找到数据的物理存储位置,从而达到快速检索数据的目的。Oracle聚簇索引的顺序就是数据的物理存储顺序,叶节点就是数据节点。非聚簇索引的顺序与数据物理排列顺序无关,叶节点仍然是索引节点,只不过有一个指针指向对应的数据块。一个表最多只能有一个聚簇索引。内容来自XunPeng.Net2. 使用 Oracle聚簇索引 寻聚簇是一种存储表的方法,这些表密切相关并转载 2012-01-25 21:52:36 · 647 阅读 · 0 评论 -
Oracle 编程艺术读书笔记--B*树索引
B*树索引是Oracle的“传统“索引。1. 基础知识B*树的构造类似于二叉树,能根据键提供一行或一个行集的快速访问,通常只需很少的读操作就能找到正确的行。不过,”B*树“中的”B“不代表二叉(binary),而代表平衡(balanced)。B*树索引并不是一颗二叉树。在一个数字列上建立的索引类似于下图:叶子节点之上的内部块称为分支块(branch block)。这些节转载 2011-12-25 09:04:08 · 672 阅读 · 0 评论 -
oracle 分区本地唯一索引规则测试
关于分区表与唯一索引,以下是一点测试记录。非分区字段不能创建Local Unique索引:SQL> connect eygle/eygleConnected.SQL> CREATE TABLE docinfo( 2 docid NUMBER , 3 docsz NUMBER , 4 CONSTRAINT uk_docid UNIQUE(doc转载 2012-01-27 20:57:40 · 3014 阅读 · 0 评论 -
PCTUSED和PCTFREE
1. 概念 PCTFREE: 当数据块中的可用空间小于此值后,新数据行将无法插入。(由允许转禁止) PCTUSED: 当数据块中的可用空间大于此值后,新数据行才能插入。(由禁止转允许)2. 对于堆表存储海量数据,设置比较大的PCTFREE,设置充足的空余空间认为是提高数据处理的重要技术之一。3. 对于IOT,没有PCTUSED设置4. PCTFR原创 2011-12-26 21:12:20 · 898 阅读 · 0 评论 -
聚簇因子
1. 概念 聚簇因子认为是根据索引遍历一遍实体表的逻辑读的块数。因为数据读取方式以块为单位,不是行,因此在读取大范围数据(满足条件行很多,不是unique index scan)时,利用聚簇因子好的索引,其读取块少,读取效率会很高。2. 聚簇因子的评价若聚簇因子大于表块的10倍左右,且需要返回1000多行记录,此索引就不能用了,不如用全表扫描。若聚簇因子和表块的原创 2011-12-26 21:27:45 · 882 阅读 · 0 评论 -
oracle 性能调优诊断案例1
问题描述:这是帮助一个公司的诊断案例.应用是一个后台新闻发布系统.症状是,通过连接访问新闻页是极其缓慢通常需要十数秒才能返回.这种性能是用户不能忍受的.操作系统:SunOS 5.8数据库版本:8.1.71.检查并跟踪数据库进程 诊断时是晚上,无用户访问在前台点击相关页面,同时进行进程跟踪查询v$session视图,获取进程信息 SQL>转载 2012-01-27 20:02:16 · 633 阅读 · 0 评论 -
oracle性能调优-sql trace工具
SQL_TRACE是Oracle提供的用于进行SQL跟踪的手段,是强有力的辅助诊断工具.在日常的数据库问题诊断和解决中,SQL_TRACE是非常常用的方法。本文就SQL_TRACE的使用作简单探讨,并通过具体案例对sql_trace的使用进行说明.一、 基础介绍(a) SQL_TRACE说明SQL_TRACE可以作为初始化参数在全局启用,也可以通过命令行方式在具体sessi转载 2012-01-27 20:24:22 · 753 阅读 · 0 评论 -
ORACLE 空间维护
1. drop表后,要执行如下语句,否则会留在垃圾堆中。 execute immediate 'purge recyclebin'; 或者drop table XXX purge 删除分区后,自己就会回收空间。2. 数据表空间设置为AUTOEXTEND后,会逐步表变大的,不会自动缩小了。 需要执行如下命令,ALTER DATABASE DATAFILE原创 2012-02-01 19:17:01 · 506 阅读 · 0 评论 -
oracle 行转列举例
1. 数据准备create table bruce_test( a int , b int , c int , d int )insert into bruce_test values(1,1,3,4);insert into bruce_test values(1,12,3,5);insert in原创 2012-07-25 10:50:35 · 819 阅读 · 0 评论 -
Oracle 编程艺术--降序索引读书笔记
1. 11gr2数据库的索引默认排序是asc,不是desc。 准备测试数据 create table test as select rownum as objectid,object_name from all_objects; 创建默认索引 create index idx_objectid_test on test(objectid); select原创 2011-12-25 08:49:34 · 1018 阅读 · 0 评论 -
oracle 常用函数介绍
1. With用法: The WITH query_name clause lets you assign a name to a subquery block. You can then reference the subquery block multiple places in the query by specifying the query name. Oracle optimiz转载 2011-12-22 20:40:55 · 400 阅读 · 0 评论 -
oracle 连接配置总结
1. 配置文件作用 TNSNAMES.ORA 用于 为oracle客户端配置连接信息,比如连那个 机器的oracle实例等。原创 2011-07-26 21:42:10 · 604 阅读 · 0 评论 -
DBMS_OUTPUT 过多导致oracle存储过程执行抛异常
DBMS_OUTPUT 是有缓存区上限的,默认为10000字节,当超过10000后会 抛"buffer overflow, limit of 10000 bytes" 的异常。如下测试存储过程:create or replace procedure TestMoreDBMSOut原创 2011-07-28 19:36:37 · 3222 阅读 · 0 评论 -
如何运行和调试oracle存储过程
1. 编写存储过程脚步如下:CREATE OR REPLACE PROCEDURE P_AUTO_CREATE_PARTITION (Result Out int, LogErrDesc Out varchar2 ) is type TypeT原创 2011-07-28 19:56:43 · 972 阅读 · 0 评论 -
oracle 数据加载方法
1. sqlldr加载方法 1.1 先创建表 create table loadtest( NO1 NUMBER(10,0), NO2 NUMBER(10,0) )TABLESPACE brucets原创 2011-09-15 22:22:57 · 1178 阅读 · 0 评论 -
oracle数据导出文本文件的方法
1. spool 方法SQL> spool 'd:\output.txt';Started spooling to d:\output.txt SQL> set heading off; #不打印标题,列名SQL> SELECT * FROM loadtes原创 2011-09-15 22:35:06 · 528 阅读 · 0 评论 -
oracle in 查询从句优化
因为in从句导致查询性能问题「select * from normaltbl_ora where pk in (1,2,3,4)」、「select * from normaltbl_ora where name in (“manhong”,”yihuan”,”gongyang转载 2011-09-18 21:09:09 · 1464 阅读 · 0 评论 -
oracle 嵌套表学习
1 基础知识嵌套表是表中之表。一个嵌套表是某些行的集合,它在主表中表示为其中的一列。对主表中的每一条记录,嵌套表可以包含多个行。在某种意义上,它是在一个表中存储一对多关系的一种方法。嵌套表不需要执行联合操作,就可以通过相应的嵌套表信息列。这种不经联合而直接选择数据的能原创 2011-09-22 21:08:20 · 2258 阅读 · 0 评论 -
oracle 虚似列的介绍
1 举例 create table tv(a number,b number,d number,c as (a*b+d/10))SQL> /Table created.SQL> insert into tv (a,b,d) values (1,2,3);转载 2011-10-16 00:21:26 · 493 阅读 · 0 评论 -
perl 执行oracle存储过程,sql的方法
1. 采用DBI 需要安装 DBD-ORALCE才行,安装步骤比较复杂2. 采用sqlplus 执行命令 将执行语句,放到一个sql脚本文件中,如 execsql.sql. 将sql语句写入文件 my $SqlCMD = "************"; ` echo $SqlCMD >"$sqlfile"`; `echo exit原创 2011-10-25 21:30:03 · 3695 阅读 · 0 评论 -
oracle 外部表使用小结
1. 先创建外部表路径创建一个逻辑Directory: create directory TestTable_diras 'D:\Test' ;授权 grant read,write on directory TestTable_dir to bruce; 可以删除一个目录 DROP DIRECTORY TestTable_dir;原创 2011-10-25 16:46:51 · 775 阅读 · 0 评论 -
oracle dba系统管理的有用sql
1. 查询目前会话的信息(ID) select SID FROM V$MYSTAT WHERE ROWNUM=1 2. 查询一个会话的并行情况SELECT SID,QCSID,SERVER#,DEGREE FROM V$PX_SESSION WHERE QCSID=133 (133为一个会话ID)原创 2011-11-20 11:45:57 · 575 阅读 · 0 评论 -
ORACLE并行操作学习
1 并向操作对于一个大的任务,一般的做法是利用一个进程,串行的执行,如果系统资源足够,可以采用parallel技术,把一个大的任务分成若干个小的任务,同时启用n个进程/线程,并行的处理这些小的任务,这些并发的进程称为并行执行服务器(parallel executeionserver),这些并发进程由一个称为并发协调进程的进程来管理,可以让多个CPU同时处理一个计算任务,充分使用系统原创 2011-11-20 12:52:47 · 7865 阅读 · 0 评论 -
创建测试数据方法
1. 测试数据 创建用 序列select to_date('2009-01-01','yyyy-mm-dd'),'b','c','d',ROWNUM from dual connect by rownum2. 用小表循环3. 多行变一列with atest as(select to_date('2009-01-01','yyyy-mm-dd'),'b','c',原创 2011-11-20 20:22:42 · 743 阅读 · 0 评论 -
oralce drop操作不是真正的shift+delete
drop table table_name;drop table table_name cascade constraints;drop table table_name purge;The drop table command moves a table into the recycle bin unless purge was also specified. purg转载 2011-11-08 19:45:57 · 478 阅读 · 0 评论 -
oracle数据库的启动和关闭
Oracle9I开始,取消了服务器管理器(svrmgl)和internal用户,数据库的启动和停止都是通过sql*plus来完成!Oracle10g可以通过浏览器来启动和停止数据库服务!这里主要说说9I下的启动和停止服务,下面的命令在8i下也可以使用要启动或者停止服务,必须拥有sysdba的权限。可以使用两中方式连接第一种,以sys用户连接c:\> sqlplus sys/chan转载 2011-07-26 23:27:50 · 447 阅读 · 0 评论 -
数据库删除命令
connect sys/%SYSPASSWD%@%ORACLE_SID% as sysdbaalter database close;alter system enable restricted session;drop database;exitDROP DATABASE 删除一个现存数据库的目录入口并且删除包含数据的目录。 只有数据库所有者能够执行这条命令。 还有,如果转载 2011-12-18 17:25:13 · 2255 阅读 · 0 评论 -
如何查看oracle的执行计划
一、什么是执行计划(explain plan) 执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述。 二、如何查看执行计划 1: 在PL/SQL下按F5查看执行计划。第三方工具toad等。 很多人以为PL/SQL的执行计划只能看到基数、优化器、耗费等基本信息,其实这个可以在PL/SQL工具里面设置的。可以看到很多其它信息,如下所示转载 2013-09-21 15:46:14 · 894 阅读 · 0 评论