创建、克隆pdb---oracle 12c 学习(1)
SQL> select * from v$version;BANNER &n...
ora_rowscn伪列测试
使用表的默认创建参数,即norowdependencies时,此时的ora_rawscn 取自data block header的SCN,那么这时候,对于同一个block里的row而言,他们的ora_rowscn 是一样的。而在创建table时指定为rowdependencies时,那么会为每行row 保存一个ora_rowscn. 这样对于同一个block里的row,会有多个ora_rowscn 值。通过dump block,...
RAC数据库启用、禁用一个实例
---禁用节点srvctl disable instance -d mbs -i mbs2SQL> alter database disable thread 2; --启用节点SQL> alter database enable thread 2;srvctl enable instance -d mbs -i mbs2------下面进行测试:1. 禁用节点2的实例mbs2[oracle@rac01 ~]$ srvctl disable instance -d mbs -i mbs2...
使用exchange partition来交换不同schema之间的表
要将用户a下的表t移动到用户b下,如果数据量比较大,可以采用分区交换的方法,在很短的时间内实现数据从用户a移动到用户b下:SQL> grant resource ,connect to a identified by a;Grant succeeded.SQL> grant resource ,connect to b identified by b;Grant succeeded.SQL> create table a.t(a number) table...
大数据量分区表统计信息的管理
对于大数据量分区表,当数据加载后,如果不能及时更新统计信息,将导致sql产生不正确的执行计划,引起查询性能的下降,而对于一个数据加载比较频繁的分区表,往往无法在每次加载数据后及时收集统计信息,而且对于数据量比较大的表来说,收集统计信息本身就是比较耗费资源的操作。这种情况下,可以采用DBMS_STATS.COPY_TAB...
stopkey对索引扫描的影响测试
测试思路:构造一个表,共50万条记录,前99999条记录对应的id为1,status为1,第10万条记录对应的id也为1,但status为2,这样,当以id=1 and status=2 and rownum=1 为条件进行查询时,如果只在id上建立索引,那么oracle将从索引中第一条id=1的记录开始扫描,每扫描一条索引记录就返回表中查找该记录中的status是否为2,...
WITH VALIDATION 与WITHOUT VALIDATION对分区交换的影响
最近将一个比较大的历史表改造为分区表,中间用到了分区交换,为了搞清楚分区交换时WITHOUT VALIDATION与WITH VALIDATION以及是否禁用主键约束的区别,用10046对各种情况进行了跟踪对比:1.禁用主键约束+without validationALTER TABLE BC_LOG_TRANSFER_EB_HIS1 DISABLE CONSTRAINT PK_LOG_TRANSFER_EB_HIS KEEP INDEX...
延迟块清除测试
延迟块清除:当dml操作涉及到的数据块被写入到磁盘后,再做commit操作,此时oracle不会去修改数据块中的itl相关信息,等到下一次对数据块做select操作时,oracle会清除这些信息。测试如下:第一次update表t的数据,并提交,之后再做flush buffer_cache,SQL> truncate table t;Table truncated.SQL> insert int...
v$active_session_history视图
查找最近一分钟内,最消耗CPU的sql语句select sql_id,count(*),round(count(*)/sum(count(*)) over (),2) pctloadfrom v$active_session_historywhere sample_time > sysdate -1/(24*60)and session_type 'BACKGROUND'and session_state= 'ON CPU'group by sql_idorder by count(*) desc; 查找最近一分钟...
创建logical standby
1.检查数据库中是否存在不支持的数据类型 SQL> SELECT OWNER, TABLE_NAME FROM DBA_LOGSTDBY_NOT_UNIQUE 2 WHERE (OWNER, TABLE_NAME) NOT IN 3 (SELECT DISTINCT OWNER, TABLE_NAME FROM DBA_LOGSTDBY_UNSUPPORTED) 4 AND BAD_COLUMN = 'Y';no rows selected ...
11g新特性--查看表的历史统计信息差异
11g新增了一个函数DIFF_TABLE_STATS_IN_HISTORY ,可以对比两个时间点的统计信息差异,测试如下:FUNCTION DIFF_TABLE_STATS_IN_HISTORY RETURNS DIFFREPTAB Argument Name &n...
11g新特性--active dataguard
--在standby端SQL> alter database recover managed standby database cancel;Database altered.SQL> alter database open;Database altered.SQL> select open_mode from v$database;OPEN_MODE--------------------R...
11g新特性--基于虚拟列的分区
首先创建一个基于虚拟列的分区表:SQL> CREATE TABLE products ( 2 product_id NUMBER(3) PRIMARY KEY,  ...
11g新特性--pending statistics
在11gr2后,收集统计信息后,可以选择使用或不使用新的统计信息,如果使用新的统计信息,则统计信息被保存在USER_TAB_STATISTICS 和 USER_IND_STATISTICS.中如果不使用,则统计信息被保存在USER_TAB_PENDING_STATS ...
11g新特性--invisible index
从11g开始,可以创建一个invisible的索引,优化器会忽略这个索引,但DML操作会维护索引,这可以在删除索引之前,用来测试对查询是否有影响。SQL> create table t as select rownum id from dual connect by level<=1...
11g新特性--result caching
开启result_cache后,sql的查询结果被缓存到shared_pool中,再次执行相同的查询时,直接读取结果,不需要执行该sql了,可以通过两种方式启用:1. 加提示 RESULT_CACHE SQL> SELECT /*+ RESULT_CACHE */ departm...
memory_target、sga_target、pga_target的设置
---memory_target设置为非0时SQL> show parameter target NAME TYPE &...
RAC环境下dataguard的搭建
----primary端配置1. 启用强制数据库日志SQL> ALTER DATABASE FORCE LOGGING;Database altered.SQL> select force_logging from v$database;FORCE_LOGGING---------------YES2.创建密码文件创建rac数据库时已...
group by 需要排序吗?
研究了一下,group by是否排序是受隐含参数_gby_hash_aggregation_enabled控制的,如下测试:SQL> alter system set "_gby_hash_aggregation_enabled"=false;System altered.SQL> set autot traceonlySQL> select ob...
service的创建与使用
1.DBCA创建service2. srvctl创建service--创建service[oracle@rac01 admin]$ srvctl add service -d mbs -s batch -r mbs2 -a mbs1--启动service [oracle@rac01 admin]$ srvctl start service -d mbs -s batch&...