每日一语
Every just fine with me.[@more@]
10g OCR工具ocrcheck ocrconfig ocrdump
在Oracle10g 的RAC环境中,有几个工具可以用于进行OCR管理,这其中主要的几个是:ocrcheck ,ocrdump, ocrconfigocrcheck可以用于减产OCR存储的使用情况:[oracle@smsdbrac1 oracle]$ ocrcheck -helpName:ocrcheck - Displays health of Oracle Cluster Registry. Synopsis:ocrcheck Description:prompt> ocrcheckDisplays current usage, location and health of the cluster registryNotes:A log file will be created in$ORACLE_HOME/log//client/ocrcheck_.log. Please ensureyou have file creation privileges in the above direc
Best
I'm the best of best of best of best of best ...Moon,just like a pizza,but i don't know how to eat.I miss you, mam and i love you.[@more@]
收集统计信息的简单操作
创建保存统计信息的表dbms_stats.create_stat_table(ownname => 'SYS',stattab => 'STAT_TABLE'); 收集统计信息exec dbms_stats.gather_table_stats(ownname => 'SYS',tabname =>'TEST');将统计信息保存到STAT_TABLE表中exec dbms_stats.export_table_stats(ownname => 'SYS',tabname => 'TEST',stattab => 'STAT_TABLE'); 删除统计信息exec dbms_stats.delete_table_stats(ownname => 'SYS',tabname => 'TEST');导入统计信息exec dbms_stats.import_table_stats(ownname =>'SYS',tabname =>'TEST',stat
where 1=1 和 count(1) 与 count(*)
我转~~~[@more@]where 1=1有什么用?在SQL语言中,写这么一句话就跟没写一样。 select * from table1 where 1=1与select * from table1完全没有区别,甚至还有其他许多写法,1<>2,'a'='a','a'<>'b',其目的就只有一个,where的条件为永真,得到的结果就是未加约束条件的。在SQL注入时会用到这个,例如select * from table1 where name='lala'给强行加上select * from table1 where name='lala' or 1=1这就又变成了无约束的查询了。最近发现的妙用在于,在不定数量查询条件情况下,1=1可以很方便的规范语句。例如一个查询可
无眠2天two夜 一招以一敌百
两天两夜的煎熬,问题迎刃而解那刻,身心瞬间轻松了很多。原厂,元老,固然牛X,真正靠得住的还是自己。任何问题都是有原因的,路走对了,才能走出迷宫。突然想起那帮坏孩子的教练布朗的经典语句:play with right way.[@more@]
困难总会过去
今天我想起了一个人 Chauncey Billups,是的,没错,就是那个打爆F4的家伙,本来这个夏天他应该来北京,但是。。。想起了他曾经的经历,坐穿板凳,四处流浪,就跟现在的我遇到三个库同时出问题,压力巨大。Chauncey 磨砺着自己的同时做好了一切准备,最终成为草根国王。让我感动的不仅仅是他的故事,还有那句为AD做的广告语:困难总会过去。我相信我会度过难关,前提是别让我天天只睡6小时。[@more@]
他奶奶个腿的数据库升级
他奶奶个腿不会让数据库升级,但是我会,今天就捣鼓了一天。以前在9i上的升级很简单,解压缩补丁包后运行runinstaller就OK了,毕竟我有在linux上从9204升到9206和在solaris上从9201升到9208的经验,今天在10.1.0.2往10.2.0.4升时却发现没有那么简单。当时我直接运行了10.2.0.4的补丁包,虽然运行成功了,但库没有升上去,后来觉得应该是我装了10.2.0.1的客户端,所以没报错。同时如果坚持readme中的观点,我早就顿悟了。如果8,9,10算是大版本,1,2那就算是中版本了。大版本和中版本的升级是需要装新版本的软件的,奶奶个腿,在这个问题
冰冰语录
遇见你或许是一种磨砺,但现在绝对是个错误。我忍不住想对你竖起最经典的那个指头。[@more@]
ORA-12012: error on auto execute of job 8913
这个问题我以前遇见过,不过没有仔细研究,今天多亏棉花帮助,要不然我还是无处下手。[@more@]alert:Mon Aug 11 22:00:37 2008Errors in file /oracle/app/oracle/admin/1/bdump/1_j000_3285088.trc:ORA-12012: error on auto execute of job 8913ORA-03211: The segment does not exist or is not in a valid statetrace:Dump file /oracle/app/oracle/admin/1/bdump/1_j000_3285088.trcOracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit ProductionWith the Partitioning, Real Application Clusters and Data Mini
消除 enq: DX - contention 等待事件
很遗憾操作过程没有抓下来,语言描述一下吧。DXDistributed transaction entry是一个分布式事务锁,根据v$lock查询得到一个会话sid:806,type:DX,block:1并且有type和id1相等且request>0的会话,说明806堵塞了其他会话,因为它长期持有一个DX锁,导致其他会话无法获得,所以导致了等待事件 enq: DX - contention。将806会话杀掉后,等待事件消除。[@more@]
cbo心得(选择率,基数,直方图)(五)
cbo心得(选择率,基数,直方图)(五) [@more@]延伸1, 直方图的分类直方图可以分为两类:FREQUENCY(频率)和HEIGHT BALANCED(高度平衡)在弄明白这两类直方图,首先得知道什么直方图。用上面的例子来说明下:SQL> select ENDPOINT_NUMBER,2 ENDPOINT_VALUE3 from user_tab_histograms4 where table_name ='SUNWG'5 and column_name = 'ID'6 order by ENDPOINT_NUMBER;ENDPOINT_NUMBER ENDPOINT_VALUE--------------- --------------6 17 2018 8019 140110 2001上面就是列ID上的直方图信息,左边一列是截止点的编号,右边一列是截止点值。
cbo心得(选择率,基数,直方图)(四)
cbo心得(选择率,基数,直方图)(四)[@more@]存在表和索引上的统计信息,存在直方图为了更明显的说明直方图的作用,我修改一下上面的创建的表,进一步的增加列ID的倾斜性。SQL> drop table sunwg purge;表已删除。SQL> create table sunwg (id number);表已创建。SQL> create index ind_sunwg on sunwg(id);索引已创建。SQL> insert into sunwg select 1 from dba_objects where rownum < 4000;已创建3999行。SQL> insert into sunwg select rownum from dba_objects where rownum < 2002;已创建4001行。SQL> commit
cbo心得(选择率,基数,直方图)(二)
cbo心得(选择率,基数,直方图)(二)[@more@]三,正文1, 没有任何统计信息(包括表,索引,直方图等)在ORACLE 10g中,RBO已经彻底的被抛弃了,取而代之的是CBO。我们知道CBO的基础就是统计信息,那么在10g中如果没有收集统计信息,CBO是怎么工作的呢?我们看下面的这个例子。Create table sunwg (Id number);Create index ind_sunwg on sunwg(id);BeginFor I in 1..100 loopFor j in 1..i loopInsert into sunwg values (i);End loop;End loop;Commit;End;这样我们就创建了一张有5050条记录的测试表。例1, 不存在统计信息SQL> select *
cbo心得(选择率,基数,直方图)(三)
cbo心得(选择率,基数,直方图)(三)[@more@]存在表和索引上的统计信息,没有直方图这是最一般的情况,定期对表和索引进行分析,但是并不分析直方图信息。大部分时候,这种统计信息收集策略都会很好的工作。我们这的大部分指得是,列上数据分布很平均的情况下。为了更好的演示,我需要创建一个存在倾斜列的表SQL> drop table sunwg purge;表已删除。SQL> create table sunwg (id number);表已创建。SQL> create index ind_sunwg on sunwg(id);索引已创建。SQL> insert into sunwg select 1 from dba_objects where rownum<200
cbo心得(选择率,基数,直方图)(一)
转冰冻奶茶的文章http://sunwgneuqsoft.itpub.net/post/34741/456500[@more@]一,概述关于CBO优化器你上网可以搜到一大堆的介绍。用一句话来解释CBO:CBO是一种根据执行代价来选择执行计划的机制。对于CBO来说,最重要的就是各种不同的执行计划的代价的计算。和RBO比较起来,CBO确实要聪明很多。CBO会根据对象上的统计信息来进行执行计划的代价评估,选择出较为高效的。而不是象RBO那样根据一些既有的规则来选择执行计划,愣头青一样的。既然是根据对象上的统计信息来计算代价,那么统计信息对于CBO的重要性就不用多说了。所以在CBO的数据
LOCK的整理资料
LOCK的整理资料[@more@]--------------------------------------------------------------------------查看谁锁住的select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sidorder by t2.logon_time; 解锁 alter system kill session 'sid,serial#'; =======================================================================================================v$lock视图的各个列及其说明ADDR RAW(4) 在内存中锁定的对象的地址 KADDR RAW(4) 在内存中
困
前天晚上睡了3个小时,昨晚却睡不着,oracle没怎么跟三少学,失眠倒是学上了。昨晚觉得特别困,可过了半天才睡着,现在还得来加班,困ing。。。[@more@]
奥运与我无关
我是迫不得已写下这个题目,今天奥运圣火离我只有几百米我都没有时间去顶礼膜拜,因为我实在太忙了。我注定要错过这届最有意义的奥运会,在离北京奥运会还是十几天的时候我离开了北京,将要搬住的房子里也没有电视。这个夏天我要将精力放在oracle上面了,我想我不会为错过奥运而后悔,因为eygle说过的那句话一直记在我心里:一个人在一生中一定要在某件事上投入全部的精力,要不然就太失败了。今天给客户解决问题,客户懂的居然都比我多,讽刺的定义一下子就出来了。还有前几天说到的那个只学了7个月oracle的女生,对我的刺激也挺大,因为
使用flashback实验1
简单使用基于SCN的flashback,10.2.0.1 for windows实验如下:SQL> select * from tt;NAME STATUS-------------------------------------------------- -------E:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF SYSTEME:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DB ONLINEE:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF ONLINEE:ORACLEPRODUCT10.2.0ORADATATESTUSERS01.DBF ONLINESQL> select dbms_flashback.get_system_change_number from dual;GET_SYSTEM_CHANGE_NUMBER------------------------1168329SQL> delete from tt whe