Stream在11gR1的新特征
相对于10gR2而言,11gR1中stream的新功能更是令人期待,比如:同步捕获(synchronous capture)功能,已经脱离日志挖掘的范畴;stream性能顾问(stream performance advisor)可以识别stream拓扑中的瓶颈、分离与合并stream的目标站点(对于复杂的stream环境可以提高其可用性及可维护性),跟踪LCRs的状态等、支持透明数据加密等、比较与同步共享的数据库对象(当复制环境中名称相关的表数据不一致时,可以用dbms_comparison包来同步)。。。[@more@]同步捕获(synchronous capture)同步捕获是11gR1中推出捕获dml的新功能,它利于内部机制去
Parallel Query Wait Events
SCOPE & APPLICATION-------------------This is intended as a reference for anyone involved in database tuning. At the moment we consider the following PX wait events as idle: - "PX Idle Wait"- "PX Deq: Execution Msg"- "PX Deq: Table Q Normal"- "PX Deq Credit: send blkd"- "PX Deq: Execute Reply"- "PX Deq Credit: need buffer"- "PX Deq: Signal ACK"- "PX Deque wait"[@more@]In 9i statspack does not filter out all idle
Recovery is repairing media corrupt block
在dataguard环境中,经常发现standby库的pxxx进程的trace文件中有这样的信息,查了metalink,官方的解释:并不是bug或者错误,而是因为在primary database执行了不可恢复的操作导致的,解决的办法特简单,在primary database上执行以下操作:[@more@]alter database force logging;可以用以下的脚本查看那些数据文件有问题:SELECT name, unrecoverable_change# , unrecoverable_time FROM v$datafile where UNRECOVERABLE_CHANGE# > 0 order by 1;
ASM INSTANCE & Shared Pool (ORA-4031)
The setting for the SHARED_POOL_SIZE parameter determines the amount of memory required to manage the instance. The setting for this parameter is also used to determine the amount of space that is allocated for extent storage. The default value for this parameter is suitable for most ASM environments. [@more@]1) For 32-bit environments 32 MB is the default and minimum requirement for an ASM instance, but 48 MB is recommended. 2) On 64-bit platforms 88 MB are required for an ASM instance, recomme
数字数据存储格式[摘]
Oracle 以变长格式存储数字数据。所有数字数据均以科学计数法存储[scientific notation],使用 1 字节存储指数[exponent],最多 20 字节存储尾数[mantissa]。最终存储的数字数据受限于 38 位精度限制。且 Oracle 不会存储数字首端及末端的 0。举例来说,数字 412 在存储时的格式可以理解为 4.12 x 102,Oracle 使用 1 字节存储指数(2),使用 2 字节存储尾数的三位有效数字(4,1,2)。存储负数时,符号也需要占用存储空间。[@more@]综合上述存储特性,定义为 NUMBER(p)(p 表示数字值的精度)的数字数据值所占用的字节数可以通过以下公
你喜欢用number做数据类型吗?
经常见到有人在系统设计时用GUID或MD5产生的32位字符串做主键,即使一些按日期产生的业务编码如2001010100001这样的字符串,都用varchar2来存储,总觉得不是很好,如果数据量不大的话,也无可厚非,但如果运用于存储海量的数据,那将会造成存储成本的巨增,请看下面的测试:[@more@]16:58:49 SQL> create table test(a1 varchar2(32),a2 number);Table created.16:59:03 SQL> insert into test values('20010101000001',20010101000001);1 row created.16:59:26 SQL> commit;Commit complete.16:59:27 SQL> select dump(a1),d
SQL优化:理解SQL的意图
如果你的系统中,通过statspack report或awr report,发现这样的SQL执行比较频繁,而且test表的记录数比较多,test表中附合status = '1'的记录数也非常多,占test表记录数90%的比例吧,从statspack report或awr report可以发现该SQL的逻辑读会相当大,假定该表没有任何索引,那DBA该如何着手进行SQL的优化呢?SELECT seller_idFROM (SELECT * FROM (SELECT seller_id, max(gmt_create) FROM test WHERE status = 1 GROUP BY seller_id)ORDER BY gmt_create DESC)WHERE rownum <= 10;[@more@]方案A假如test表需要存储空间4g,在test表的
11g新特性:Automatic SQL Tuning Advisor
在11g中,优化器有两种模式:普通模式与调化模式。优化器在普通模式下,当SQL被执行时,查询优化器将生成SQL的执行计划,如果SQL的可选路径很多,优化器必须是限制时间内,选择一个合适的执行计划;当优化器在调优模式下,优化器需要执行额外的分析去判断优化器在普通模式下产生的执行计划是否有可能被改进,此时优化器输出的不是一个执行计划,而是一系列的动作,根据调优的原理、产生一个更优化的执行计划,优化器需发花费一定的时间去调优单个的sql,自动调优的优化器每次查询都是硬解析。[@more@]The Automatic Tuning Optimizer perf
11g新特性:SQL Performance Analyzer(SPA)
系统变更会影响SQL的执行计划,比如数据库升级,优化参数调整,表结构变更,索引维护(创建,删除,重建),统计信息收集等,Oracle为了预防系统变更所引起的不良后果,特推出SPA,SPA做为RAT(Real Application Test)的一部分,可以消除一些不知预知的错误,Oracle提供dbms_sqlpa包来实现系统变更前后的性能分析,SPA主要应用在以上方面:[@more@]■ Database upgrade■ Configuration changes to the operating system, hardware, or database■ Database initialization parameter changes■ Schema changes, for example, adding new i
11g新特性:database replay workload capture的限制
在11g中,Real Application Testing(RAT)是一个独立的收费选项,所以当我们需要订购此项服务时,我们该了解该服务有那些限制,否则付了钱,发现有许多地方存在或多或少的冲突,有些冲突的消除可能要花费更大的成本,所以在上项目前,可行性技术研究是必不可少的,如果想使用RAT,需要关注现有的数据库系统是否涉及到如下技术:[@more@]Workload Capture Restrictions:■ Direct path load of data from external files using utilities such as SQL*Loader■ Shared server requests (Oracle MTS)■ Oracle Streams■ Advanced replicat
11g新特性:SQL Management Base(SMB)
在Oracle 11g,SMB是SPM的控制端,SMB是数据字典的一部分,SMB存储在sysaux表空间,SMB存储SQL语句日志,Plan Histories,以及SQL Profiles等,SMB允许每周清除一次未使用的SQL Plan & Log,SMB已经配置了自动存储空间管理。[@more@]1 Disk Space UsageSMB默认可以使用sysaux表空间的10%,SMB被允许使用sysaux的存储范围是1%-50%,每周有后台进程来测量SMB使用sysaux的空间,如果SMB超过了允许的范围,就会在al*.log中写入一条警告,可以通过dbms_spm的configure过程设置SMB允许使用存储空间的范围。BEGIN DBMS_SPM.CONFIGURE('space_
11g新特性:SQL Plan Management(SPM)
在11g,oracle提供dbms_spm包来管理SQL Plan,SPM是一个预防机制,它记录并评估sql的执行计划,将已知的高效的sql执行计划建立为SQL Plan Baselines,SQL Plan Baseline的功能是保持SQL的性能而不必关注系统的改变。[@more@]1 Capturing SQL Plan Baselines在SQL Plan BaseLines捕获阶段,Oracle记录SQL的执行计划并检测该执行计划是否已经改变,如果SQL改变后的执行计划是安全的,则SQL就使用新的执行计划,因此,Oracle维护单个SQL执行计划的历史信息,Oracle维护的SQL执行计划的历史仅仅针对重复执行的SQL,SQL Plan Baseline可以手工l
11g新特性:Pending Statistics
从11g开始,表与索引的统计信息收集完毕后,可以选择收集的统信息立即发布,也可以选择使新收集的统计信息处于pending状态,待确定处于pending状态的统计信息是安全的,再使处于pending状态的统计信息发布,这样就会避免一些因为收集统计信息立即发布而导致SQL执行计划走错的灾难。[@more@]1 如何判断是否有pending的统计信息需要生效?SQL> Select dbms_stats.get_prefs('PUBLISH') publish from dual;PUBLISH--------------------------TRUEdbms_stats的get_prefs函数返回true,表示对象的统计信息收集后立即生效,如果返回flase,收
11g新特性:Extended Statistics Collect
在11g中,dbms_stats package提供了组合列的统计信息的收集,如果在where条件中使用了组合列进行查询,则优化器将会得到更准确的统计信息,进而输出执行计划时,可以输出更接近与真实数据的统计结果,11g的Extended Statistics包含了组合列与表达式统计信息的收集,表过式统计信息收集主要是针对函数索引字段,下面就组合列统计信息的收集做一下测试:[@more@]SQL> create index idx_object_objtype on tmp_objects(object_type,owner) compute statistics;Index created.SQL> select index_name,BLEVEL,LEAF_BLOCKS,DISTINCT_KEYS,
11g新特性:Auto Optimizer Statistics Collection
在oracle 10g中,优化统计信息的收集是通过scheduler job来自动完成的,dba可以通过dbms_scheduler package的enable procedure与disable procedure来启动与关闭,在oracle 11g中,oracle提供了全新的package dbms_auto_task_admin来完成统计信息的收集工作,测试脚本如下所示:[@more@]启动:BEGINDBMS_AUTO_TASK_ADMIN.ENABLE(client_name => 'auto optimizer stats collection',operation => NULL,window_name => NULL);END;/关闭:BEGINDBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'auto optimizer stats collection',op
11g新特性:常驻连接池DRCP之三
五 如何在DB中配置DRCP?在11g中,系统默认包含了一个连接池:SYS_DEFAULT_CONNECTION_POOL,这个池默认被创建,但默认该池是不启动的,如果要启动默认的连接池,必须显式地执行启动DRCP的命令,oracle提供dbms_connection_pool package来执行这个工作,如果连接池被显式地启动,必须显式地被停掉,当实例宕掉时,如果DRCP是活动的,则实例启动时,DRCP也将自动实动。启动DRCP需要以下步骤:A 用sysdba权限连接到sqlplusB 执行exec dbms_connection_pool.start_pool();C 查看DRCP的状态[@more@]六 客户端如何连接到DRCP?如果是专用服务器
11g新特性:常驻连接池DRCP之二
三Dedicated Servers,Shared Servers与DRCP的内存需求一般情况下,由于每个会话需要消耗400k的内存,每个进程需要消耗4m的内存,现在我们以DRCP的pool size是100,shared server的shared server进程是100为例,假如有5000个客户端连接到这些环境,则这些主机的内存分配如下:A Dedicated Server Memory used = 5000 X (400 KB + 4 MB) = 22 GBB Shared ServerMemory used = 5000 X 400 KB + 100 X 4 MB = 2.5 GBOut of the 2.5 GB, 2 GB is allocated from the SGA.C Database Resident Connection PoolingMemory used = 100 X (400 KB +
11g新特性:常驻连接池DRCP之一
在oracle中,进程的频繁创建是一个比较消耗资源的开消,在11g之前,oracle提供专用器进程与共享服务器进程供用户选择适合自己的进程机制,在11g中,oracle又推出DRCP(database resident connection pool),类似于sqlrelay那种轻量级中间件的进程机制为客户服务,DRCP适用于web application(比如php/apache),可以提供成千上万的连接,使用DRCP可以共享主机资源。[@more@]一 什么时间使用DRCP1 使用较小内存的、大量的客户端连接2 客户端应用是相似的,可以共享或重用会话3 客户端占用数据库连接的周期相当短4 会话不需要跨客户请求5 客户
11g新特性:database replay
在11g中,很多功能oracle都引导用户通过OEM来操作,但喜欢用API的dba,照样可以写脚本来完成自己的工作,下面给大家介绍一下database replay的配置方法,database replay可以捕捉整个数据库的负载,并且传递到需要进行测试数据库上,然后重演负载以测试系统调优后的效果,当然也可以为升级硬件进行压力测试。[@more@]A 创建目录create directory sqlplay as /home/oracle11g/worksh/sqlplay';B 启动捕获进程SQL> BEGIN 2 DBMS_WORKLOAD_CAPTURE.START_CAPTURE ( 3 name => 'capture_by_yekai', 4
11g新特性:全表扫描的变化
在oracle 11g以前的版本中,如果对大表进行全表扫描,通过v$session_wait可以看到wait event是:db file scattered read;在11g中,如果对大表进行全表扫描,通过v$session_wait可以看到wait event是:direct path read;也就是说,在11g中,大表全表扫描是将数据块直接读入会话的pga区域。[@more@]10g:[oracle10g@csdba worksh]$ sh list_sql.sh--------------------------------------------------------------------------YEKAI(159,235) ospid=5318 hash_value=1577916882 execs=918 els_time=1.04program=sqlplus@csdba (TNS V1-V3)