oracle
文章平均质量分 55
baobaojinjin
这个作者很懒,什么都没留下…
展开
-
行转列的通用过程
oracle 行转列的通用过程2010-04-09 23:28经常遇到发帖求行列转换的代码,用max(decode(..))回复后,十有八九会再问一句:如果列名不固定,或者列数不固定怎么办。就要用存储过程来写,这些存储过程的代码都大同小异,我就想能不能写个通用点的过程 试了一下,把结果发出来SQL code create or replace procedure pr...原创 2010-08-02 09:13:56 · 132 阅读 · 0 评论 -
oracle 10g 新特性 大文件表空间
简单介绍Oracle 10g 的存储能力有了显著的增强。这表现在很多方面,下面介绍 10g 新增的表空间类型:大文件 (Bigfile) 表空间。 大文件表空间从某种角度来说提高了 Oracle 在 VLDB 上的管理能力。 只有自动段空间管理的 LMT (Locally Managed Tablespaces ) 支持 BIGFILE 表空间。 大文件表空间只能包含一个文件,但是文件...原创 2011-11-29 23:22:00 · 112 阅读 · 0 评论 -
sql优化原则
Oracle 的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL 句级或是会话(session)级对其进行覆盖。 ...原创 2011-11-30 09:49:56 · 78 阅读 · 0 评论 -
oracle dba常用SQL语句
查看表空间的名称及大小:SQL>select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace...原创 2011-11-30 09:53:17 · 209 阅读 · 0 评论 -
Oracle对大对象类型操作:blob,clob,nclob,bfile
Oracle对大对象类型操作:blob,clob,nclob,bfile Lob类型基本介绍 Oracle和plsql都支持lob(large object) 类型,用来存储大数量数据,如图像文件,声音文件等。Oracle 9i realse2支持存储最大为4g的数据,oracle 10g realse1支持最大8到128万亿字节的数据存储,依赖于你的db的block ...原创 2011-11-30 11:05:28 · 263 阅读 · 0 评论 -
SQLSERVER ORACLE MYSQL高效分页查询
SQLSERVER ORACLE MYSQL高效分页查询如果查询结果需要分页,从效率上讲,下面的效率应该比较高(粉红色表示需要根据实际情况填充的地方)三类数据库中进行分页查询的高效率方法(目前来看):Oracle: SELECT * FROM ( SELECT MY_TABLE.*,ROWNUM AS MY_ROWNUM FROM (...原创 2011-11-30 11:08:37 · 111 阅读 · 0 评论 -
关系数据库设计范式
关系数据库设计范式简介 关系数据库中的关系必须满足一定的要求,即满足不同的范式。 目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三...原创 2011-11-30 11:10:18 · 79 阅读 · 0 评论 -
ORACLE 百万行数据查询优化
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id fro...原创 2011-12-01 09:36:21 · 132 阅读 · 0 评论 -
Oracle bitand()和trunc()函数使用方法
Oracle bitand()和trunc()函数使用方法bitand()函数 返回两个数值型数值在按位进行 AND 运算后的结果。 语法 BITAND(nExpression1,nExpression2) 参数 nExpression1,nExpression2 指定按位进行AND 运算的两个数值。如果 nExpression1 ...原创 2011-12-01 09:36:40 · 114 阅读 · 0 评论 -
表空间(tableSpace) 段(segment) 盘区(extent) 块(block) 关系
Oracle表空间(tableSpace)、段 (segment)、盘区(extent)、块(block),这些都是Oracle用来保存数据库对象的分配单元段 就是数据库对象,它消耗存储空间,如表、索引、回滚段等。当创建表的时候,将创建一个表段,当创建一个分区表时,即在每个分区上创建一个段,当创建索引 时,将创建一个索引段,每一个消耗存储空间的对象最终被存储在一个单一的段中,有回滚段,...原创 2011-12-01 09:36:57 · 128 阅读 · 0 评论 -
如何恢复一个被误drop的存储过程
这种恢复是非常容易的,原理就是利用了oracle里所有的存储过程的源代码都是存在dba_source里,而drop某个存储过程的时候,oracle这里肯定要去dba_source里把相关的源代码给delete掉,既然是delete,那就好办咯,直接flashback query就可以了。 如下是完整的恢复过程:用sys用户登陆,执行如下的查询: SQL> sele...原创 2011-12-01 09:37:10 · 231 阅读 · 0 评论 -
sql中 in 、not in 、exists、not exists 用法和差别
exists (sql 返回结果集为真) not exists (sql 不返回结果集为真) 如下: 表A ID NAME 1 A1 2 A2 3 A3 表B ID AID NAME 1 1 B1 2 2 B2 3 2 B3 表A和表B是1对多的关系 A.ID => B.AID SELECT I...原创 2011-12-01 09:37:28 · 62 阅读 · 0 评论 -
Oracle密码文件
创建Oracle密码文件的命令orapwd file=<> password=<> entries=最大数目这里的file命名规则在unix/linux下orapw<ORACLE_SID>,在windows下为 pwd<SID>.ora具体资料看下面的描述1. unix 环境:Administrator's Refere...原创 2011-12-05 11:49:33 · 96 阅读 · 0 评论 -
Oracle误删除表数据后的恢复详解
在过去,如果用户误删/更新了数据后,作为用户并没有什么直接的方法来进行恢复,他们必须求助DBA来对数据库进行恢复,到了Oracle9i,这一个难堪局面有所改善。Oracle 9i中提供了一项新的技术手段--闪回查询,用户使用闪回查询可以及时取得误操作前的数据,并可以针对错误进行相应的恢复措施,而这一切都无需DBA干预。以下 以数据库中表 web_userinfo1为例SQL>...原创 2011-12-05 11:49:41 · 87 阅读 · 0 评论 -
Oracle10g新特性:临时表空间组(temporary tablespace group)
Oracle10g新特性:临时表空间组(temporary tablespace group) 一个临时表空间组至少包含一个临时表空间。 临时表空间组无法显式创建,当第一个临时表空间分配给该组时自动创建,当组内所有临时表空间被移除时自动删除。 临时表空间组支持的操作: •可以将临时表空间从一个组移动到另外一个组(如果组不存在,则自动创建)。 •可以...原创 2011-12-05 11:49:57 · 71 阅读 · 0 评论 -
限制IP 访问 Oracle 的方法
一. 修改sqlnet.ora 文件sqlnet.ora文件在$ORACLE_HOME/network/admin 目录下,添加如下内容: tcp.validnode_checking=yes #允许访问的IP tcp.invited_nodes=(ip1,ip2…) #禁止访问的IP tcp.exclude...原创 2011-12-08 10:48:28 · 97 阅读 · 0 评论 -
exp/imp 与 expdp/impdp 对比 及使用中的一些优化事项
关于exp/imp 和 expdp/impdp, 之前整理的2篇Blog如下: ORACLE 数据库逻辑备份 简单 EXP/IMPhttp://blog.csdn.net/tianlesoftware/archive/2009/10/23/4718366.aspx Oracle 10g EXPDP和IMPDP使用说明http://blog.csdn.net/tianle...原创 2011-12-08 11:31:12 · 92 阅读 · 0 评论 -
DB 迁移到Data Guard 实施方案
原DB是 Linux Heartbeat 的HA 系统。 业务是7*24的。 所以迁移要考虑宕机时间的问题。 我考虑的是先将DG环境搭建好。 这样迁移过程中宕机的就2部分时间。 一是exp/imp 的时间。 还有一个就是Data Guard copy 同步的时间。 因为数据库不大。 所以时间应该不会太长,如果不出什么意外的话。 搬迁的方案: 1. 先正在运行的D...原创 2011-12-08 13:35:58 · 74 阅读 · 0 评论 -
Purge和drop的区别) Oracle 10g提供的flashback drop 新特性
(Purge和drop的区别) Oracle 10g提供的flashback drop 新特性 Oracle 10g提供的flashback drop 新特性 为了加快用户错误操作的恢复,Oracle10g提供了flashback drop的功能。而在以前的版本中,除了不完全恢复,通常没有一个好的解决办法。Oracle 10g的flashback drop功能,允许你从...原创 2011-11-29 23:15:39 · 78 阅读 · 0 评论 -
Oracle中用exp/imp命令快速导入导出数据(整理)
【用 exp 数 据 导 出】:1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中 exp system/manager@TEST file=d:\daochu.dmp full=y2 将数据库中system用户与sys用户的表导出 exp system/manager@TEST file=d:\daochu.dmp o...原创 2011-11-23 11:07:35 · 154 阅读 · 0 评论 -
转帖 浅谈oracle复合数据类型
/*oracle复合数据类型PL/SQL有两种复合数据结构:记录和集合。记录由不同的域组成,集合由不同的元素组成。*//*一、记录类型类似C语言中的结构,有两种定义方式:显式定义和隐式定义。*/create table test(id varchar2(20),mc varchar2(60));insert into tes...原创 2011-11-21 10:16:47 · 99 阅读 · 0 评论 -
拼字符串 将多行拼成一行
create or replace type string_agg_type as object( total varchar2(4000), static function ODCIAggregateInitialize(sctx IN OUT string_agg_type ) return number, memb...原创 2010-08-02 10:13:50 · 375 阅读 · 0 评论 -
oracle 自定义类型
SQL 关于VARRAY类型在表中的应用SQL 关于VARRAY类型在表中的应用create or replace type emails_va as varray(2) of varchar2(30);create table EMP( EMPID NUMBER not null, EMPNAME VARCHAR2(20), EMAILS E...原创 2010-05-31 15:33:55 · 77 阅读 · 0 评论 -
查看数据库的常用SQL
1、查看表空间的名称及大小select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom dba_tablespaces t, dba_data_files dwhere t.tablespace_name = d.tablespace_namegroup by t.tablespace_name...原创 2010-06-04 09:03:43 · 100 阅读 · 0 评论 -
Oracle 数据库系统使用经验
1.having 子句的用法 having 子句对 group by 子句所确定的行组进行控制 ,having 子句条件中只允许涉及常量 , 聚组函数或 group by 子句中的列 .2. 外部联接 "+" 的用法外部联接 "+" 按其在 "=" 的左边或右边分左联接和右联接 . 若不带 "+" 运算符的表中的一个行不直接匹配于带 "+" 预算符的表中的任何行 , 则前...原创 2010-06-04 09:42:56 · 85 阅读 · 0 评论 -
Oracle 常用SQL技巧
1. SELECT子句中避免使用 “*” 当你想在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用 ‘*’ 是一个方便的方法.不幸的是,这是一个非常低效的方法. 实际上,ORACLE在解析的过程中, 会将“*” 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间. 2.使用DECODE函数来减少处理时间 使用D...原创 2011-09-06 09:31:15 · 66 阅读 · 0 评论 -
oracle 学习网站
http://www.eygle.comhttp://jdeuser.net/forum.phphttp://bbs.erp100.com/?fromuser=zshmailhttp://www.boobooke.com/bbs/index.php 小布老师http://bbs.51cto.com/forum-42-1.htmlhttp://imysql.cn/ mysql ...原创 2011-09-06 13:38:48 · 138 阅读 · 0 评论 -
oracle的临时表空间temporary tablespace
经常看到有人说看到temporary tablespace空间不释放等等的问题,整理一篇metalink上的相关文章,入门级的,还算浅显吧。基本上就是翻译了。有疑问的欢迎讨论。参考metalink:Temporary Segments Are Not Being De-Allocated After a Sort(Note:1039341.6)sort之后临时段不回收...原创 2011-09-14 22:40:39 · 207 阅读 · 0 评论 -
oracle temp表空间处理方法
一.检查过程(1) 我们可以查查数据库alert日志例如:/u0/admin/sm/bdump/alert_sm.log数据库中并没有报temp表空间的错,一般来说不报错,可以先不管,因为没有temp表空间可能由于没有需要用到而不释放空间。(2) 我们可以用这个语句查一下SELECT se.username,sid,serial#,sql_address,machin...原创 2011-09-14 22:42:04 · 150 阅读 · 0 评论 -
ORACLE 执行计划分析
ORACLE 执行计划分析一、什么是执行计划An explain plan is a representation of the access path that is taken when a query is executed within Oracle.二、如何访问数据At the physical level Oracle reads blocks o...原创 2011-09-26 11:14:21 · 110 阅读 · 0 评论 -
SQL语句的执行步骤
SQL语句的执行步骤 一条SQL语句的处理过程要经过以下几个步骤。 1 语法分析 分析语句的语法是否符合规范。 2 语义分析 检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。 3 视图转换 将涉及视图的查询语句转换为相应的对基表查询语句。 4 表达式转换 将复杂的SQL表达式转换为较简单的等效连接表达式。 5 选择优化器 不同的优化器一般产生不同的“执行计划” ...原创 2011-09-26 13:50:17 · 122 阅读 · 0 评论 -
Oracle 分区表
一. 分区表理论知识 Oracle提供了分区技术以支持VLDB(Very Large DataBase)。分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中。分区完全对应用透明。 Oracle的分区表可以包括多个分区,每个分区都是一个独立的段(SEGMENT),可以存放到不同的表空间中。查询时可以通过查询表来访问各个分区中的数据,也可以通过在查询时直接指...原创 2011-12-12 15:36:23 · 81 阅读 · 0 评论 -
ORA-01555
ORA-01555 快照过旧,是数据库中很常见的一个错误,比如当我们的事务需要使用undo来构建CR块的时候,而此时对应的undo 已经不存在了, 这个时候就会报ORA-01555的错误。 有关CR 块,参考我的Blog: CR (consistent read) blocks create 说明 ...原创 2011-12-12 15:59:30 · 128 阅读 · 0 评论 -
Optimizer CBO RBO
Oracle 数据库中优化器(Optimizer)是SQL分析和执行的优化工具,它负责指定SQL的执行计划,也就是它负责保证SQL执行的效率最高,比如优化器决定Oracle以什么样的方式来访问数据,是全表扫描(Full Table Scan),索引范围扫描(Index Range Scan)还是全索引快速扫描(INDEX Fast Full Scan:INDEX_FFS);对于表关联查询,它负...原创 2011-12-12 16:17:47 · 103 阅读 · 0 评论 -
SQL的硬解析和软解析
我们都知道在Oracle中每条SQL语句在执行之前都需要经过解析,这里面又分为软解析和硬解析。在Oracle中存在两种类型的SQL语句,一类为 DDL语句(数据定义语言),他们是从来不会共享使用的,也就是每次执行都需要进行硬解析。还有一类就是DML语句(数据操纵语言),他们会根据情况选择要么进行硬解析,要么进行软解析。 DML:INSERT,UPDATE,DELETE,SELECT...原创 2011-12-13 08:57:16 · 151 阅读 · 0 评论 -
SQL Server 和 Oracle 数据类型对应关系
SQL Server 和 Oracle 数据类型对应关系 当数据从SQL Server 向 ORACLE 10g迁移时,可以做如下调整SQL SERVERORACLEbigint(8)number(19)binary(50)raw(50)bit(1)...原创 2012-02-02 08:40:30 · 82 阅读 · 0 评论 -
Oracle分页存储过程
名称:spAll_DeleteNoneUnique输入:要查询的表名和字段列表输出:调用:说明:实现千万级数据的分页显示!--可以在5秒内获取1448万条记录里的第1200页的100条记录*/ sqlserver 分页CREATE PROCEDURE GetRecordFromPage @tblName varchar(255), -- 表名 @...原创 2011-11-14 10:51:26 · 98 阅读 · 0 评论 -
oracle 锁查询
如果怀疑表被锁了,或者事务未被正常关闭,在Oracle数据库中我们可以通过以下语句进行查询获取相关信息:Sql代码select t2.username, t2.sid, t2.serial#, t3.object_name, t2.OSUSER, t2.MACHINE, ...原创 2011-11-21 09:14:55 · 231 阅读 · 0 评论 -
联机事务处理(OLTP)和联机分析处理(OLAP)的不同
联机事务处理(OLTP)和联机分析处理(OLAP)的不同,主要通过以下五点区分开来。 用户和系统的面向性: OLTP是面向顾客的,用于事务和查询处理 OLAP是面向市场的,用于数据分析 数据内容: OLTP系统管理当前数据. OLAP系统管理大量历史数据,提供汇总和聚集机制. 数据库设计: OLTP采用实体-联系ER模型和面向应用的数据库...原创 2012-02-28 15:07:57 · 649 阅读 · 0 评论