Hash join算法原理
自从oracke 7.3以来,oracle提供了一种新的join技术,就是hash join。Hash Join只能用于相等连接,且只能在CBO优化器模式下。相对于nested loop join,hash join更适合处理大型结果集。Hash join不需要在驱动表上存在索引。[@more@]自从oracke 7.3以来,oracle提供了一种新的join技术,就是hash join。Hash Join只能用于相等连接,且只能在CBO优化器模式下。相对于nested loop join,hash join更适合处理大型结果集。Hash join不需要在驱动表上存在索引。一. Hash Join概述Hash join算法的一个基本思想就是根据小的row sources(称作build
oracle日志损坏的处理
日志损坏实际处理的一个例子,以备查询。[@more@] [oracle@ts01 oracle]$ sqlplus ''''/ as sysdba''''SQL*Plus: Release 9.2.0.4.0 - Production on Tue Nov 15 10:35:11 2005Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.Connected to:Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionWith the Partitioning, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.4.0 - ProductionSQL> conn / as sysdbaConnected.SQL> 在另一个SESSION:[oracle@ts01 oracle]$ cd /oracle/oradata/TSM
Oracle Data Pump
在Oracle 10g中, exp 和 imp 被重新设计为Oracle Data Pump(虽然Oracle 仍然装载了exp 和imp,并完全地支持它们)。如果你以前使用过exp 和 imp,那么Data Pump 的命令行程序的语法对你来说就不陌生了。[@more@]在Oracle 10g中, exp 和 imp 被重新设计为Oracle Data Pump(虽然Oracle 仍然装载了exp 和imp,并完全地支持它们)。如果你以前使用过exp 和 imp,那么Data Pump 的命令行程序的语法对你来说就不陌生了。 Data Pump 是运行在数据库内部的, 而不是像一个独立的客户端应用程序一样存在。这就意味着这部分的工作在一定程
Oracle9i中的监听动态注册
在Oracle9i中,使用命令lsnrctl status可以看到如下例子:Service "lrdb" has 2 instance(s).Instance "lrdb", status UNKNOWN, has 1 handler(s) for this service...Instance "lrdb", status READY, has 1 handler(s) for this service...这是Oracle9i监听器行为的不同之处的第一个线索,因为Instance "lrdb"出现了两次。出现额外条目是因为,数据库在启动时通过一个被称为动态注册的进程在监听器中注册信息。相应地,如果数据库通过listener.ora文件中的信息在监听器中注册数据库着称为静态注册
裸设备基础知识
裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。本文收集裸设备和Oracle问答20例。 1.什么叫做裸设备? 裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。它由应用程序负责对它进行读写操作。不经过文件系统的缓冲。[@more@]裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。本文收集裸设备和Oracle问答20例。 1.什么叫做裸设备? 裸设备,也叫裸分区(原始分区)
oracle9i学习笔记(转)
学习oracle9i的时候查找到这篇文章,保留备份以便学习查询。[@more@]http://www.dbxk.com/article/article/96/2006-01/20060111151555.html######### 创建数据库----look $ORACLE_HOME/rdbms/admin/buildall.sql ############# create database db01 maxlogfiles 10 maxdatafiles 1024 maxinstances 2 logfile GROUP 1 ('/u01/oradata/db01/log_01_db01.rdo') SIZE 15M, GROUP 2 ('/u01/oradata/db01/log_02_db01.rdo') SIZE 15M, GROUP 3 ('/u01/oradata/db01/log_03_db01.rdo') SIZE 15M, datafile 'u01/oradata/db01/system_01_db01.db
OCFS、GPFS、ASM是什么意思
OCFS==>oracle cluster file systemGPFS==>General Parallel File SystemASM==>Automatic Storage Management[@more@]OCFS==>oracle cluster file systemGPFS==>General Parallel File SystemASM==>Automatic Storage Management
oracle分区表基本知识
Oracle 分区是 Oracle9i 企业版的一个选项,可以增强各种应用程序的可管理性、性能和可用性。分区允许将表、索引以及索引编排表细分为更小的段,从而能在更细的粒度级管理和访问这些数据库对象。Oracle 提供丰富的分区模式来满足每一种商务需求。而且,由于它在 SQL 语句中是完全透明的,分区几乎可应用于任何应用程序。[@more@]Oracle 分区是 Oracle9i 企业版的一个选项,可以增强各种应用程序的可管理性、性能和可用性。分区允许将表、索引以及索引编排表细分为更小的段,从而能在更细的粒度级管理和访问这些数据库对象。Oracle 提供丰富
ORACLE LOG的使用总结
1:同一个重做日值组下的所有重做日值大小必须一致. 2:修改log_archive_start=true,并让数据库工作在archivelog模式,就能产生归档日志. 3:增大重做日志的大小,可以加快一些大型的insert,update,delete操作. 4:把重做日志放在速度最快的硬盘上. 5:联机重做日志可以循环使用,而归档日志的是自动创建的,大小取决于你的重做日志.[@more@]日志文件使用小结http://xsb.itpub.net/post/419/604941:给日志组1增加重做日志文件. SQL> alter database add logfile member 'G:ORACLEORADATALIJIEREDO1b.LOG' to group 1; 数据库已更改。 2:删除重做
ORACLE MTS的介绍
MTS(Multi-Threaded Server)是ORACLE SERVER的一个可选的配置选择,是相对DEDICATE方式而言,它最大的优点是在以不用增加物理资源(内存)的前提下支持更多的并发的连接。换句话说,如果你只有2G的物理内存,而你又想支持2000个连接,在获取最好性能的前提下,你就应该选择MTS了。[@more@]公司数据库服务器负载较大.pgsp已经用去了66%之多统计了一下进程,确定根本原因在于oracle进程数太多.也就是dedicated连接数太多.考虑将用户连接方式改为multithread方式.查看Oracle的配置,MTS配置缺省已经打开. v$dispatcher , v$shared_server 中记
基于成本的优化器(CBO)
本短文着意于消除一些关于基于成本的优化器(CBO)的错误说法,强调一般的错误和问题。 Background 背景 ~~~~~~~~~~ 为了执行任何一个SQL语句,Oracle都要先导出一个“执行计划(execution plan)”。它基本上就是Oracle如何检索出符合给定SQL语句要求的数据的执行计划。[@more@]本短文着意于消除一些关于基于成本的优化器(CBO)的错误说法,强调一般的错误和问题。 Background 背景 ~~~~~~~~~~ 为了执行任何一个SQL语句,Oracle都要先导出一个“执行计划(execution plan)”。它基本上就是Oracle如何检索出符合给定
数据库容灾、复制解决方案全分析
最近发现论坛上关于数据库远程复制和异地容灾等问题的帖子比较多,现在把我知道的一些解决方案进行一下分析,能力有限,还希望大家多多补充、纠正![@more@]数据库容灾、复制解决方案全分析http://www.tianyar.net/blog/user1/10202/archives/2006/8967.shtml最近发现论坛上关于数据库远程复制和异地容灾等问题的帖子比较多,现在把我知道的一些解决方案进行一下分析,能力有限,还希望大家多多补充、纠正! 目前,针对oracle数据库的远程复制、容灾主要有以下几种技术或解决方案:(1)基于存储层的容灾复制方案这种技术的复制机制是通过
OCFS,OCFS2,ASM,RAW 讨论2(转帖)
如果要部署RAC, 如果需要快速完工并且在这方面经验欠缺的话,Oracle 提供的 "Oracle Validated Configurations" 是一个最好的帮手。 Oracle刚开始推出 OVC的时候,我觉得特别特别好,即便是对于非常熟悉linux/oracle/RAC得人来说,也是一个大大减轻工作量的好工具.[@more@]HEARTBEAT # How does the disk heartbeat work? Every node writes every two secs to its block in the heartbeat system file. The block offset is equal to its global node number. So node 0 writes to the first block, node 1 to the second, etc
OCFS,OCFS2,ASM,RAW 讨论1(转帖)
200亿条数据,就是20T吧,用ASM好?还是用OCFS好?还是用RAW好?几个问题要先搞清楚:[@more@]200亿条数据,就是20T吧,用ASM好?还是用OCFS好?还是用RAW好?几个问题要先搞清楚: 1. 20T 是否是历史数据和归档数据?还是天天都要修改,更新和变化? 2. 20T数据中有多少比例的数据是需要经常修改/查询/更新的? 3. 20T数据是纯data数据还是有媒体数据? 4. 这套业务系统以后的数据增长是怎样的? 每天/每个月,每年新增长多少数据,增长速度如何? 这些问题都搞清楚了,你的数据库存储的规划就基本清晰了, 否则操作起来盲人摸象。 按照我的经验,
Oracle中表的连接及其调整
在日常基于数据库应用的开发过程中,我们经常需要对多个表或者数据源进行关联查询而得出我们需要的结果集。那么Oracle到底存在着哪几种连接方式?优化器内部又是怎样处理这些连接的?哪种连接方式又是适合哪种查询需求的?只有对这些问题有了清晰的理解后,我们才能针对特定的查询需求选择合适的连接方式,开发出健壮的数据库应用程序。选择合适的表连接方法对SQL语句运行的性能有着至关重要的影响。下面我们就Oracle常用的一些连接方法及适用情景做一个简单的介绍。[@more@]在日常基于数据库应用的开发过程中,我们经常需要对多个表或者数
优化SQL语句和应用程序
1. 测量SQL语句的性能Tkprof(Trace Kernel Profile)工具的使用功能:测量SQL语句的性能。查看tkprof的不同参数 c:>tkprof[@more@]1. 测量SQL语句的性能Tkprof(Trace Kernel Profile)工具的使用功能:测量SQL语句的性能。查看tkprof的不同参数 c:>tkprofc:> tkprof D:oracleadminERPudumperp_ora_1436.trc bao.txt sys=noexplain=scott/tiger@erpsys=no的含义:不包含递归SQL语句(即访问数据字典的隐含语句)SQL语句的处理要经过三个阶段:Parse、Execute、Execute。需要优化的SQL语句:占用过多的CPU时间。Parse、Execute、Execut
Oracle历史(2)
ORACLE公司之起源 很难想象,ORACLE公司的这一段传奇居然要从IBM开始。[@more@]ORACLE公司之起源 很难想象,ORACLE公司的这一段传奇居然要从IBM开始。 1970年的6月,IBM公司的研究员埃德加·考特(Edgar Frank Codd)在Communications of ACM 上发表了那篇著名的《大型共享数据库数据的关系模型》(A Relational Model of Data for Large Shared Data Banks)的论文。这是数据库发展史上的一个转折。要知道,当时还是层次模型和网状模型的数据库产品在市场上占主要位置。从这篇论文开始,拉开了关系型数据库软件革命的序幕。 虽然早在1970年
Oracle历史(1)
1977 年 拉里·艾利森 (Larry Ellison)、Bob Miner 和 Ed Oates 共同创建了软件开发实验室 (Software Development Laboratories)。1970 年 IBM 的一名研究人员写了一篇名为《大型共享数据库的关系数据模型》的研究论文,他们三人受到这篇文章的启发,决定构建一种新型数据库,称为关系数据库系统 (relational database system) 。[@more@]1977 年 拉里·艾利森 (Larry Ellison)、Bob Miner 和 Ed Oates 共同创建了软件开发实验室 (Software Development Laboratories)。1970 年 IBM 的一名研究人员写了一篇名为《大型共享数据库的关系数据
Oracle SQL*PLUS基础
Oracle的SQL*PLUS是设计所有应用系统的基础工具。要想将应用系统设计成一个健壮的、性能优越的系统。最关键的是要理解RDBMS的真正含义和结构,理解Oracle SQL*PLUS 的特点和核心,弄清关系数据库与桌面数据库的差别。比如理解数据的完整性、一致性、索引、视图等。只有这样才能设计出符合Oracle特点的应用系统。从而保证系统在提供使用后不会出现一致性、性能等问题。[@more@]Oracle的SQL*PLUS是设计所有应用系统的基础工具。要想将应用系统设计成一个健壮的、性能优越的系统。最关键的是要理解RDBMS的真正含义和结构,理解Oracle SQL*PLU
Oracle SQL使用绑定变量的方法
在网站应用的开发中,一个较流行的方法便是使用 php 编程,php编程方法简单明了,直接在html 中嵌入php 代码,对于开发基于数据库的动态应用十分方便。但是,许多开发员在用php开发基于Oracle 数据库的应用时,仍沿习开发基于 Mysql 的应用的方法,未使用绑定变量,使得Oracle SGA 区中SQL语句的重用性极低,浪费了内存,降低了系统性能。 因而,在此,先简单介绍一下Oracle SQL共享的机制,再介绍如何在 php 中使用绑定变量,从而实现Oracle 数据库中 sql语句的共享。[@more@]在网站应用的开发中,一个较流行的方法便是使用 php 编程,ph