read consistent process
the process for oracle read data block [@more@]■ User 1 updates a record in block 777 (user1 has not committed).■ User 2 queries the same block and sees that the lock byte is set for a row being queried.■ User 2 goes to the ITL portion of the block and get the XID (transaction ID).■ The XID maps to the UNDO block, which holds the information before the update was done.■ A clone of the block is done (call it block 778).■ The UNDO information is applied to the block, rolling it forward, but
Bash 实例
http://www.ibm.com/developerworks/cn/linux/shell/bash/bash-2/index.html在 介绍性文章 中的样本程序中,我们使用环境变量 "$1" 来引用第一个命令行自变量。类似地,可以使用 "$2"、"$3" 等来引用传递给脚本的第二和第三个自变量。这里有一个例子: #!/usr/bin/env bash echo name of script is $0 echo first argument is $1 echo second argument is $2 echo seventeenth argument is $17 echo number of arguments is $# 除以下两个细节之外,此例无需说明。第一,"$0" 将扩
awk 实例
第一个 Awk您应该会看到 /ect/passwd 文件中的内容,本文使用该文件来解释 awk 的工作原理。当调用 awk 时,我们指定 /etc/passwd 作为输入文件。Awk 在执行期间对 /etc/passwd 文件中的每一行依次执行 print 命令。所有输出都发送到 stdout,可以得到类似 cat 命令的结果。现在解释代码块 { print }。在 Awk 中,花括号用于将代码分块,这与 C 语言类似。我们的代码块中只有一条 print 命令。在 Awk 中,当 print 命令单独出现时,将打印当前行的全部内容。 $ awk '{ print $0 }' /etc/passwd 在 Awk 中,变量 $0 表示整个当前行,因此
tr命令“字符”处理
tr是Unix系统非常实用的工具,其实用tr做到的事情,几乎都可用sed做到,你可以把tr当作是实现sed许多基本功能的sed“简体”。我认为tr是简单的“字符”处理工具,而sed是功能非常强大的“字符串”处理工具。【注意】tr是单个字符处理工具,而不是字符串处理工具!我自己用过比较实用的例子如下:1、将文件file中出现的"abc"替换为"xyz"# cat file | tr "abc" "xyz" > new_file【注意】这里,凡是在file中出现的"a"字母,都替换成"x"字母,"b"字母替换为"y
sed 命令
C.1. Sed对于sed工具包的所有操作来说, 我们最关心的其实就是3个最主要的操作. 分别是printing(打印到stdout), deletion(删除), 和substitution(替换). Sed是非交互式的行编辑器. 它即可以从stdin中接收文本输入, 也可以从文件中接收文本输入, 它对输入中的指定行进行特定的操作, 一行操作一次, 然后将结果输出到stdout, 或输出到文件中. 在shell脚本中使用的话, sed通常都是作为管道工具链中的一个处理部分来使用. Sed会决定它需要处理那些行, 因为sed的参数就包含有地址范围. [1] 既可以通过行号来指定地址范围, 也可以通过模式匹配来决
数据仓库设计(转)
数据仓库设计(转贴)[@more@]数据仓库设计(转贴) 数据仓库设计指南在一般的数据仓库应用系统中,根据系统体系结构的不同,数据仓库设计的内容和范围不尽相同,并且设计方法也不尽相同,下面的两幅图示分别表示带有ODS的数据仓库应用系统体系结构和不带ODS的数据仓库应用系统体系结构。本文将说明两个体系结构上的差异以及这种差异造成的设计方法的不同,并且重点介绍带有ODS的体系结构中数据仓库的设计方法。在数据仓库的设计指导思想中,数据仓库的概念定义是非常重要的,数据仓库概念规定了数据仓库所具有的几个基本特性,这些特性也正是
ORA-01114: IO error writing block to file (block #)
Following error arose, check data tablespace, there's sufficent free space. There's high probability that this error is due to database unix box disk space. We know the nature of oracle temp tablespace that when space added to temp space it does not allocate physical space, take only when required . The temp mount point is of 15Gb and the tempfile created is of 40GB, So as 15GB size usage reached it throws an error of No space left on device . I guess if the temp space is small, oracle will tr
Isolation level: ORA-08177 can't serialize access for this transaction
Mulit processes are using one procedure, this error arose. Oracle gives the explanation as below:ORA-08177 can't serialize access for this transactionCause: Encountered data changed by an operation that occurred after the start of this serializable transaction.Action: In read/write transactions, retry the intended operation or transaction.[@more@]这个错误是由于设置了事物隔离级别为serializable. 在procedure开始设置为READ COMMITTED也还是出现该错误:EXECUTE IMMEDIATE 'SET TRANSACTION ISOLATION LEVEL
awk, sed 正则表达式
文章出处:http://www.diybl.com/course/3_program/shell/shelljs/200862/119962.html几个实例$ awk '/^(no|so)/' test-----打印所有以模式no或so开头的行。$ awk '/^[ns]/{print $1}' test-----如果记录以n或s开头,就打印这个记录。$ awk '$1 ~/[0-9][0-9]$/(print $1}' test-----如果第一个域以两个数字结束就打印这个记录。$ awk '$1 == 100 || $2 < 50' test-----如果第一个域等于100或者第二个域小于50,则打印该行。for example, contents of test as below:20 jiangxs hello20 30 jiangxs jiangzythe command shows the second
正则表达式简介
http://net.pku.edu.cn/~yhf/tutorial/tao_regexps_zh.html[@more@]么是正则表达式一个正则表达式,就是用某种模式去匹配一类字符串的一个公式。很多人因为它们看上去比较古怪而且复杂所以不敢去使用——很不幸,这篇文章也不能够改变这一点,不过,经过一点点练习之后我就开始觉得这些复杂的表达式其实写起来还是相当简单的,而且,一旦你弄懂它们,你就能把数小时辛苦而且易错的文本处理工作压缩在几分钟(甚至几秒钟)内完成。正则表达式被各种文本编辑软件、类库(例如Rogue Wave的tools.h++)、脚本工具(像awk/grep/sed)广泛的支持
grep 正则表达式
http://blog.rednet.cn/user1/213546/archives/2007/35795.html[@more@]以下为整理的grep 正则表达式的大部分功能,详细参见man grep:要用好grep这个工具,其实就是要写好正则表达式,所以这里不对grep的所有功能进行实例讲解,只列几个例子,讲解一个正则表达式的写法。$ ls -l | grep '^a' 通过管道过滤ls -l输出的内容,只显示以a开头的行。$ grep 'test' d* 显示所有以d开头的文件中包含test的行。$ grep 'test' aa bb cc 显示在aa,bb,cc文件中匹配test的行。$ grep '[a-z]{5}' aa 显示所有包含每个字符串至少有5个连续小写字符的字符
Solaris性能检测(prstat)
prstat:系统进程监控下面将深入探讨 Solaris 工具 prstat(1),帮助了解系统效用的全面实用工具。prstat – 全面的实用工具Solaris 中最重要、使用最广的实用工具是 prstat(参见 prstat(1))。prstat 可以快速回答以下问题: *系统占用了多少 CPU 和内存? *系统效用了哪些进程(或用户、 zone 、项目、任务)? *系统怎样使用进程/线程(用户绑定,I/O 绑定)?在最简单的形式中,prstat <interval>(即 prstat 2)将检测所有进程并根据 CPU 使用率报告数据。进程的顺序根据当前的 CPU 使用率从高(最多)到低(最少)排
vmstat的应用详解
vmstat的应用详解 http://www.chinaunix.net/jh/6/882302.html[@more@]Virtual Memory Statistics ( vmstat ) vmstat 是报告关于进程,虚拟内存,磁盘,CPU活动的一个统计报告. 在一个多CPU系统中,vmstat统计所有个数的CPU的平均输出.为每个进程进行统计.没有参数时,vmstat显示每一行是自从系统启动以后的虚拟内存的活动情况.(注:vmstat输出的第一行对于实施统计没有意义) 用法: 基本的用法是vmstat <options> interval count option: 指定我们所需要的输出选项比如: paging -p , cache -c ,.interrupt -i 等等(还有一个比较有用的是S)
Solaris 命令大全
From: http://bbs2.chinaunix.net/thread-1448707-1-1.html[@more@]Solaris 命令大全终端控制 ctrl+s :终止屏幕输出,如用cat命令输出时,要停一下 ctrl+q :恢复ctrl+q的输出ctrl+c :中断当前的活动,返回命令提示符 ctrl+d :表示文件的结束或退出,如退出终端窗口 ctrl+u :擦除整个命令行 ctrl+w :擦除命令行最后一个单词 ctrl+h :擦除命令行最后一个字符 bc :计算器 #ksh 切换到k shell 命令: .................................................................# uname SunOS NAME #man uname uname - print name of curr
DBMS_LOB.READ access CLOB xml
DBMS_LOB.READ, REGEXP_REPLACE 读取CLOB里的信息.[@more@]set serveroutput on;SET LINESIZE 150spool /tmp/info_cache_report.csv;DECLAREv_clob CLOB;v_data VARCHAR2(1000);v_buffer INTEGER;v_audit_string VARCHAR2(1000);v_audit_date DATE;v_audit_version VARCHAR2(1000);v_trade_type VARCHAR2(1000);v_sub_type VARCHAR2(1000);BEGINDBMS_OUTPUT.PUT_LINE('QUEUE_info_ID,info_IDENTIFIER,AUDIT_VERSION,TRADE_TYPE,EXTRACTED_IND,COB_DATE,AUDIT_TIMESTAMP,ENTRY_TIMESTAMP,info_SIZE,DELAY_SECONDS');for i in (select * fro
对Hash Join的一次优化
转: http://www.itpub.net/viewthread.php?tid=955209&extra=&page=1对Hash Join的一次优化[@more@]对Hash Join的一次优化前两天解决了一个优化SQL的case,SQL语句如下,big_table为150G大小,small_table很小,9000多条记录,不到1M大小hash_area_size, sort_area_size均设置足够大,可以进行optimal hash join和memory sortselect /*+ leading(b) use_hash(a b) */ distinct a.IDfrom BIG_TABLE a, SMALL_TABLE bwhere (a.category = b.from_cat or a.category2 = b.from_cat) and a.site_id = b.site_id and
learn english, a good website to learn english
http://www.EffortlessEnglishClub.com[@more@]
check Roles & Privs
How to check Roles & Privs for a certain user[@more@]How to check Roles & Privs for a certain userDBA_ROLES:DBA_ROLES lists all roles that exist in the database.select * from DBA_ROLESDBA_ROLE_PRIVS: check user’s roles granted: select * from DBA_ROLE_PRIVS where grantee = 'TEST_OWNER'DBA_SYS_PRIVS:check user’s or role’s sys privs granted:select * from DBA_SYS_PRIVS where grantee = 'TEST_OWNER' (user)select * from DBA_SYS_PRIVS where grantee = 'TEST_OWNER_ROLE' (role)ROLE_SYS_PRIVS:che
for public synonym, only sys user can compile it?
Only sys user can compile public synonym: [@more@]Oracle 中的同义词是schema 对象的一个别名。同义词分为公共(public)同义词和私有(private)同义词.公共同义词可以被所有数据库用户所访问,而私有同义词只能被owner和被授权用户访问。同义词可以不依赖于引用的对象单独存在,所以我们可以修改同义词所应用的对象,而后只需要重新定义(删除重建,同义词不可以通过ALTER 语法来重新定义)同义词就可以,这样可以降低应用程序的复杂性。当同义词被删除后所有被同义词应用的对象(当然TABLE 之类就除外了)将变成INVALID。当然如果你删除或修
调优: 一个SQL现在30分钟,而原来只要2秒
经过对比执行计划,是执行计划变成full table scan 和错误的表连接了,改用hint提示走索引和用正确的表连接,解决问题.但为什么在prod上是正确的计划,而在测试环境计划变了?[@more@]下面在uat上要跑30分钟, 但在prd上仅仅10秒: SELECT cd.case_id, i.item_identifier, mt.ext_trade_id, mt.mirror_id,