sar命令用法(转)
sar 命令行的常用格式: sar [options] [-A] [-o file] t [n] 在命令行中,n 和t 两个参数组合起来定义采样间隔和次数,t为采样间隔,是必须有 的参数,n为采样次数,是可选的,默认值是1,-o file表示将命令结果以二进制格式 存放在文件中,file 在此处不是关键字,是文件名。options 为命令行选项,sar命令 的选项很多,下面只列出常用选项: -A:所有报告的总和。 -u:CPU利用率 -v:进程、I节点、文件和锁表状态。 -d:硬盘使用报告。 -r:没有使用的内
oracle 写入数据的过程
1、事务开始;2、在buffer cache中找到需要的数据块,如果没有找到,则从数据文件中载入buffer cache中;3、事务修改buffer cache的数据块,该数据被标识为“脏数据”,并被写入log buffer中;4、事务提交,LGWR进程将log buffer中的“脏数据”写入redo log file中;5、当发生checkpoint,CKPT进程更新所有数据文件的文件头中的信息,DBWn进程则负责将Buffer Cache中的脏数据写入到数据文件中。附:checkpoint由ckpt进程触发oracle进行checkpoint动作,将data buffer中的脏块(已经写在redo里记录但是没有写到datafile里的)的内容写入到data
oracle 流技术(转),用于学习
Oracle 流提供了一种在数据库之间共享消息和数据的简单而灵活的方法。例如, 您可以使用流, 作为事件捕获对数据库对象所进行的 DML 和 DDL 更改。然后您可以将这些事件传播到其他数据库, 从而有效地将数据库对象复制到其他数据库。 Oracle 流包括三个主要过程: 捕获, 用来捕获对重做日志中数据库对象的更改。这些更改将放置在一个队列中。 传播, 用来将更改从源数据库中的队列传播到目标数据库中的队列。 应用, 用来从目标队列区域检索更改并应用于数据库。 使用stream流复制环境作表级或模式schema级甚至DB级的数据复制,本脚本仅供参考(详
ORACLE集合常用方法
集合方法pl/sql预定义了在varray 和嵌套表实例上进行调用的方法。这些方法能在集合上执行一定的功能。EXISTS该函数返回集合中第一个元素的索引,如果集合为空,返回NULLCollection.EXISTS(index)COUNT该函数集合元素的数目Collection.COUNTDELETE该过程从嵌套表中删除一个或多个或合部元素Table_name.DELETE 删除所有元素Table_name.delete(index)删除指定索引的记录Table_name.delete(start_index,end_index)删除区间内元素FIRST返回集合第一个元素索引,如果集合为空,返回NULLCollection.FIRSTLAST返回集合中最后一个元素索引,如果集合
ORACLE中的异常(转)
1、异常的优点 如果没有异常,在程序中,应当检查每个命令的成功还是失败,如 BEGIN SELECT ... -- check for ’no data found’ error SELECT ... -- check for ’no data found’ error SELECT ... -- check for ’no data found’ error 这种实现的方法缺点在于错误处理没有与正常处理分开,可读性差,使用异常,可以方便处理错误,而且异常处理程序与正常的事务逻辑分开,提高了可读性,如 BEGIN SELECT ... SELECT ... SELECT ... ... EXCEPTION WHEN NO_DATA_FOUND THEN -- ca
关于事务对数据块的操作过程的分析和试验(2)(转)
快速提交 当一个事物访问一个数据块时,它会占用数据块Itl中的一个条目,记录下事务ID(Xid)、该事务对该数据块操作时使用的回滚块地址(Uba)和在该数据块上产生的行级锁的数量,并在对应数据行上打上行锁标志,与Itl对应。当提交时,设置Itl中的事物标志为U,并写入一个快速提交SCN(Fsc),但并不清除锁标志。这就是快速提交。 看下面的一个试验。 先对数据块进行修改,然后dump出数据块:SQL> conn demo/demoConnected.SQL>SQL> alter system flush buffer_cache; System altered. SQL>SQL> update t_
关于事务对数据块的操作过程的分析和试验(1)(转)
事务和数据块这里主要想通过试验来推断Oracle的事务在数据块(Oracle中存储的最小单位)上一些微观操作,以便于更好的理解Oracle的事务控制、一致性处理及锁冲突。创建测试表:SQL> create table t_multiver (a number, b number); Table created. SQL> insert into t_multiver values (1,1); 1 row created. SQL> insert into t_multiver values (2,2); 1 row created. SQL> insert into t_multiver values (3,3); 1 row created. SQL>SQL> commit; Commit complete.首先,看一下数据块上和记录有关的标示,dump一个数
各种分区类型详解(带图)和索引分区
范围分区CREATE TABLE sales_range (salesman_id NUMBER(5), salesman_name VARCHAR2(30), sales_amount NUMBER(10), sales_date DATE) PARTITION BY RANGE(sales_date) ( PARTITION sales_jan2000 VALUES LESS THAN(TO_DATE('02/01/2000','MM/DD/YYYY')), PARTITION sales_feb2000 VALUES LESS THAN(TO_DATE('03/01/2000','MM/DD/YYYY')), PARTITION sales_mar2000 VALUES LESS THAN(TO_DATE('04/01/2000','MM/DD/YYYY')), PARTITION sales_apr2000 VALUES LESS THAN(TO_DATE('05/01/2000','MM/DD/YYYY')) );列表分
analyze table 的各种语法及对应工作机制
SQL> CREATE TABLE a AS SELECT * FROM all_objects;CREATE TABLE b AS SELECT * FROM all_objects;CREATE TABLE c AS SELECT * FROM all_objects;CREATE TABLE d AS SELECT * FROM all_objects;Table created.SQL> Table created.SQL> Table created.SQL> Table created.SQL> CREATE UNIQUE INDEX unq_a ON etl.a(OBJECT_ID);CREATE UNIQUE INDEX unq_b ON etl.b(OBJECT_ID);CREATE UNIQUE INDEX unq_c ON etl.c(OBJECT_ID);CREATE UNIQUE INDEX unq_d ON etl.d(OBJECT_ID);Index created.SQL> Index created.SQL>
oracle 管理常用命令
第一章:日志管理 1.forcing log switches sql> alter system switch logfile; 2.forcing checkpoints sql> alter system checkpoint; 3.adding online redo log groups sql> alter database add logfile [group 4] sql> ('/disk3/log4a.rdo','/disk4/log4b.rdo') size 1m; 4.adding online redo log members sql> alter database add logfile member sql> '/disk3/log1b.rdo' to group 1, sql> '/disk4/log2b.rdo' to group 2; 5.changes the name of the online redo logfile sql> alter database rename file
oracle table()函数用法
PL/SQL表---table()函数用法 /*PL/SQL表---table()函数用法:利用table()函数,我们可以将PL/SQL返回的结果集代替table。oracle内存表在查询和报表的时候用的比较多,它的速度相对物理表要快几十倍。simple example:1、table()结合数组:*/create or replace type t_test as object(id integer,rq date,mc varchar2(60));create or replace type t_test_table as table of t_test;create or replace function f_test_array(n in number default null) return t_test_tableas v_test t_test_table := t_test_table();beginfor i in 1 .. n
关于 pipe row的用法(转,待做实验)
为了让 PL/SQL 函数返回数据的多个行,必须通过返回一个 REF CURSOR 或一个数据集合来完成。REF CURSOR 的这种情况局限于可以从查询中选择的数据,而整个集合在可以返回前,必须进行具体化。Oracle 9i 通过引入的管道化表函数纠正了后一种情况。表函数是返回整个行的集(通常作为一个集合)的函数,可以直接从 SQL 语句中进行查询,就好像它是一个真正的数据库表一样。管道化表函数与之相似,但是它像在构建时一样返回数据,而不是一次全部返回。管道化表函数更加有效,因为数据可以尽可能快地返回。管道化表函数必须返回一个集合。在函数
关于嵌套表为record类型与bulk bind的结合使用
在PL/SQL中,BULK In-BIND与RECORD,%ROWTYPE是不能在一块使用的,也就是说,BULK In-BIND只能与简单类型的数组一块使用,这样导致如果有多个字段需要用BULK In-BIND来处理的话,代码就比较复杂:declaretype tab_test is table of tmp_0925%rowtype;v_id tab_test;cursor cur_aids is select *from tmp_0925where rn >= v_begin and rn <= v_end;beginopen cur_aids;fetch cur_aids bulk collect into v_id;v_cnt := v_id.count;forall j in 1..v_cntupdate testset (id, name, age) = (select v_id(j).id, v_id(j).name, v_id(j).
关于高水位线和delete
因为oralce有一个HWM高水位,它是oracle的一个表使用空间最高水位线。当插入了数据以后,高水位线就会上涨,但是如果你采用delete语句删除数据的话,数据虽然被删除了,但是高水位线却没有降低,还是你刚才删除数据以前那么高的水位。除非使用truncate删除数据。那么,这条高水位线在日常的增删操作中只会上涨,不会下跌,所以数据库容量也只会上升,不会下降。而使用select语句查询数据时,数据库会扫描高水位线以下的数据块,因为高水位线没有变化,所以扫描的时间不会减少,所以才会出现使用delete删除数据以后,查询的速度还是和delet
关于COUNT STOPKEY的工作机制
SQL> select rownum rn ,a.* from cnmir.ew_auctions a where rownum<50000;Execution Plan----------------------------------------------------------Plan hash value: 721966694----------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |----------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 49999 | 4833K| 163 (2)| 00:00:0
关于hextoraw()与utl_raw.cast_to_raw及rawtohex()
SQL> create table test_raw (raw_col raw(10)); 表已创建。 SQL> insert into test_raw values (hextoraw('ff')); 已创建 1 行。 SQL> insert into test_raw values (hextoraw('0')); 已创建 1 行。 SQL> insert into test_raw values (hextoraw('23fc')); 已创建 1 行。 SQL> insert into test_raw values (hextoraw('fffffffffff')); 已创建 1 行。 SQL> insert into test_raw values (hextoraw('ffffffffffffffffffff')); 已创建 1 行。 SQL> insert into test_raw values (utl_raw.cast_to_raw('051')); 已创建
数据库的编码浅谈(ZHS16GBK与US7ASCII)
SQL> SELECT RAWTOHEX('郭A军') from dual;B9F941BEFCSQL> select dump('郭A军') from dual;Typ=96 Len=5: 185,249,65,190,252SQL> select chr(185)||chr(249)||chr(65)||chr(190)||chr(252) from dual;郭A军请注意:在ASC码和十六进制码中,185对应B9,249对应F9,65对应41,190对应BE,252对应FC而编码时,185,249两个字节构成"郭"字,65一个字节构成"A"字,190,252两个字节构成"军"字.本机测试环境中编码是US7ASCII,是一个字节为一个存储单位,对于中文字的处理方式是用两个存储单位连接起来形成中文字的
关于ORACEL与异构数据库之间建立dblink
db link只能是oracle与oracle之间,不能是oracle与异构数据库之间,它们之间可以通过透明网关来实现!实现后也可以通过DBLINK连接,不过这种DBLINK是一种透明的机制[@more@]
AWK常用语法汇总(转)
变量名 含义 ARGC 命令行变元个数 ARGV 命令行变元数组 FILENAME 当前输入文件名 FNR 当前文件中的记录号 FS 输入域分隔符,默认为一个空格 RS 输入记录分隔符 NF 当前记录里域个数 NR 到目前为止记录数 OFS 输出域分隔符 ORS 输出记录分隔符 1、awk '/101/' file 显示文件file中包含101的匹配行。 awk '/101/,/105/' file awk '$1 == 5' file awk '$1 == "CT"' file 注意必须带双引号 awk '$1 * $2 >100 ' file awk '$2 >5 && $2<=15'
awk用法小结
$ awk '{guojun=$1;print length(guojun)" "guojun}' readtxt8 sq_forum4 bgin5 nihao4 hehe4 enda4 wuya8 sq_forum$ awk '{guojun=$1;print length($guojun)" "$guojun}' readtxtawk: 0602-562 Field $(sq_forum) is not correct.The input line number is 1. The file is readtxt.The source line number is 1.在AWK中变量只能用本身的,不能用$符号$ awk 'BEGIN{guojun="nihao"}{print length(guojun)" "guojun}' readtxt5 nihao5 nihao5 nihao5 nihao5 nihao5 nihao5 nihao$ awk 'begin {guoj