dba brasil 1.0 - dba commands and concepts that every developer should know
TRANSCRIPT
![Page 1: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/1.jpg)
DBA Commands and Concepts That Every Developer Should
Know
Presented by: Alex Zaballa, Oracle DBA
![Page 2: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/2.jpg)
Alex Zaballa
http://alexzaballa.blogspot.com/
@alexzaballa
205 Certifications and counting…
https://www.linkedin.com/in/alexzaballa
Worked for 7 years in Brazil as a DeveloperWorked 8 years for the Ministry of Finance In Angola as a DBAMarch - 2007 until March - 2015
![Page 3: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/3.jpg)
![Page 4: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/4.jpg)
SQLcl
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
![Page 5: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/5.jpg)
DBA Commands and Concepts That Every Developer Should Know
![Page 6: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/6.jpg)
No DBA access to the Database?
![Page 7: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/7.jpg)
No DBA access to the Database?
eDB360 sample
![Page 8: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/8.jpg)
No DBA access to the Database?
![Page 9: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/9.jpg)
No DBA access to the Database?
SQLD360 sample
![Page 10: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/10.jpg)
insert /*+ append parallel */ into tab1 select /*+ parallel */ * from tab2 nologging;15 minutes to complete.
create table tab1 as select /*+ parallel */ * from tab2 nologging;2 minutes to complete.
Parallel
![Page 11: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/11.jpg)
Parallel
Source: https://docs.oracle.com/database/121/VLDBG/GUID-5EB01FA8-030B-45BB-9B16-2D13881F6010.htm
![Page 12: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/12.jpg)
Parallel
![Page 13: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/13.jpg)
Parallel
Update I$_2258193201set IND_UPDATE = 1where exists (
select 1from XX Twhere I$_2258193201.X_REF_DT = T.X_REF_DTand I$_2258193201XX.X_ACCT_KEY =
T.X_ACCT_KEY);
60 minutes to complete.
![Page 14: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/14.jpg)
Parallel
Update /*+ PARALLEL */ I$_2258193201_NEW I$_2258193201set IND_UPDATE = 1where exists (
select /*+ PARALLEL */ 1from XX_NEW Twhere I$_2258193201.X_REF_DT = T.X_REF_DTand I$_2258193201XX.X_ACCT_KEY =
T.X_ACCT_KEY);
3 minutes to complete.
***Duplicate tables “_NEW”
![Page 15: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/15.jpg)
Parallel
Update /*+ PARALLEL */ I$_2258193201set IND_UPDATE = 1where exists (
select /*+ PARALLEL */ 1from XX Twhere I$_2258193201.X_REF_DT = T.X_REF_DTand I$_2258193201XX.X_ACCT_KEY =
T.X_ACCT_KEY);
240 minutes to complete.
![Page 16: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/16.jpg)
Parallel
![Page 17: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/17.jpg)
Parallel
![Page 18: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/18.jpg)
Parallel
![Page 19: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/19.jpg)
Parallel
ANALYZE TABLE XX_NEW LIST CHAINED ROWS;
SELECT count(*) FROM chained_rows; 0 rows
ANALYZE TABLE XX LIST CHAINED ROWS;
SELECT (*) FROM chained_rows; 110,000 rows
![Page 20: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/20.jpg)
Explain Plan
How many people are using Explain Plan ?
![Page 21: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/21.jpg)
Explain Plan
Explain Plan Lies
![Page 22: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/22.jpg)
Explain Plan
Explain Plan just try to predict the Plan.
AUTOTRACE experiences a similar "problem”, especially when the SQL statement uses bind variables.
![Page 23: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/23.jpg)
Explain Plan
Solution ?
DBMS_XPLAN.DISPLAY_CURSOR
![Page 24: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/24.jpg)
DEMO
![Page 25: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/25.jpg)
Oracle Flashback Query
• Flashback Query (SELECT AS OF) AS OF TIMESTAMP
• Flashback Version Query VERSIONS BETWEEN { SCN | TIMESTAMP } start
AND end
• Flashback Transaction Query SELECT FROM flashback_transaction_query
![Page 26: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/26.jpg)
DEMO
![Page 27: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/27.jpg)
• Retrieve old versions of procedures:
select text from dba_source as of timestamp systimestamp - interval '5' minute where name='MY_PROC' order by line;
Oracle Flashback Query
![Page 28: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/28.jpg)
DEMO
![Page 29: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/29.jpg)
Oracle Flashback Query
The maximum available versions are dependent on the UNDO_RETENTION parameter.
The default is 900 seconds (15 minutes).
![Page 30: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/30.jpg)
Oracle Flashback Table
Reinstating an accidentally dropped table.
Parameter recyclebin = on (default).
![Page 31: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/31.jpg)
SELECT OWNER,OBJECT_NAME, ORIGINAL_NAME, TYPE, DROPTIMEFROM DBA_RECYCLEBIN WHERE ORIGINAL_NAME='TAB_TEST';
FLASHBACK TABLE TAB_TEST TO BEFORE DROP;
Oracle Flashback Table
![Page 32: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/32.jpg)
DEMO
![Page 33: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/33.jpg)
RMAN Table Recovery in 12c
RMAN enables you to recover one or more tables or table partitions to a specified point in time.
![Page 34: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/34.jpg)
RMAN Table Recovery in 12c
RMAN> RECOVER TABLE HR.REGIONS UNTIL TIME "TO_DATE('01/10/2013 09:33:39','DD/MM/RRRR HH24:MI:SS')"AUXILIARY DESTINATION '/tmp/backups'
![Page 35: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/35.jpg)
Schema Management DDL Wait Option
SQL> alter table invoice add (code number);
alter table invoice add (code number) *ERROR at line 1:ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
![Page 36: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/36.jpg)
Schema Management DDL Wait Option
Parameter DDL_LOCK_TIMEOUT (default = 0)
It will wait for N seconds. In that N seconds, it continually re-tries the DDL operation until it's successful or this time expires.
![Page 37: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/37.jpg)
DEMO
![Page 38: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/38.jpg)
Schema ManagementAdding Columns with a Default Value
Table T1 3 millions rows
10.2.0.4.0 > alter table t1 add C_DDL number default 42 not null;Table altered.Elapsed: 00:00:48.53
11.2.0.3.0> alter table t1 add C_DDL number default 42 not null;Table altered.Elapsed: 00:00:00.04
http://www.oracle.com/technetwork/pt/articles/sql/otimizacao-comandos-ddl-oracle-11g-2226731-ptb.html
![Page 39: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/39.jpg)
DEMO
![Page 40: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/40.jpg)
Rollback
How much longer?
select * from v$session_longopswhere sid = sid_of_the_session_doing_rollback
![Page 41: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/41.jpg)
Rollback
Source: https://docs.oracle.com/cloud/latest/db121/REFRN/refrn30227.htm#REFRN30227
![Page 42: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/42.jpg)
RollbackSID : 26SERIAL# : 30832OPNAME : Transaction RollbackTARGET :TARGET_DESC : xid:0x000e.01c.00000012SOFAR : 1211TOTALWORK : 21244UNITS : BlocksSTART_TIME : 15-nov-2015 16:20:07LAST_UPDATE_TIME : 15-nov-2015 16:21:24TIME_REMAINING : 55ELAPSED_SECONDS : 5CONTEXT : 0MESSAGE : Transaction Rollback: .... USERNAME : alex_zaballaSQL_ADDRESS : 00000000DF79A840SQL_HASH_VALUE : 72257521SQL_ID : 4wv9a0h24x3zj
![Page 43: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/43.jpg)
Pending Statistics
We have the option of keeping the newly gathered statistics in a pending state for testing purposes, until you choose to publish them.
Set table preferences: begin dbms_stats.set_table_prefs ( ownname => 'SCOTT', tabname => 'EMP', pname => 'PUBLISH', pvalue => 'FALSE' ); end;
Collect the statistics.
![Page 44: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/44.jpg)
Pending Statistics
select num_rows, to_char(last_analyzed,'dd/mm/rrrr hh24:mi:ss')from all_tab_pending_statswhere table_name = 'EMP';
![Page 45: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/45.jpg)
Pending Statistics
alter session set optimizer_use_pending_statistics = true;
Test the queries.
![Page 46: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/46.jpg)
Pending Statistics
If it’s ok:
dbms_stats.publish_pending_stats('SCOTT', 'EMP');
Or:
dbms_stats.delete_pending_stats(’SCOTT',’EMP');
![Page 47: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/47.jpg)
Restore Statistics from History
Check the retention:
select DBMS_STATS.GET_STATS_HISTORY_RETENTION from dual;
Default is 31 days.
![Page 48: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/48.jpg)
Restore Statistics from History
Statistics available for the table:
SELECT OWNER, TABLE_NAME, STATS_UPDATE_TIME FROM dba_tab_stats_historyWHERE table_name='MY_TABLE';
![Page 49: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/49.jpg)
Restore Statistics from History
Begin dbms_stats.restore_table_stats( 'SCOTT', 'EMP', ‘08-NOV-15 11.38.05.015640 AM +08:00’);End;
![Page 50: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/50.jpg)
Export and Import schema statisticsbegin dbms_stats.CREATE_STAT_TABLE( ownname=>user , stattab=>'MY_STATS_TABLE' );end;
begin dbms_stats.export_schema_stats( ownname=>user , stattab=>'MY_STATS_TABLE' , statid=>'CURRENT_STATS' );End;
EXPDP / IMPDP
begin dbms_stats.import_schema_stats( ownname=>user , stattab=>'MY_STATS_TABLE' , statid=>'CURRENT_STATS' );End;
![Page 51: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/51.jpg)
DBMS_APPLICATION_INFO
Allows programs to add information to the V$SESSION.
Use SET_MODULE to set the name for the program that the user is currently executing. Optionally you can also set an action name.
Use SET_ACTION for subsequent processing.
Use SET_CLIENT_INFO for any additional information.
![Page 52: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/52.jpg)
DEMO
![Page 53: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/53.jpg)
Row-by-Row Processing vs Bulk Processing
Instead of fetching a single row at a time it is possible to use the bulk features.
![Page 54: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/54.jpg)
DEMO
![Page 55: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/55.jpg)
Oracle Virtual Private Database (VPD)
• VPD enables you to create security policies to control database access at the row and column level.
• VPD adds a dynamic WHERE clause to a SQL statement.
• VPD enforces security directly on database tables, views, or synonyms.
![Page 56: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/56.jpg)
Oracle Virtual Private Database (VPD)
Original Select:
SELECT * FROM ORDERS;
VPD policy dynamically appends:
SELECT * FROM ORDERS WHERE COMPANY_ID = 1;
![Page 57: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/57.jpg)
DEMO
![Page 58: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/58.jpg)
More on 12c
![Page 59: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/59.jpg)
Extended Data Types
SQL> create table tabela_teste(campo01 varchar2(4001));*ERROR at line 1:ORA-00910: specified length too long for its datatype
![Page 60: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/60.jpg)
Extended Data Types
- VARCHAR2 : 32767 bytes- NVARCHAR2 : 32767 bytes- RAW : 32767 bytes
![Page 61: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/61.jpg)
Extended Data Types
SHUTDOWN IMMEDIATE;STARTUP UPGRADE;ALTER SYSTEM SET max_string_size=extended;@?/rdbms/admin/utl32k.sqlSHUTDOWN IMMEDIATE;STARTUP;
**Once you switch to extended data types you can't switch back
![Page 62: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/62.jpg)
SQL Text Expansion
SQL> variable retorno clobSQL> begin dbms_utility.expand_sql_text( input_sql_text => 'select * from emp', output_sql_text=> :retorno );end;
![Page 63: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/63.jpg)
SQL Text Expansion
• Views• VPDs
![Page 64: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/64.jpg)
DEMO
![Page 65: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/65.jpg)
Identity ColumnsCREATE TABLE tabela_teste ( id NUMBER GENERATED ALWAYS AS IDENTITY, coluna1 VARCHAR2(30));
![Page 66: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/66.jpg)
Identity Columns
CREATE TABLE tabela_teste ( id NUMBER GENERATED BY DEFAULT AS IDENTITY, coluna1 VARCHAR2(30));
![Page 67: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/67.jpg)
Identity ColumnsCREATE TABLE tabela_teste ( id NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY, coluna1 VARCHAR2(30));
![Page 68: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/68.jpg)
DEMO
![Page 69: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/69.jpg)
READ Object Privilege and READ ANY TABLE System Privilege
What is the difference to SELECT and SELECT ANY TABLE?
![Page 70: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/70.jpg)
READ Object Privilege and READ ANY TABLE System Privilege
SELECT and SELECT ANY TABLE provides the ability to lock rows:
LOCK TABLE table_name IN EXCLUSIVE MODE;SELECT ... FROM table_name FOR UPDATE;
![Page 71: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/71.jpg)
READ Object Privilege and READ ANY TABLE System Privilege
SQL> grant select on scott.emp to teste;Grant succeeded.
SQL> lock table scott.emp in exclusive mode;Table(s) Locked.
![Page 72: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/72.jpg)
READ Object Privilege and READ ANY TABLE System Privilege
SQL> grant read on scott.emp to teste;Grant succeeded.
SQL> lock table scott.emp in exclusive mode;lock table scott.emp in exclusive mode *ERROR at line 1:ORA-01031: insufficient privileges
![Page 73: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/73.jpg)
DEMO
![Page 74: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/74.jpg)
Virtual Columns
“Virtual columns appear to be normal table columns, but their values are derived rather than being stored on disc.”
![Page 75: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/75.jpg)
DEMO
![Page 76: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/76.jpg)
UTL_CALL_STACK
This package allow programmatic access to the call stack and error stack.
Before 12c: DBMS_UTILITY.FORMAT_CALL_STACK
![Page 77: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/77.jpg)
DEMO
![Page 78: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/78.jpg)
Online Table Redefinition (DBMS_REDEFINITION)
You can change the structure of a table that is already in use and is impossible to get a maintenance downtime.
![Page 79: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/79.jpg)
DEMO
![Page 80: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/80.jpg)
![Page 81: DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know](https://reader031.vdocument.in/reader031/viewer/2022022414/5872e74d1a28abfa548b6367/html5/thumbnails/81.jpg)
Thank You
Slides Available: http://www.slideshare.net/