由于几乎所有的操作系统都支持虚拟内存,所以即使我们使用的内存小于物理内存,也不能避免操作系统将SGA换到虚拟内存(SWAP)。所以我们可以尝试使得SGA锁定在物理内存中不被换到虚拟内存中,这样减少页面的换入和换出,从而提高性能。但在这里遗憾的是,windows是无法避免这种情况的。下面我们来参考在不同的几个系统下怎
pessimistic (悲观)locking和optimistic (乐观)locking是oracle保证数据并行访问和避免lost update的2种策略. pessimistic (悲观)locking是指用户在读取和更新数据的时候,悲观的认为这期间其他用户可能会更新同一记录;因此在更新数据前读取数据的时候,尝试获得该记录的绝对锁,如果其他用户已经锁住该纪录,则被阻
1.根据Q193893,我们需要在Oracle里面建立两个视图。 Information about using Oracle with Microsoft Transaction Server and COM+ components http://support.microsoft.com/?id=193893 根据我们以往的经验,我们可以尝试用SYS账号运行Oracle自带的脚本。脚本的默认路径在: C:\oracle\ora92\rdbms\admin\xavi
当将版本提高到Oracle 8i时,应当特别注意不可避免的“ n u l l”字符。 当表中的表列值未知时,就置它为空值( n u l l )。 在Oracle 8i中,含有空值的表列长度为零, 但要注意, 今后的版本中不一定是这样。 比较操作中的空值问题 保存空值数据的唯一办法是使用关键字“ is null”和“is not null”,如下所示: select cou
回滚段中保存的回滚数据有2个作用:一致读和回滚。回滚段是由连续block组成的区间extent组成.回滚段有顺序的循环的使用这些区间。当当前区间写满的时候,oracle移向下一个区间. 如一个回滚段有4个区间A,B,C,D;当区间C被写满的时候,oracle将写区间D,而当D写满的时候,oracle将尝试重新写区间A.这样循环的有顺序的使用区间。
自从Oracle8.1.5引入dbms_stats包,Experts们便推荐使用dbms_stats取代analyze。 理由如下 dbms_stats可以并行分析 dbms_stats有自动分析的功能(alter table monitor ) analyze 分析统计信息的不准确some times 1,2好理解,且第2点实际上在VLDB中是最吸引人的;3以前比较模糊,看了metalink236935.1 解释,anal
备份与恢复 [Q]如何开启/关闭归档 [A]如果开启归档,请保证log_archive_start=true开启自动归档,否则只能手工归档,如果是关闭了归档,则设置该参数为false 注意:如果是OPS/RAC环境,需要先把parallel_server = true注释掉,然后执行如下步骤,最后用这个参数重新启动 1、开启归档 a. 关闭数据库shutdown immediate b. st
诊断因为inefficent SQL导致严重Cache buffers chain / Cache buffer lru chain Latch,引起的CPU紧张和用户Batch缓慢 数据库817,有人叫batch太慢了,开始检查。 CPU使用率一直很高,且有进程IO等待,但iostat没有显示有wtvmstat 1 10procs memory page disk faults cpur b w swap free re mf pi po fr de sr s0 s1
使用如下语法:ALTER TABLE MOVE TABLESPACE LOB () STORE AS (TABLESPACE ); 其中STORE AS 修改LOB segment段名字的方法,我在817.3的测试中没有效果;而且还导致表也被Moved(注意测试中ROWID的改变). 当分区包括LOB时候,语法稍有不同; alter table move partition lob () store as ( tablespace ) 具体参考http://asktom.
本质上它们都需要inline view 第一种:最古老的,借助order by TOPN column desc(desc前面N行,asc最后N行)的结果, 使用伪列rownum来实现TOP5的查询: SQL> select ename,sal 2 from 3 (select ename,sal from emp order by sal desc) 4 where rownum<=5 5 / ENAME SAL KING 50
今天霄汉的SQL优化培训收获颇丰,摘要出一部分. 1.1 IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。 但是用IN的SQL性能总是比较低的,从ORACLE执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别: ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再
检查一条SQL语句的执行计划,以便分析其是否应用了索引 好找到SQL的瓶颈 1。创建表plan 执行utlxplan.sql 该文件在$ORACLE_HOME/rdbms/admin下 2。在sqlplus中检查SQL语句是否应用了索引 SQL> explain plan for (回车) 2 select itemid from NAD_ADitem where adcustomerid<400 and adgroupid<500; SQL> @xpls.
1、如何单独备份一个或多个用户: D:>exp scott/tiger file=导出文件 D:>exp system/manager owner=(用户1,用户2,…,用户n) file=导出文件 2、如何单独备份一个或多个表: D:>exp 用户/密码 tables=表 D:>exp 用户/密码 tables=(表1,…,表2) D:>exp system/manager tables=(用户.表)
以前只是知道ORACLE SGA在不同的平台上都有大小限制,需要手工解除这个限制,但是由于一直没有把SGA调整得太大,所以一直没有碰到过,但是一旦真得让我碰上了,竟有些不知所措,搞了半天才想起来是这个原因! 故障日期:2005.8.12 故障现象:早晨数据库无法启动。错误如下: SVRMGR> startup nomount ORA27123: unable t
这篇文章主要介绍如何使用jdbc配置连接数据库(oracle的RAC配置的数据库)达到负载均衡的情况.该例子是以2个NODE的情况说明,希望对大家有所帮助. 我的问题是我需要设置oracle9.2.x的thin客户端连接到oracle的RAC环境上. 注:这样连接可以通过RAC自动平衡负载. 原文如下:Hi Tom,I couldn''t find this information easily on th
上个月,数据库开始出现问题,负载低,但查询很慢,尤其是在应用程序启动,加载预置数据的时候,以前启动加载数据只需要不到1分钟就可以完成,但当时启动服务却用了1个小时,后来经过分析和测试,找到了3个问题,其中一个问题是是硬件和JVM之间的,可以看海东的<Xeon3.0·RedHat9·JVM>;另一个问题是数据库IO高的问
在Oracle数据库中创建一个序列,使表的PK顺序生成为表创建序列 CREATE SEQUENCE emp_sequence INCREMENT BY 1 每次加几个 START WITH 1 从1开始计数 NOMAXVALUE 不设置最大值 NOCYCLE 一直累加,不循环 CACHE 100; CREATE SEQUENCE NAD_PV_SEQU INCREMENT BY 1 START WITH 1807487 MAXVALUE 999999
pessimistic locking 考虑 1) 使用select for update(nowait)不像optimistic locking需要用户额外的编码,实现简单。 2) 在交互式应用中,行锁的时间可能较长。如果用户所住该纪录后,离开终端,则其他用户将无法更新该纪录(但用户可以查看该记录,oracle 写并不阻塞读)。在“有线“(服务器可以知道客户端的状态)应用中
服务器报错 ORA01694: max # extents (505) reached in lob segment NARROWAD.SYS_LOB0000003113C00005$$ partition SYS_LOB_P24 是因为Oracle表中的CLOB字段的扩展块设置有问题 分析服务器报错 ORA01694: max # extents (505) reached in lob segment NARROWAD.SYS_LOB0000003113C00005$$ partition SYS
关系数据库都提供大文档的存储和提取。对于视频资料、音频资料、图象资料等大文档,一般需要另外开辟字段用于存储摘要信息,因此在查询和检索时并不访问大字段,而只是在存储和提取时才操作 大字段。例如,你不能对Oracle中的LONG RAW类型进行LIKE介词的查询,更不能使用等号“ =”查询。这对于存储大段文本(容量超过2K)