- 博客(26)
- 收藏
- 关注
转载 层次查询START WITH... CONNECT BY PRIOR、LEVEL伪列
一、层次查询 START WITH... CONNECT BY PRIORSTART WITH 指定层次的根行(开始的地方)。 这个子句对于一个正确的分级查询是必须的。CONNECT BY PRIOR 指定列, 其中存在父与子行的关系。对于分级查询该子句是必须的。PRIOR指上一条记录的意思。 CONNECT BY PRIOR COLUMN1 = COLUMN2 遍历方向:
2014-01-22 11:01:17
1667
转载 连接分组
连接分组连接分组提供一种简明的方式来生成有用的分组组合为了指定连接分组集合, 用逗号分开多重分组集合, ROLLUP, 和CUBE操作, 以便ORACLE服务器将它们组合在一个单个的GROUP BY 子句中分组是每个分组集合交叉乘积的结果GROUP BY GROUPING SETS(a,b), GROUPING SETS(c,d)前面的SQL定义下面的分组:(a,c), (a,
2014-01-22 09:48:15
811
转载 复合列
复合列 复合列是一个列的集合, 它在分组的时候计算作为一个单元被处理。如下面的语句, 在圆括号中指定列: ROLLUP(a,(b,c),d) 在这里, (b,c)组成复合列, 并且作为一个单元被处理。通常, 复合列在ROLLUP、CUBE和GROUPING SETS中是有用的。例如, 在CUBE或ROLLUP中, 复合列将跳过某些级别上的聚合。
2014-01-21 21:33:39
904
转载 GROUPING SETS分组集
GROUPING SETS分组集GROUPING SETS是GROUP BY子句更进一步的扩展, 它让你能够定义多个数据分组。这样做使聚合更容易, 并且因此使得多维数据分析更容易。 你能够用GROUPING SETS在同一查询中定义多个分组ORACLE服务器计算在GROUPING SETS子句中指定的所有分组; 用UNION ALL操作组合单个的分组结果分组集合的效率对基表仅进行一
2014-01-21 20:19:03
5582
转载 GROUPING函数
GROUPING函数 GROUPING函数既可以与CUBE操作一起使用, 也可以与ROLLUP操作一起使用, 它能帮助你理解概要值是怎样产生的。 GROUPING函数使用一个单独的列表示。在GROUPING函数中的expr必须匹配一个GROUP BY子句中的表达式, 该函数的返回值0或1。 GROUPING函数的返回值用于:
2014-01-21 19:20:03
11336
转载 带ROLLUP或CUBE运算的GROUP BY
一、带ROLLUP或CUBE运算的GROUP BY 在一个查询的GROUP BY子句中指定ROLLUP和CUBE运算。ROLLUP分组产生一个包含常规分组行和小计行的结果集。CUBE分组产生一个包含ROLLUP行和交叉表行的结果集。ROLLUP和CUBE操作只在ORACLE8i及以后版本可用。二、ROLLUP操作 在幻灯片的例子中:显示用GROUP BY子
2014-01-21 12:48:52
809
转载 正则表达式
元字符意思例子\说明要匹配的字符是一个特殊字符, 常量或者后引用。(后引用重复上一次的匹配)\n匹配换行符\\匹配\\(匹配(\)匹配)^匹配字符串的开头位置如果A是字符串的第一个字符,^A匹配A$匹配字符串的末尾位置如
2014-01-17 17:59:13
613
转载 ORACLE归档模式与非归档模式
一、 什么是ORACLE归档模式 ORACLE数据库有联机重做日志, 这个日志是记录对数据库所做的修改, 比如插入、删除、更新数据等, 对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候, 就会发生日志切换, 这时联机重做日志组2成为当前使用的日志, 当联机重做日志组2写满时候, 又会发生日志切换, 去写联机重做日志组1,
2013-12-27 14:57:23
646
原创 ORACLE锁
一、ORACLE加锁的原因: 数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时, 在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据, 破坏数据库的一致性。 加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前, 先向系统发出请求, 对其加锁。加锁后事务就对该数据对象有了一定的
2013-12-26 15:03:20
452
转载 ORACLE DDL锁介绍
在DDL操作中会自动为对象加DDL锁(DDL Lock),从而保护这些对象不会被其他会话所修改。例如,如果我执行一个DDL操作ALTERTABLE T,表T上就会加一个排他DDL锁,以防止其他会话得到这个表的DDL锁和TM锁。在DDL语句执行期间会一直持有DDL锁,一旦操作执行就立即释放DDL锁。实际上,通常会把DDL语句包装在隐式提交(或提交/回滚对)中来执行这些工作。由于这个原因,在Oracl
2013-12-26 15:00:07
1084
转载 ORACLE UGA与CGA
1、UGA (The User Global Area) PGA是一段包含一个Oracle服务或后台进程的数据和控制信息的内存。PGA的大小依赖与系统的配置。在专用服务(Dedicated Server)模式下,一个服务进程与一个用户进程相关,PGA就包括了堆空间和UGA。而UGA(User Global Area用户全局区)由用户会话数据、游标状态和索引区组成。在共享服务(M
2013-12-26 11:00:13
1724
原创 PGA详解
PGA详解 当用户进程连接到数据库并创建一个对应的会话时, ORACLE服务进程会为这个用户专门设置一个PGA区, 用来存储这个用户会话的相关内容。 当这个用户会话终止时, 系统会自动释放这个PGA区所占用的内存。这个PGA区对于数据库的性能有比较大的影响, 特别是对于排序操作的性能。 所以, 在必要的时候合理管理PGA区, 能够在很大程度上提高数据库的性能。一、 PGA与S
2013-12-25 22:08:04
2771
原创 ORACLE专用服务器连接与共享服务器连接
在ORACLE9i或者10g中, 可以看到有2种连接模式, 一种叫做专用服务器连接(dedicated server), 另外一种叫做共享服务器连接(shared server)。一、ORACLE专用服务器连接 专用服务器连接就是说每次在对ORACLE进行访问请求时, ORACLE服务器的监听器会得到这个访问请求, 然后会为这个访问创建一个新的进程来进行服务。所以说,对于每一
2013-12-25 16:28:00
732
转载 ORACLE闩锁(Latch)
一、闩锁的概述(LATCH) LATCH和LOCK都是实现串行化的方法, LATCH是一个低级别的, 轻量级的锁, 获得和释放的速度都很快。 LOCK可能持续很长时间, 通过使用队列, 先进先出的方式实现。 ORACLE使用闩锁来实现内存的分配和释放。 例如:
2013-12-24 20:48:01
1296
2
原创 ORACLE MERGE INTO用法
ORACLE9i引入了MERGE命令, 你能够在一个SQL语句中对一个表同时执行inserts和updates操作
2013-12-23 20:07:18
543
原创 ORACLE UNDO表空间
UNDO表空间用于存放UNDO数据, 当执行DML操作(INSERT、UPDATE、DELETE和MERGE)时, ORACLE会将这些操作的旧数据写入到UNDO段, 在ORACLE 9i之前, 管理UNDO数据时使用(ROLLBACK SEGMENT)完成的。从ORACLE 9I开始, 管理UNDO数据不仅可以使用回滚段, 还可以使用UNDO表空间。因为规划和管理回滚段比较复杂, 所以ORACL
2013-12-23 16:21:03
707
原创 查询ORACLE被锁的对象以及解锁
1、查询oracle被锁对象及其语句SELECTa_s.owner, a_s.object_name, a_s.object_type, VN.SID, VN.SERIAL#, VS.SPID"OS_PID", VN.PROCESS"CLIENT_PID", VN.USERNAME,
2013-12-22 16:35:01
528
原创 DML事务锁定机制
DML事务锁定机制 能够保证当某个用户正在更新表里的一行数据时, 其他用户不能同时更新相同的数据行, 而且也不能删除或修改被更新的表。 行级锁(TX锁) UPDATE EMPLOYEE SET LAST_NAME='xkj' WHERE EXPLOYEE_ID=100 ; 1. ORACLE对该SQL语句进行解
2013-12-22 16:06:06
725
原创 五种模式的表级锁
表级锁共具有五种模式一、 行级排他锁(Row Exclusive, 简称RX锁) 当我们进行DML时会自动在被更新的表上添加RX锁, 或者也可以通过执行lock命令显式的在表上添加RX锁。 在该锁定模式下, 允许其他的事务通过DML语句修改相同表里的其他数据行, 或通过lock命令对相同表添加RX锁定, 但是不允许其他事务对相同的表添加排他锁(X锁) 。
2013-12-22 16:05:39
1277
原创 FOR UPDATE、FOR UPDATE NOWAIT、WAIT详解
一、 FOR UPDATE和FOR UPDATE NOWAIT的区别: 首先一点, 如果只是SELECT的话, ORACLE是不会加任何锁的, 也就是ORACLE对SELECT读到的数据不会有任何限制, 虽然这时候有可能另外一个进程正在修改表中的数据, 并且修改的结果可能影响到你目前SELECT语句的结果, 但是因为没有锁, 所以SELECT结果为当前时刻表中记录的状态。
2013-12-20 15:38:06
1925
原创 utlrp.sql脚本
utlrp.sql脚本: 1. utlrp.sql脚本是用来编译无效对象的脚本。 ORACLE建议在对数据库进行迁移、升级、降级后运行一遍该脚本来编译无效对象。 2. 该脚本可以在数据库运行的状态下执行编译、数据库中的invalid对象。 3. $ sqlplus '/as sysdba' @?/rdbms/admin/utlrp.sql 【F:/oracle/p
2013-12-17 20:54:57
2960
原创 ORACLE表空间、段、区的管理方式
一、 ORACLE表空间管理 ORACLE表空间的管理方式分为: 1.1 字典管理方式: 1.2 本地管理方式二、 ORACLE段管理 ORACLE段的管理分为: 2.1 手动段空间管理 2.2 自动段空间管理三、 ORACLE区管理 ORACLE区的管理
2013-12-16 17:20:50
4933
原创 ORACLE的逻辑存储体系
一、ORACLE的逻辑存储体系 ORACLE的逻辑存储体系包含了表空间(tablespace)、段(segment)、区(extent)、块(block)。 1.1 表空间 数据库是由一个或多个表空间组成, 表空间是由一个或多个数据文件组成。 一个表空间可能包含一个或多个段, 每个段都只属于一个表空间。
2013-12-14 17:55:07
765
原创 ORACLE数据库的启动与关闭
一、ORACLE数据库的启动 ORACLE数据库的启动过程包含三个步骤: 第一步: startup nomount 启动实例 实例的启动过程会读取数据库的参数文件, 为数据库分配SGA和启动后台进程。 读取参数文件的过程为: 先SPFILE再PFILE。 第二步: alter data
2013-12-13 15:33:27
501
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人