Database
文章平均质量分 70
iteye_3693
这个作者很懒,什么都没留下…
展开
-
ORACLE SQL TUNING
一.优化器模式 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 为了使用基于成本的优化器(CBO, Cost-Based Optimizer) , 你必须定期更新统计信息,以保证数据库中的对象统计信息(object statistics)的准确性. 如果数据库的优化器模式设置为选择性...2007-12-06 21:49:39 · 201 阅读 · 0 评论 -
oracle中聚合函数RANK和dense_rank的使用
聚合函数RANK 和 dense_rank 主要的功能是计算一组数值中的排序值。在9i版本之前,只有分析功能(analytic ),即从一个查询结果中计算每一行的排序值,是基于order_by_clause子句中的value_exprs指定字段的。其语法为:RANK ( ) OVER ( [query_partition_clause] order_by_clause )在...2008-04-18 17:23:39 · 89 阅读 · 0 评论 -
如何改善Oracle的索引
1、速度因素 [b]PARALLEL选项[/b]:当创建索引时,Oracle首先会进行全表扫描来收集符号键和ROWID对,而PARALLEL选项允许多处理器并行扫描表,这样就会加速索引的创建过程。一般推荐的PARALLEL值为CPU数减1。 [b]NOLOGGING选项[/b]:NOLOGGING选项因为不写日志,所以大大提高了性能,比不使用NOLOGGING选项大约会...原创 2009-01-12 16:40:02 · 265 阅读 · 0 评论 -
Oracle10g 自动共享内存管理
5.6 自动共享内存管理 从Oracle 10g开始,Oracle提供了自动SGA的管理(简称ASMM,即Automatic Shared Memory Management)新特性。所谓ASMM,就是指我们不再需要手工设置shared pool、buffer pool等若干内存池的大小,而是为SGA设置一个总的大小尺寸即可。Oracle 10g数据库会根据系统负载的变化,自动调整各个组件的大...原创 2009-01-14 13:25:43 · 293 阅读 · 0 评论 -
一次oracle无法open的解决
这几天因为公司的复杂查询出现性能的问题(说实话本来就没设计好,数据行数都在1000W左右),所以需要进行调优,其实问题很简单,在系统中都使用了exists来进行表关联,当然是不行的,我利用了表内联来解决问题恩,结果还算不错,从跑不出来到了第一次硬解析在10分钟以内,但是公司管理层还是希望请“大牛”来查看下(该说的我都说了,摆明了不相信我吗) “大牛”来的第一天: 一、调整过程...原创 2009-01-16 13:59:12 · 1076 阅读 · 0 评论 -
Oracle9i数据库的备份与恢复经验之谈(1)
大家好啊,总算把系统第二次改造完成了,所以有点时间上来聊两句,现在公司使用的是oracle10g,以前在基金软件公司,还有东方CJ使用的都是oracle9i,这次我就针对oracle9i的数据库的备份与恢复来谈一下经验 首先我们来说一下备份的种类,主要分为以下3种: 1. 冷备份 2. 联机热备 3. 用导出e...2007-08-05 12:06:55 · 216 阅读 · 0 评论 -
Oracle9i数据库的备份与恢复经验之谈(2)
接下去我们来讲一下热备份:热备份是我们最常用的一种备份,首先我们先来讲讲什么是热备份,说明如下: 在联机状态下执行备份,这时数据库必须运行在ARCHIVELOG模式下,因为在日志书写器进程重新使用它之前,副本是由每一个redo日志文件组成的,日志书写器在循环方式中通过redo日志文件进行循环,只要数据库正在运行,它就写入一个,然后是另一个,依此类推。在ARCHIVELOG模式下运...2007-08-05 12:44:39 · 104 阅读 · 0 评论 -
Oracle索引篇(1)
索引表空间转移ALTER INDEX INDEX_CRM_CUSTOMERS2 REBUILD TABLESPACE KIDDCRM_INDEX ONLINE2007-08-12 20:34:19 · 64 阅读 · 0 评论 -
oracle裸设备(linux)
Linux创建裸设备:此前一直没找到linux上面建裸设备的方法.还以为建了lv,自然就是裸设备了.不用作别的.后来在oracle建库的时候,不认lv.在aix上面lv就是裸设备,但在linux上面,还要通过raw命令绑定一下.例如:用fdisk 创建了一个分区 /dev/sdb1然后用raw绑定, raw /dev/raw/raw1 /dev/sdb1绑定后生成一个文件/dev/raw...2007-08-12 23:50:11 · 128 阅读 · 0 评论 -
Redo Log和Archive Log
熟悉Oracle9i的人应该都知道,Oracle9i中有2种日志,一种称为Redo Log(重做日志),另一种叫做Archive Log(归档日志),但是这两种日志在Oracle9i数据库中所起到的作用相信很难有人说清楚,下面我就结合自己对Oracle9i的认识来进行一下说明重做日志redo log file是LGWR进程从Oracle实例中的redo log buffer写入的,是循环利用的。...2007-09-01 18:09:04 · 174 阅读 · 0 评论 -
诊断和解决CPU利用率过高的解决经历
相信熟悉Oracle的人经常会碰到一下几个问题:1. CPU利用率过高2. 磁盘争抢平凡(IO过高)3. 执行存储过程中遇到和预计的时间相差很悬殊以上这几个问题非常棘手,特别是第三点,特别是在金融行业,交易系统一般需要在晚上非交易时间内计算完庞大的数据,否则就会影响到第二天的交易针对以上几个问题,我来讲一下在一起项目中碰到过的一次Procedure的经历操作系统:Red Hat Lin...2007-09-03 17:04:08 · 288 阅读 · 0 评论 -
Oracle中Kill session的研究
我们知道,在Oracle数据库中,可以通过kill session的方式来终止一个进程,其基本语法结构为:alter system kill session 'sid,serial#' ; 被kill掉的session,状态会被标记为killed,Oracle会在该用户下一次touch时清除该进程.我们发现当一个session被kill掉以后,该session的paddr被修改,如果有...2007-09-05 15:34:12 · 69 阅读 · 0 评论 -
从 v$session 视图获取客户端 IP 地址
缺省从 v$session 中不能直接获得客户端 IP,可以在数据库中创建一个追踪客户端IP地址的触发器:create or replace trigger on_logon_trigger after logon on databasebegin dbms_application_info.set_client_info(sys_context('userenv',...原创 2008-11-18 19:42:00 · 261 阅读 · 0 评论 -
Oracle的redo 和undo的区别
redo--> undo-->datafileinsert一条记录时, 表跟undo的信息都会放进 redo 中, 在commit 或之前, redo 的信息会放进硬盘上. 故障时, redo 便可恢复那些已经commit 了的数据.redo->每次操作都先记录到redo日志中,当出现实例故障(像断电),导致数据未能更新到数据文件,则数据库重启时须redo,重新把数据更新到数据文件...原创 2008-12-05 15:26:30 · 77 阅读 · 0 评论 -
ORA-600 [2103]错误及CF enqueue竞争
昨天,客户的一套Oracle 10.2.0.3 RAC环境遇到了一个严重故障,数据库最后以ORA-600 [2103]错误中止了一个实例。日志信息大致如下:Tue Dec 2 17:21:06 2008Errors in file /u01/admin/erpdb/bdump/erpdb2_lgwr_127968.trc:ORA-00600: internal error...原创 2008-12-09 17:21:58 · 251 阅读 · 0 评论 -
oracle中x$ksppi和x$ksppcv详解
SQL> desc x$ksppi名称 是否为空? 类型------------ -------- ---------------ADDR RAW(4) --内存地址INDX NUMBER --序号,从0开始INST_ID NU...原创 2008-12-09 17:22:57 · 429 阅读 · 0 评论 -
Oracle latch竞争总结(一)
在Oracle中,Latch的概念是非常重要的,v$latch表的每一行包括了对不同类型latch的统计,每一列反映了不同类型的latch请求的活动情况。不同类型的latch请求之间的区别在于,当latch不可立即获得时,请求进程是否继续进行。按此分类,latch请求的类型可分为两类:willing-to-wait和immediate。 latch free,相信跟大家并不陌...2009-01-07 11:38:24 · 232 阅读 · 0 评论 -
PX Deq: Execute Reply 案例说明
1 背景:Oracle 数据库在执行sql时,会自动的选择较优的执行计划。但有时oracle自动选择的执行计划不是最佳的执行计划,在执行的时候可能会造成效率问题,甚至会hang住。2 问题提出:A省近期20多天来在进行boss同步日志的生成时,经常出现程序长时间的运行没有相应,初步怀疑程序中的sql:SQL_TEXT--------------------------------------...原创 2009-01-03 09:55:55 · 867 阅读 · 0 评论 -
MySQL优化经验——第一讲
今天突然想起自己在运营的PtoP影院中的mysql优化经历,就大致总结了一下,正巧在网上看到类似的文章,深有体会,在这里发一下给大家共享,也给自己做一个总结,这次作为MySQL优化的第一讲,以后会陆续往下写,大家有问题也可以互相沟通================================开始==================================随着同时在线...原创 2008-12-28 19:41:54 · 117 阅读 · 0 评论 -
Truncate,Delete,Drop的比较
注意:这里说的delete是指不带where子句的delete语句相同点:truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: 1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函...2007-12-18 14:05:28 · 72 阅读 · 0 评论 -
Oracle DBA常用命令
这段时间经常到客户那里,让我感受到几件事情,在客户现场,你会遭遇到许多意想不到的事情,比如你的准备工作没有做充分,什么东西没有带。。。等等,等等 在现场你必须要对OS熟悉,比如AIX、HP-UX、Solaris、Linux、FreeBSD等等 在现场你必须要对DB熟悉,比如Oracle、Sybase、DB2等等 在现场你必须要对Enterpr...2007-03-01 11:44:44 · 307 阅读 · 0 评论 -
Oracle DBA常用知识(一)
今天工作感觉好累,所以稍微写一点好了,今天首先介绍Oracle常用的DBA命令: 1. alter user crm quota unlimited on userdata; 授予用户表空间权限 2. grant create any view to CRM; 授予CRM用户操作权限 3. password CRM; ...2007-03-06 22:00:12 · 161 阅读 · 0 评论 -
关于Oracle临时表
1 语法 在Oracle中,可以创建以下两种临时表: 1) 会话特有的临时表 CREATE GLOBAL TEMPORARY ( ) ON COMMIT PRESERVE ROWS; 2) 事务特有的临时表 CREATE GLOBAL TEMPORARY ( ) ON COMMIT DELETE ROWS; CREATE GLOBAL TEMPORARY TAB...2007-03-10 12:02:24 · 62 阅读 · 0 评论 -
Oracle 分区索引详解
语法:Table Index CREATE [UNIQUE|BITMAP] INDEX [schema.]index_nameON [schema.]table_name [tbl_alias](col [ASC | DESC]) index_clause index_attribsindex_clauses:分以下两种情况1. Local Index ...原创 2008-01-01 13:00:49 · 88 阅读 · 0 评论 -
ORACLE内置函数大全
1.ASCII返回与指定的字符对应的十进制数;SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE--------- --------- --------- --------- 65...2007-04-13 16:30:47 · 141 阅读 · 0 评论 -
通过Oracle10g的FLASHBACK_TRANSACTION_QUERY指定事务的历史信息
在数据库操作中,我们经常会遇到余下情况:1.莫名其妙数据被DML了,不知道是谁DML的2.想知道某张表某个时间段中被那个用户操作了什么SQL以上问题我相信大家都遇到过,当然我们可以通过v$sql、v$sqltext、v$session找到我们需要的答案,我们更加可以通过FLASHBACK_TRANSACTION_QUERY中获得指定事务的历史信息以及Undo_SQL,通过这个UND...2008-12-12 13:05:08 · 158 阅读 · 0 评论 -
oracle 被锁,解锁,阻塞语句
//查询被锁的表select A.sid, b.serial#,decode(A.type, 'MR', 'Media Recovery', 'RT','Redo Thread', 'UN','User Name', 'TX', 'Transaction', 'TM', 'DML', 'UL', 'PL/SQL Use...2008-12-12 18:35:03 · 141 阅读 · 0 评论 -
关于MySQL的查询缓存收
关于MySQL的查询缓存收原理QueryCache(下面简称QC)是根据SQL语句来cache的。一个SQL查询如果以select开头,那么MySQL服务器将尝试对其使用 QC。每个Cache都是以SQL文本作为key来存的。在应用QC之前,SQL文本不会被作任何处理。也就是说,两个SQL语句,只要相差哪怕是一个字符(例如大小写不一样;多一个空格等),那么这两个SQL将使用不同的一个CAC...原创 2008-12-13 21:21:59 · 88 阅读 · 0 评论 -
index和rowid的一点关系
相信很多朋友在rowid和index之间都会有些疑问,今天在warehouse大师的blog中看到一片简单扼要的文章,在这里跟大家共享一下,相信以下的说法可以解开不少开发人员的心结。唯一index和非唯一index的index entry中尽管都存在rowid,但是其实有一点细微的差别,在唯一index中index_column就是index_column, 数据通过index_colum...原创 2008-12-16 14:18:01 · 325 阅读 · 0 评论 -
Oracle分析函数RANK()|ROW_NUMBER()|LAG()使用详解
ROW_NUMBER()的使用方法: ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2) 详细说明: 根据COL1分组 在分组内部根据 COL2排序 而这个值就表示每组内部排序后的顺序编号(组内连续的唯一的) RANK():排序的时候跟派名次一样,可以并列2个第一名之后 是第3名 LAG:分组...原创 2008-12-16 14:58:45 · 122 阅读 · 0 评论 -
Oracle高级SQL调优:CLUSTER_FACTOR案例研究
大家在大型数据库生产系统的运维中可能会遇到这样一个问题,一条查询语句,操作的是相同的表和数据,为什么在生产数据库上执行起来就很慢,而在备份数据库反而会很快。这其中一个重要原因就在于索引CLUSTER_FACTOR的不同。 Oracle数据库下,索引在做完统计分析后,会获得很多重要信息,其中之一就是CLUSTER_FACTOR,CLUSTER_FACTOR表示索引数据顺序和表数据顺序的一致性,...原创 2008-12-18 22:27:41 · 143 阅读 · 0 评论 -
CBO学习笔记
cost of b-tree access这一节我们看看CBO是如何来计算最普通的b-tree索引的访问的cost的。我们知道B-tree索引的结构是一个树状结构,索引中包括root block,branch block, leaf block,这些结构分别相当与树的根,茎和叶。当我们使用一个索引的时候,我们首先访问索引的root block,确定需要访问大branch block。然...原创 2008-12-18 23:09:05 · 126 阅读 · 0 评论 -
Oracle专用服务器与共享服务器的区别
在建立Oracle数据库的时候,应该会在数据库建立助手向导上面看到这么一个选项,就是数据库的连接模式采用什么方式。在Oracle9i或者10g中,可以看到有2种连接模式,一种叫做专用服务器连接(dedicated server) ,另外一种叫做共享服务器连接(shared server)。下面我们来分类说一下这两种连接方式的不同点。 专用服务器模式就是说每次在对Oracle进行访问的时候,O...原创 2008-12-19 11:51:13 · 96 阅读 · 0 评论 -
oracle中对workarea_size_policy和sort_area_size的总结
在实际的工作中,想必很多人会对SORT_AREA_SIZE和sga、pga搞得头晕脑胀,对workarea_size_policy采用auto还是manual也不太明白,或者是使用设置为auto,那么sort_area_size还是否有效呢?以下对以上几个问题作了综合的说明:1: 10g里还用SORT_AREA_SIZE 这个参数。if ( 数据库版本 >= 10gR1 )...2008-12-19 12:06:52 · 244 阅读 · 0 评论 -
对于Oracle中DML使用UNDO的一些看法
insert操作回滚段中只记录这些记录的ROWIDupdate需要记录相关字段的undo信息delete是使用回滚段最大的操作,记录了所有删除的记录的详细信息以便于rollback对大量的记录更新的话,还会对表长时间加锁,代价比较高以上是针对DML操作使用UNDO的一些看法,大家分享...2008-12-11 17:53:03 · 132 阅读 · 0 评论