Search results “Oracle nologging on insert”
Oracle Hints Tutorial for improving performance
Oracle Hints Tutorial for improving performance APPEND PARALLEL JOIN INDEX NO_INDEX SELECT /*+ FIRST_ROWS(10) */ * FROM emp WHERE deptno = 10; SELECT /*+ ALL_ROWS */ * FROM emp WHERE deptno = 10; SELECT /*+ NO_INDEX(emp emp_dept_idx) */ * FROM emp, dept WHERE emp.deptno = dept.deptno; SELECT /*+ INDEX(e,emp_dept_idx) */ * FROM emp e WHERE e.deptno = 10; -- SELECT /*+ INDEX(scott.emp,emp_dept_idx) */ * FROM scott.emp; SELECT /*+ AND_EQUAL(e,emp_dept_idx) */ * FROM emp e; SELECT /*+ INDEX_JOIN(e,emp_dept_idx) */ * FROM emp e; SELECT /*+ PARALLEL_INDEX(e,emp_dept_idx , 8) */ * FROM emp e; SELECT /*+ LEADING (dept) */ * FROM emp, dept WHERE emp.deptno = dept.deptno; SELECT /*+ PARALLEL(8) CACHE (e) FULL (e) */ * FROM emp e ; SELECT /*+ PARALLEL FULL (e) */ * FROM emp e ; SELECT /*+ PARALLEL USE_MERGE (emp dept) */ * FROM emp, dept WHERE emp.deptno = dept.deptno; -- SORT Merge Join SELECT /*+ PARALLEL USE_HASH (emp dept) */ * FROM emp, dept WHERE emp.deptno = dept.deptno; -- Hash Join SELECT /*+ PARALLEL */ * FROM emp e ; INSERT /*+ APPEND */ INTO mytmp select /*+ CACHE (e) */ *from emp e; commit;
Views: 7441 TechLake
Why Use Parallel Processing?
This video compares the use of parallel and serial processing for the same SQL query. Copyright © 2012 Oracle and/or its affiliates. Oracle® is a registered trademark of Oracle and/or its affiliates. All rights reserved. Oracle disclaims any warranties or representations as to the accuracy or completeness of this recording, demonstration, and/or written materials (the "Materials"). The Materials are provided "as is" without any warranty of any kind, either express or implied, including without limitation warranties of merchantability, fitness for a particular purpose, and non-infringement.
How to Detect Soft Corruption in Oracle 12c Database
Detection of Soft Corruption in 12c: To use the scripts below replace : , ",# and $ by proper bracket Lets Create a tablespace and small table. SQL: create tablespace DEMO1 datafile '/u02/tstdb1/TSTDB1/datafile/demo01.dbf' size 50M SQL: create table objects tablespace DEMO1 as select * from dba_objects; SQL: alter table objects add constraint pk_obj primary key #object_id$; SQL: create index idx_obj_name on objects#object_name$ tablespace demo1; Backup tablespace. RMAN: backup tablespace DEMO1; We need to put the DB in archivelog first Rebuild index with NOLOGGING option to simulate soft corruption later. RMAN: alter index idx_obj_name rebuild nologging; Confirm that we have datafiles that require backup because they have been affected with NOLOGGING operation. RMAN: report unrecoverable; Simulate corruption. RMAN: alter database datafile 5 offline; RMAN: restore datafile 5; RMAN: recover datafile 5; RMAN: alter database datafile 5 online; Query table with corrupted index and notice error. SQL: select count#*$ from objects where object_name like 'A%'; Let’s perform validation of datafile to check block corruption. RMAN: backup validate check logical datafile 5; Notice that we have 457 blocks marked corrupt but v$database_block_corruption view is empty. SQL: select count#*$ from v$database_block_corruption; Let’s query v$nonlogged_block view. set lines 200 set pages 999 select file#, block#, blocks,object#,reason from v$nonlogged_block; Will RMAN detect that we have corrupted blocks? RMAN: backup datafile 5; RMAN backup won’t fail due to NOLOGGING corrupt blocks and our backup will contain soft corrupted blocks. Let’s Identify corrupt segments using v$nonlogged_block view. set lines 2000 set pages 9999 col owner for a20 col partition_name for a10 col segment_name for a20 SELECT e.owner, e.segment_type, e.segment_name, e.partition_name, c.file# , greatest#e.block_id, c.block#$ corr_start_block# , least#e.block_id+e.blocks-1, c.block#+c.blocks-1$ corr_end_block# , least#e.block_id+e.blocks-1, c.block#+c.blocks-1$ - greatest#e.block_id, c.block#$ + 1 blocks_corrupted FROM dba_extents e, V$NONLOGGED_BLOCK c WHERE e.file_id = c.file# AND e.block_id "= c.block# + c.blocks - 1 AND e.block_id + e.blocks - 1 := c.block# UNION SELECT s.owner, s.segment_type, s.segment_name, s.partition_name, c.file# , header_block corr_start_block# , header_block corr_end_block# , 1 blocks_corrupted FROM dba_segments s, V$NONLOGGED_BLOCK c WHERE s.header_file = c.file# AND s.header_block between c.block# and c.block# + c.blocks - 1 UNION SELECT null owner, null segment_type, null segment_name, null partition_name, c.file# , greatest#f.block_id, c.block#$ corr_start_block# , least#f.block_id+f.blocks-1, c.block#+c.blocks-1$ corr_end_block# , least#f.block_id+f.blocks-1, c.block#+c.blocks-1$ - greatest#f.block_id, c.block#$ + 1 blocks_corrupted FROM dba_free_space f, V$NONLOGGED_BLOCK c WHERE f.file_id = c.file# AND f.block_id "= c.block# + c.blocks - 1 AND f.block_id + f.blocks - 1 := c.block# order by file#, corr_start_block# / This is the best outcome to get if you notice corruption errors. All errors are related to index corruption so we could fix this problem rebuilding index. alter index idx_obj_name rebuild; Simply issuing "alter index rebuild" command won't work. We should mark index unusable to drop segment before rebuilding it or just rebuild index with online option. It is better choice to mark index unusable because you don't need additional space then, but I will simply rebuild index with online option and see what will happen. SQL: alter index idx_obj_name rebuild online; Index altered. SQL: select count#*$ from objects where object_name like 'A%'; No errors... but, let's validate datafile for corruption. RMAN: backup validate check logical datafile 5; Notice "Marked Corrupt" column. Hm... 457 like before. Don't worry, this is not new corruption. These are FREE blocks which will be reused and Oracle will automatically re-format those blocks. Query the v$nonlogged_block view again as given above. We could force re-formatting creating dummy table and inserting data to dummy table. Check Doc ID 336133.1. create table s # n number, c varchar2#4000$ $ nologging tablespace DEMO1; SQL: BEGIN FOR i IN 1..1000000 LOOP INSERT /*+ APPEND */ INTO sys.s select i, lpad#'REFORMAT',3092, 'R'$ from dual; commit ; END LOOP; END; / SQL: drop table sys.s purge; Notice that we don't have corrupted blocks any more. RMAN: backup validate check logical datafile 5;
Views: 172 OracleDBA
Read-Only Tables in Oracle
Here's a quick video showing how to create Read-Only tables in Oracle. For more information see: https://oracle-base.com/articles/11g/read-only-tables-11gr1 Website: https://oracle-base.com Blog: https://oracle-base.com/blog Twitter: https://twitter.com/oraclebase Cameo by David Peake Blog: http://dpeake.blogspot.com/ Twitter: https://twitter.com/orcl_dpeake Cameo appearances are for fun, not an endorsement of the content of this video.
Views: 880 ORACLE-BASE.com
How to drop an object, and then recover it from the Oracle recycle bin
How to drop an object, and then recover it from the Oracle recycle bin ========================================================== select base_object from recyclebin; flashback table tablename to before drop; create table ============= create table fish as select * from tab; insert data into table ====================== insert into fish select * from tab; insert into fish select * from fish; drop table =========== drop table fish; how to recover it from recyclebin ================================== flashback table fish to before drop;
Views: 254 Praveen Biyyapu
How to table create in oracle
Design Tables Before Creating Them. Consider Your Options for the Type of Table to Create. Specify the Location of Each Table. Consider Parallelizing Table Creation. Consider Using NOLOGGING When Creating Tables. Consider Using Table Compression. Consider Encrypting Columns That Contain Sensitive Data. https://youtu.be/0lwvKpmztJY
Views: 61 Future Exam
What happens to transactions when the sqlplus program is closed
What happens to transactions when the sqlplus program is closed =============================================================== create table fruit(sno number); insert into fruit values (1); insert into fruit values (2); select * from fruit; quit; conn naveen/naveen insert into fruit values (3); insert into fruit values (4); select * from fruit; close the cmd promt;
Views: 162 Praveen Biyyapu
HOW TO DROP TABLESPACE ====================== drop tablespce king; (datafile will not delete from o/s level) create tablespace king datafile 'E:\DATABASE\DATABASE\ORADATA\ORCL\KING01.DBF' reuse;(no need to give size) drop tablespace king including contents and datafiles;(datafile will delete from o/s level) newly created tablespace king with king01 datafile (got deleted from o/s level)
Views: 530 Praveen Biyyapu
USER MANAGEMENT-HOW TO CREATE PROXY USER GRANT/REVOKE PROXY =========================================================== proxy user is a user that is allowed to "connect on behalf of another user" create user proxy1 identified by proxy1; create user proxy2 identified by proxy2; grant connect to proxy1,proxy2;(only create session privilege) alter user naveen grant connect through proxy1, proxy2; alter user proxy1 grant connect through proxy2; alter user naveen revoke connect through proxy1,proxy2; alter user proxy1 revoke connect through proxy2; conn proxy1[naveen]/proxy1 conn proxy2[naveen]/proxy2 conn proxy2[proxy1]/proxy2 set lines 180 pages 200 col a20 for proxy select * from proxy_users; (proxy_users -- data dictionary view) select sys_context('USERENV','PROXY_USER') from dual;
Views: 284 Praveen Biyyapu