oracle
文章平均质量分 87
wanglipo
这个作者很懒,什么都没留下…
展开
-
日常数据库性能检查机制
日常检查ORACLE数据性能常用的SQL整理如下:原创 2011-11-22 09:39:38 · 1102 阅读 · 0 评论 -
oracle 特殊SQL(TABLE( CAST( MULTISET()
<br />求条sql语句<br />成绩表<br />--xh 学号 cj 成绩<br />create table b_cj(xh varchar2(50),cj number);<br />insert into b_cj values('1',67);<br />insert into b_cj values('2',63);<br />insert into b_cj values('3',77);<br />insert into b_cj values('4',68);<br />inser原创 2011-04-15 16:58:00 · 8569 阅读 · 0 评论 -
oracle 10g 使用REGEXP_SUBSTR 分拆字符串
<br />SELECT l_count, REGEXP_SUBSTR('add, daddf, dsdf, asdfa, dsfasd, dsfad','[^,]+',1,l_count) AS NAME<br /> FROM dual<br /> ,(SELECT LEVEL l_count FROM DUAL CONNECT BY LEVEL<=100)<br />WHERE l_count <=LENGTH('add, daddf, dsdf, asdfa, dsfasd, dsfad'转载 2011-04-15 16:41:00 · 1445 阅读 · 0 评论 -
查看oracle数据库是否归档和修改归档模式
首先查看数据库现有模式可使用以下语句<br />select name,log_mode from v$database;<br />也可以用下面的语句<br />archive log list;(该方法需要as sysdba)<br /><br />对于非归档模式的数据库该为归档模式(主要以Oracle 10g为参考)使用以下步骤:<br />1. SQL> alter system set log_archive_dest_1='location=/oracle/oracle10g/log/archi转载 2011-03-24 10:24:00 · 836 阅读 · 0 评论 -
SQL优化及性能诊断(10046事件/tkprof)
<br />1.与之上次使用到的SQL_TRACE功能相比,我们这次将使用更高级的trace命令(10046)来做演示。我们先启用“高级”的10046事件生成一份待格式化的trace文件<br />1)连接到普通用户sec<br />sys@ora10g> conn sec/sec<br />Connected.<br /><br />2)先将timed_statistics参数设置为true,这样可以使TKPROF工具能提供更多的有意义的信息,方便性能诊断<br />sec@ora10g> alter s转载 2011-03-23 14:56:00 · 1018 阅读 · 0 评论 -
sqlplus copy(复制大批量数据(long类型))
<br />使用sqlplus Copy 命令从远程数据库读取数据.<br />需要从9个地市的计费数据库中读取一些表,存储到运营分析系统中.<br />有几个表数据量超过1亿条.<br /><br />对于这么大的数据量,如果用create table as select 或者使用cursor的话,对回滚段的压力肯定非常大.<br /><br />经过同事提示,想到了sqlplus的copy命令.<br /><br />connect ods/ods<br />set time on<br />set t转载 2011-03-10 10:19:00 · 6354 阅读 · 1 评论 -
Oracle性能优化经验分享之系统参数设置
<br />SGA<br />01、Shared pool tunning<br />Shared pool的优化应该放在优先考虑,因为一个cache miss在shared pool中发生比在data buffer中发生导致的成本更高,由于dictionary数据一般比library cache中的数据在内存中保存的时间长,所以关键是library cache的优化。<br />Gets:(parse)在namespace中查找对象的次数;<br />Pins:(execution)在namespace中转载 2011-03-09 10:20:00 · 872 阅读 · 0 评论 -
使用dbms_profiler包测试存储过程性能
dbms_profiler用来测试PL/SQL代码非常有用,比如找出哪一段代码比较耗时,也可以用来比较不同算法之间的差异。也得到了一些第三方工具的支持,如PLSQL DEVELOPER。<br /><br />1、安装<br /><br />1.1、以sys用户创建dbms_profiler包<br /><br />SQL> conn /as sysdba<br />SQL> desc dbms_profiler --先确信dbms_profiler包是否存在,如果不存在则通过下面的方式创建<br /转载 2011-01-25 10:54:00 · 3930 阅读 · 0 评论 -
讲解DBMS_STATS的分析表与备份分析信息
<br /><br /> 在使用DBMS_STATS分析表的时候,我们经常要保存之前的分析,以防分析后导致系统性能低下然后进行快速恢复。<br />首先创建一个分析表,该表是用来保存之前的分析值:<br /> SQL> begin<br /> 2 dbms_stats.create_stat_table(ownname => 'TEST',stattab => 'STAT_TABLE');<br /> 3 end;<br /> 4 /<br /> PL/SQL 过程已成功完成。<br /> 分析原创 2011-01-25 12:11:00 · 891 阅读 · 0 评论 -
oracle大表复制
<br /> 前几天遇到一个要求初始化数据的问题,表数据是千万级别的,直接用UPDATE语句要一个多小时,速度不能达到要求。经多方查找和实践发现,通过新建表的方式是最快的,仅需几分钟就OK了。今天又多查询了一个资料,做个总结.<br /> ORACLE的INSERT、UPDATE和DELETE在执行过过程中都是会产生日志的,因此,当插入大量数据的时候可以添加“nologging”选项,以提高执行速度,三种操作所做的具体东西而相关资料是这样写的: 常INSERT产生最少的Undo,Upda原创 2010-11-26 15:56:00 · 4236 阅读 · 0 评论 -
Oracle 10g 归档日志满了的解决办法
<br /> 昨天进行大批量插入数据时出现了 ORA-00257: archiver error. Connect internal only, until freed错误,经过查找才知道是归档日志满了。原因是:Oracle 10g数据库物理空间管理方式与以前Oracle发生了变化,对归档日志所在的Flash_Recovery_Area空间进行了另外限制Flash_Recovery_Area空间缺省安装时比较小,只有2GB,容易用完。<br /> <br />如果Oracle的归档日志满了,应用连原创 2010-09-08 10:24:00 · 8028 阅读 · 0 评论 -
DBA人员应该掌握的一些SQL语句
<br />1.关于数据库构架体系 <br />①表空间的监控是一个重要的任务,我们必须时刻关心表空间的设置,是否满足现在应用的需求,以下的语句可以查询到表空间的详细信息。SQL code SELECT TABLESPACE_NAME, INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE, MIN_EXTLEN,转载 2010-09-09 16:48:00 · 679 阅读 · 0 评论 -
ORACLE之autotrace使用
<br />SQLPLUS的AutoTrace是分析SQL的执行计划,执行效率的一个非常简单方便的工具,在绝大多数情况下,也是非常有用的工具。利用AutoTrace工具提供的SQL执行计划和执行状态可以为我们优化SQL的时候提供优化的依据,以及优化效果的明显的对比效果。 <br />用法: SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]<br />举例:<br />SET AUTOT[RACE] OFF 停止AutoTr转载 2010-08-31 10:14:00 · 7047 阅读 · 0 评论 -
ORACLE性能诊断实例-行迁移和行链接
<br />通过我的检查,发现,我们的DB同样存在行迁移和行链接.ORACLE的dbms_stats.gather_schema_stats只会收集优化器统计信息,不会检测表的记录是否存在行迁移和行链接.(我原先被这个包给骗了,所以执行完dbms_stats.gather_schema_stats后一查数据字典:USER_TABLES,其中的字段chain_cnt值全为0).要检测表的记录是否存在row chain,需要用到ORACLE早先一点的命令:ANALYZE TABLE.所以我写了一个存储过程(P_转载 2011-04-18 13:52:00 · 2121 阅读 · 0 评论 -
收集oracle统计信息
<br />优化器统计范围:<br />表统计; --行数,块数,行平均长度;all_tables:NUM_ROWS,BLOCKS,AVG_ROW_LEN;<br />列统计; --列中唯一值的数量(NDV),NULL值的数量,数据分布;<br /> --DBA_TAB_COLUMNS:NUM_DISTINCT,NUM_NULLS,HISTOGRAM;<br />索引统计;--叶块数量,等级,聚簇因子;<br /> --DBA_INDEXES:LEAF_BLO转载 2011-05-09 10:24:00 · 1449 阅读 · 0 评论 -
ORA-01033: ORACLE initialization or shutdown in progress
一来就发现oracle登录不上了,就直接报告ora-01033的错误。网上一查,原来有可能是文件损坏了,仔细回想了一下,周五好像就是在做oracle数据操作的时候,断过一次电,:(莫非要重装oracle??My God !不死心,继续找,看有没有办法解决这个问题。装oracle实原创 2011-08-17 11:48:36 · 799 阅读 · 0 评论 -
Oracle 10g expdp/impdp导入导出
学ORACLE10G有两个多月了,前面一直是看书查资料,今天想动手做个试验,检验一下前面学习的效果。就从数据库导入导出开始吧! Oracle10g以前数据导入导出提供有imp/exp命令,10g以后提供了新的导入导出命令expdp/impdp。虽然exp/imp已经很好用了,但是唯一的确定是速度太慢,如果1张表的数据有个百千万的,常常导入导出就长时间停在这个表这,但是从Oracle原创 2010-09-29 09:51:00 · 11910 阅读 · 4 评论 -
Oracle 按时间段分组统计
想要按时间段分组查询,首先要了解level,connect by,oracle时间的加减. 关于level这里不多说,我只写出一个查询语句: ---level 是一个伪例 select level from dual connect by level <=10 ---结果:1 2 3 4 5 6 7 8 9 10关于connect by可以看 h原创 2011-06-20 16:46:00 · 12677 阅读 · 1 评论 -
oracle 全文检索实践
前段时间,项目组长让我看一下有没有实时检索数据的方案,并说明不是用数据库模糊查询关键字like,而是像baidu那样的搜索效果,做到最大匹配。并提示我看一下lucene。 我就熟悉了下lucene,然后写了个demo,他们又说为了一个简单的查询检索,确引入了一个lucene,有点不划算。所以让我找其他的解决办法。我找呀找,居然找到了select * from T where转载 2012-04-16 17:11:16 · 1486 阅读 · 0 评论 -
16种oracle查询日期语句
oracle查询日期语句在我们使用数据库过程中是经常要用到的,下面就为您介绍16种oracle查询日期语句,每一种oracle查询日期语句实现了一个功能,希望对您能有所帮助。№1:取得当前日期是本月的第几周SQL> select to_char(sysdate,'YYYYMMDD W HH24:MI:SS') from dual; TO_CHAR(S转载 2012-04-16 17:14:56 · 1354 阅读 · 0 评论 -
ORACLE 绑定变量用法总结
之前对ORACLE中的变量一直没个太清楚的认识,比如说使用:、&、&&、DEIFINE、VARIABLE……等等。今天正好闲下来,上网搜了搜相关的文章,汇总了一下,贴在这里,方便学习。 ================================================================================== 在oracle中,对于转载 2012-03-16 15:52:35 · 886 阅读 · 0 评论 -
ORA-14402: 更新分区关键字列将导致分区的更改。
分区表分区字段的update操作默认情况下,oracle的分区表对于分区字段是不允许进行update操作的,如果有对分区字段行进update,就会报错——ORA-14402: 更新分区关键字列将导致分区的更改。但是可以通过打开表的row movement属性来允许对分区字段的update操作。ITPUB个人空间#vqA/bk0_ b0l[ELAt9ZH7wCh转载 2012-02-14 11:36:00 · 9430 阅读 · 0 评论 -
Hadoop集群配置(最全面总结)
通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker。这些机器是masters。余下的机器即作为DataNode也作为TaskTracker。这些机器是slaves\官方地址:(http://hadoop.apache.org/common/docs/r0.19.2/cn/cluster_setup.html)1 先决条件确保在你集转载 2012-02-08 09:26:59 · 732 阅读 · 0 评论 -
IP 数据库,CSV 和 MDB 格式。
IP 数据库,CSV 和 MDB 格式。 F#数据取自“纯真IP数据库”,经本人整理。数据更新时间为 2011-03-05。下载地址:http://loist.3322.org:88/download/ipLib/数据查询例子:create or replaceFUNCTION f_ipToLong(ip in varchar2)转载 2012-02-03 16:08:24 · 2087 阅读 · 0 评论 -
关于Oracle数据库中行迁移和行链接的问题
行迁移/行链接Row Migration (行迁移) & Row Chaining (行链接)会影响Oracle数据库性能,通过合理的诊断行迁移/行链接,我们可以较大幅度上提高Oracle数据库的性能。行链接产生在第一次插入数据的时候如果一个block不能存放一行记录的情况下。这种情况下,Oracle将使用链接一个或者多个在这个段中保留的block存储这一行记录,行链接比较容易发生转载 2012-01-12 11:30:45 · 924 阅读 · 0 评论 -
触发器
把触发器说透 本篇主要内容如下:8.1 触发器类型8.1.1 DML触发器8.1.2 替代触发器8.1.3 系统触发器8.2 创建触发器8.2.1 触发器触发次序8.2.2 创建DML触发器8.2.3 创建替代(INSTEAD OF)触发器8.2.3 创建系统事件触发器8.2.4 系统触发器事件转载 2012-01-10 11:13:12 · 780 阅读 · 0 评论 -
oracle常见知识解答
1. 解释冷备份和热备份的不同点以及各自的优点解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将arc转载 2011-11-08 10:01:12 · 784 阅读 · 0 评论 -
并行执行(parallel)用法Oracle技术[转]
一、Parallel1.用途 强行启用并行度来执行当前SQL。这个在Oracle 9i之后的版本可以使用,之前的版本现在没有环境进行测试。也就是说,加上这个说明,可以强行启用Oracle的多线程处理功能。举例的话,就像电脑装了多核的CPU,但大多情况下都不会完全多核同时转载 2011-09-16 10:39:05 · 1854 阅读 · 0 评论 -
解决 'PLAN_TABLE' is old version
<br /> 解决 'PLAN_TABLE' is old version<br />分析sql执行计划的时候经常遇到<br />'PLAN_TABLE' is old version<br />原因,曾经使用toad的执行计划分析,所以执行了它自带的脚本生成的plan_table<br />解决方式:重新创建plan_table.<br /> <br />SQL> explain plan for select * from scott.emp;<br原创 2010-08-31 10:13:00 · 3823 阅读 · 2 评论 -
oracle 锁问题的解决
<br />oracle 锁问题的解决 <br />可以用Spotlight软件对数据库的运行状态进行监控。 <br />当出现session锁时,我们要及时进行处理. <br />1. 查看哪些session锁: <br />SQL语句:select 'alter system kill session '''||sid||','||serial#||''';' from v$session where sid in (select sid from v$lock where block = 1); <转载 2010-08-24 15:53:00 · 606 阅读 · 0 评论 -
ORACLE 锁机制
<br />ORACLE 锁机制<br />数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 <br />加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。 <br />在数据库中有两种基本的锁类型:排它锁(Exclu转载 2010-08-24 15:52:00 · 391 阅读 · 0 评论 -
学习动态性能表 第二篇--v$sesstat
<br />学习动态性能表<br />第二篇--v$sesstat <br /> 按照OracleOnlineBook中的描述,v$sesstat存储session从login到logout的详细资源使用统计。<br /> 类似于v$sysstat,该视图存储下列类别的统计:<br />l 事件发生次数的统计,如用户提交数。<br />l 数据产生,存取或者操作的total列(如:redo size)<br />l 执行操作所花费的时间累积,例如sessi原创 2010-06-11 14:03:00 · 540 阅读 · 0 评论 -
学习动态性能表 第一篇--v$sysstat
<br /> 学习动态性能表<br />第一篇--v$sysstat <br /> 按照OracleDocument中的描述,v$sysstat存储自数据库实例运行那刻起就开始累计全实例(instance-wide)的资源使用情况。<br />类似于v$sesstat,该视图存储下列的统计信息:<br />1>.事件发生次数的统计(如:user commits)<br />2>.数据产生,存取或者操作的total列(如:redo size)<br />3>.如果TIMED_STATISTICS值为true原创 2010-06-11 12:24:00 · 470 阅读 · 0 评论 -
通过v$sqlarea,v$sql查询最占用资源的查询
-----------------------<br />v$sqlarea,v$sql<br />-----------------------从V$SQLAREA中查询最占用资源的查询select b.username username,a.disk_reads reads,<br /> a.executions exec,a.disk_reads/decode(a.executions,0,1,a.executions) rds_exec_ratio,<br /> a.sql_text S原创 2010-06-11 12:11:00 · 930 阅读 · 0 评论 -
oracle修改SGA后无法启动的临时解决方法
<br />做oracle的优化,使用Console中打开数据库的配置,发现如图 由于里面有的值为零,于是我按照它的建议修改了对应的值。结果重启后oracle启动不起来了。<br />使用Console连接提示: 无法解析连接描述符中指定的SID。<br />使用pl/sql连接提示:ORA-12505:TNS:监听程序当前无法识别连接描述符中所给出的SID<br />1、 若数据库机器上没有装Console或者没有使用Console配置网络服务名.<br />则可以通过命令sqlplus sys/sys原创 2010-06-10 10:05:00 · 5445 阅读 · 0 评论 -
如何估算PGA,SGA的大小,配置数据库服务器的内存
ORACLE给的建议是: OLTP系统 PGA=(Total Memory)*80%*20%。DSS系统PGA=(Total Memory)*80%*50%。ORACLE建议一个数据库服务器,分80%的内存给数据库,20%的内存给操作系统,那怎么给一个数据库服务器配内存呢?SQL> select * from v$pgastat;NAME VALUE UNIT---------原创 2010-06-09 14:51:00 · 746 阅读 · 0 评论 -
SystemGlobalArea(SGA)管理
本文详细介绍SGA的基本概念,SGA运行情况检查,以及SGA的参数设置原则,希望对大家的有所帮助。 SGA的基本概念 当启动Oracle数据库时,系统会先在内存内规划一个固定区域,用来储存用户需要的数据,以及Oracle运行时必备的系统信息。我们称此区域为系统全局区(System Global Area),简称SGA。 SGA 包含数个重要区域,分别是: ■ Database Buffer Cache (数据库缓冲区) ■ Redo Log Buffer (重做日志缓冲区) ■ Shared转载 2010-06-09 12:08:00 · 539 阅读 · 0 评论 -
浅谈Oracle学习方法
玩Oracle也快2年了,一直都是在整理Oracle的相关技术文章,以前是学J2EE的, 也专门的去培训机构培训了一年,那时是一门心思的认为就搞开发了,可后来的事实证明我还是与Oracle更有缘一点。 记得2008年刚找工作那会,一家公司招Java工程师,我到公司不久,项目却没了,因为公司还有数据库的业务,所以我就转像数据库了。当时对Oracle 是一点了解都没有, 只知道它是一个大型的数据库。 也许是搞开发太久了,一开始搞的时候还十分的不愿意, 总觉得DBA 没有开发有前途。 后来慢慢的发现,其实相对而言转载 2010-06-09 10:43:00 · 530 阅读 · 0 评论 -
Oracle 10g EXPDP和IMPDP使用说明
Oracle Database 10g引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中. 数据泵导出导入(EXPDP和IMPDP)的作用 1,实现逻辑备份和逻辑恢复. 2,在数据库用户之间移动对象. 3,在数据库之间移动对象 4,实现表空间搬移. 数据泵导出导入与传统导出导入的区别 在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IM转载 2010-07-20 14:30:00 · 527 阅读 · 0 评论 -
Oracle内存全面分析
<br />Oracle的内存配置与oracle性能息息相关。而且关于内存的错误(如4030、4031错误)都是十分令人头疼的问题。可以说,关于内存的配置,是最影响Oracle性能的配置。内存还直接影响到其他两个重要资源的消耗:CPU和IO。<br />首先,看看Oracle内存存储的主要内容是什么:程序代码(PLSQL、Java);关于已经连接的会话的信息,包括当前所有活动和非活动会话;程序运行时必须的相关信息,例如查询计划;Oracle进程之间共享的信息和相互交流的信息,例如锁;那些被永久存储在外围存储转载 2010-07-14 11:57:00 · 5515 阅读 · 1 评论