SlideShare a Scribd company logo
DBA Commands and Concepts
That Every Developer Should
Know
Presented by: Alex Zaballa, Oracle DBA
Alex Zaballa
http://alexzaballa.blogspot.com/
@alexzaballa147 and counting…
https://www.linkedin.com/in/alexzaballa
Worked for 7 years in Brazil as a Developer
Worked 8 years for the Ministry of Finance
In Angola as a DBA
March - 2007 until March - 2015
DBA Commands and Concepts That Every Developer Should Know
DBA Commands and Concepts That Every Developer Should Know
DBA Commands and Concepts That Every
Developer Should Know
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
DEMO
• 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
DEMO
Oracle Flashback Query
The maximum available versions are dependent on the
UNDO_RETENTION parameter.
The default is 900 seconds (15 minutes).
Oracle Flashback Table
Reinstating an accidentally dropped table.
Parameter recyclebin = on (default).
SELECT OWNER,OBJECT_NAME,
ORIGINAL_NAME, TYPE, DROPTIME
FROM DBA_RECYCLEBIN
WHERE ORIGINAL_NAME='TAB_TEST';
FLASHBACK TABLE TAB_TEST TO BEFORE DROP;
Oracle Flashback Table
DEMO
RMAN Table Recovery in 12c
RMAN enables you to recover one or more
tables or table partitions to a specified point in
time.
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'
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
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.
DEMO
Schema Management
Adding 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
DEMO
Rollback
How much longer?
select *
from v$session_longops
where sid = sid_of_the_session_doing_rollback
Rollback
SID : 26
SERIAL# : 30832
OPNAME : Transaction Rollback
TARGET :
TARGET_DESC : xid:0x000e.01c.00000012
SOFAR : 1211
TOTALWORK : 21244
UNITS : Blocks
START_TIME : 15-nov-2015 16:20:07
LAST_UPDATE_TIME : 15-nov-2015 16:21:24
TIME_REMAINING : 55
ELAPSED_SECONDS : 5
CONTEXT : 0
MESSAGE : Transaction Rollback: .... USERNAME
: alex_zaballa
SQL_ADDRESS : 00000000DF79A840
SQL_HASH_VALUE : 72257521
SQL_ID : 4wv9a0h24x3zj
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.
Pending Statistics
select num_rows,
to_char(last_analyzed,'dd/mm/rrrr hh24:mi:ss')
from all_tab_pending_stats
where table_name = 'EMP';
Pending Statistics
alter session set
optimizer_use_pending_statistics = true;
Test the queries.
Pending Statistics
If it’s ok:
dbms_stats.publish_pending_stats('SCOTT', 'EMP');
Or:
dbms_stats.delete_pending_stats(’SCOTT',’EMP');
Restore Statistics from History
Check the retention:
select
DBMS_STATS.GET_STATS_HISTORY_RETENTION
from dual;
Default is 31 days.
Restore Statistics from History
Statistics available for the table:
SELECT OWNER,
TABLE_NAME,
STATS_UPDATE_TIME
FROM dba_tab_stats_history
WHERE table_name='MY_TABLE';
Restore Statistics from History
Begin
dbms_stats.restore_table_stats(
'SCOTT',
'EMP',
‘08-NOV-15 11.38.05.015640 AM +08:00’);
End;
Export and Import schema statistics
begin
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;
Explain Plan
How many people are using
Explain Plan ?
Explain Plan
Explain Plan Lies
Explain Plan
Explain Plan just try to predict the Plan.
AUTOTRACE experiences a similar "problem”, especially when
the SQL statement uses bind variables.
Explain Plan
Solution ?
DBMS_XPLAN.DISPLAY_CURSOR
DEMO
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.
DEMO
Row-by-Row Processing vs Bulk
Processing
Instead of fetching a single row at a time it is
possible to use the bulk features.
DEMO
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.
Oracle Virtual Private Database (VPD)
Original Select:
SELECT * FROM ORDERS;
VPD policy dynamically appends:
SELECT * FROM ORDERS
WHERE COMPANY_ID = 1;
DEMO
More on 12c
Extended Data Types
SQL> create table tabela_teste(campo01
varchar2(4001));
*
ERROR at line 1:
ORA-00910: specified length too long for its
datatype
Extended Data Types
- VARCHAR2 : 32767 bytes
- NVARCHAR2 : 32767 bytes
- RAW : 32767 bytes
Extended Data Types
SHUTDOWN IMMEDIATE;
STARTUP UPGRADE;
ALTER SYSTEM SET max_string_size=extended;
@?/rdbms/admin/utl32k.sql
SHUTDOWN IMMEDIATE;
STARTUP;
**Once you switch to extended data types you can't switch back
SQL Text Expansion
SQL> variable retorno clob
SQL> begin
dbms_utility.expand_sql_text( input_sql_text
=> 'select * from emp', output_sql_text=>
:retorno );
end;
SQL Text Expansion
• Views
• VPDs
DEMO
Identity Columns
CREATE TABLE tabela_teste (
id NUMBER GENERATED ALWAYS AS IDENTITY,
coluna1 VARCHAR2(30));
Identity Columns
CREATE TABLE tabela_teste (
id NUMBER GENERATED BY DEFAULT AS IDENTITY,
coluna1 VARCHAR2(30));
Identity Columns
CREATE TABLE tabela_teste (
id NUMBER GENERATED BY DEFAULT ON NULL AS
IDENTITY,
coluna1 VARCHAR2(30));
DEMO
UTL_CALL_STACK
This package allow programmatic access to the call
stack and error stack.
Before 12c: DBMS_UTILITY.FORMAT_CALL_STACK
DEMO
READ Object Privilege and READ ANY
TABLE System Privilege
What is the difference to SELECT and SELECT
ANY TABLE?
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;
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.
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
DEMO
Virtual Columns
“Virtual columns appear to be normal table
columns, but their values are derived rather
than being stored on disc.”
DEMO
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.
DEMO
SQLcl
DBA Commands and Concepts That Every Developer Should Know
Thank You

More Related Content

What's hot (20)

PPTX
Oracle Database 12c - Data Redaction
Alex Zaballa
 
DOCX
Oracle Database 12c "New features"
Anar Godjaev
 
PPTX
Oracle Data Redaction
Alex Zaballa
 
PDF
Basic - Oracle Edition Based Redefinition Presentation
N/A
 
PDF
FIXING BLOCK CORRUPTION (RMAN) on 11G
N/A
 
PPTX
Oracle Data redaction - GUOB - OTN TOUR LA - 2015
Alex Zaballa
 
PDF
Ensuring Data Protection Using Oracle Flashback Features
Pini Dibask
 
PPTX
Best New Features of Oracle Database 12c
Pini Dibask
 
PDF
Test Dml With Nologging
N/A
 
PPTX
Ensuring Data Protection Using Oracle Flashback Features - Presentation
Pini Dibask
 
PPT
Tony Jambu (obscure) tools of the trade for tuning oracle sq ls
InSync Conference
 
PDF
12c SQL Plan Directives
Franck Pachot
 
PPT
Ash masters : advanced ash analytics on Oracle
Kyle Hailey
 
PDF
2008 Collaborate IOUG Presentation
Biju Thomas
 
PPTX
Hidden Gems of Performance Tuning: Hierarchical Profiler and DML Trigger Opti...
Michael Rosenblum
 
PDF
Performance Schema for MySQL troubleshooting
Sveta Smirnova
 
PPTX
Managing Unstructured Data: Lobs in the World of JSON
Michael Rosenblum
 
PDF
DOAG - Oracle Database Locking Mechanism Demystified
Pini Dibask
 
PPTX
DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know
Alex Zaballa
 
PPTX
Understanding Query Optimization with ‘regular’ and ‘Exadata’ Oracle
Guatemala User Group
 
Oracle Database 12c - Data Redaction
Alex Zaballa
 
Oracle Database 12c "New features"
Anar Godjaev
 
Oracle Data Redaction
Alex Zaballa
 
Basic - Oracle Edition Based Redefinition Presentation
N/A
 
FIXING BLOCK CORRUPTION (RMAN) on 11G
N/A
 
Oracle Data redaction - GUOB - OTN TOUR LA - 2015
Alex Zaballa
 
Ensuring Data Protection Using Oracle Flashback Features
Pini Dibask
 
Best New Features of Oracle Database 12c
Pini Dibask
 
Test Dml With Nologging
N/A
 
Ensuring Data Protection Using Oracle Flashback Features - Presentation
Pini Dibask
 
Tony Jambu (obscure) tools of the trade for tuning oracle sq ls
InSync Conference
 
12c SQL Plan Directives
Franck Pachot
 
Ash masters : advanced ash analytics on Oracle
Kyle Hailey
 
2008 Collaborate IOUG Presentation
Biju Thomas
 
Hidden Gems of Performance Tuning: Hierarchical Profiler and DML Trigger Opti...
Michael Rosenblum
 
Performance Schema for MySQL troubleshooting
Sveta Smirnova
 
Managing Unstructured Data: Lobs in the World of JSON
Michael Rosenblum
 
DOAG - Oracle Database Locking Mechanism Demystified
Pini Dibask
 
DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know
Alex Zaballa
 
Understanding Query Optimization with ‘regular’ and ‘Exadata’ Oracle
Guatemala User Group
 

Viewers also liked (14)

PPTX
Oracle Basics and Architecture
Sidney Chen
 
PPS
Oracle Database Overview
honglee71
 
PDF
Oracle 12c New Features_RMAN_slides
Saiful
 
PDF
DBA oracle
Douglas Bernardini
 
PPTX
The oracle database architecture
Akash Pramanik
 
PDF
Oracle Linux and Oracle Database - A Trusted Combination
Guatemala User Group
 
PPTX
Backup & recovery with rman
itsabidhussain
 
PDF
OBIEE 12c Advanced Analytic Functions
Michael Perhats
 
PDF
Oracle dba-concise-handbook
sasi777
 
DOCX
DATABASE ADMIN RESUME 2016L MICROSOFT SQL SERVER 2008 MCTS (1)
Arthur P. Clay III
 
PPTX
How to document a database
Piotr Kononow
 
PPTX
Oracle Database Architecture - EN
Michal Simonik
 
PPTX
RAC-Installing your First Cluster and Database
Nikhil Kumar
 
PPTX
Oracle architecture ppt
Deepak Shetty
 
Oracle Basics and Architecture
Sidney Chen
 
Oracle Database Overview
honglee71
 
Oracle 12c New Features_RMAN_slides
Saiful
 
DBA oracle
Douglas Bernardini
 
The oracle database architecture
Akash Pramanik
 
Oracle Linux and Oracle Database - A Trusted Combination
Guatemala User Group
 
Backup & recovery with rman
itsabidhussain
 
OBIEE 12c Advanced Analytic Functions
Michael Perhats
 
Oracle dba-concise-handbook
sasi777
 
DATABASE ADMIN RESUME 2016L MICROSOFT SQL SERVER 2008 MCTS (1)
Arthur P. Clay III
 
How to document a database
Piotr Kononow
 
Oracle Database Architecture - EN
Michal Simonik
 
RAC-Installing your First Cluster and Database
Nikhil Kumar
 
Oracle architecture ppt
Deepak Shetty
 
Ad

Similar to DBA Commands and Concepts That Every Developer Should Know (20)

PPTX
DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know
Alex Zaballa
 
PPTX
OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should Know
Alex Zaballa
 
PPTX
OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should Know
Alex Zaballa
 
PPTX
OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...
Alex Zaballa
 
PPTX
OpenWorld Sep14 12c for_developers
Connor McDonald
 
PDF
12c for Developers - Feb 2014
Connor McDonald
 
PPTX
DBA Commands and Concepts That Every Developer Should Know
Alex Zaballa
 
PDF
Overview of Oracle database12c for developers
Getting value from IoT, Integration and Data Analytics
 
PPTX
Oracle Database 12c New Features for Developers and DBAs - OTN TOUR LA 2015
Alex Zaballa
 
PPTX
DBA Commands and Concepts That Every Developer Should Know - Part 2
Alex Zaballa
 
PPTX
DBA Commands and Concepts That Every Developer Should Know - Part 2
Alex Zaballa
 
PPTX
OpenWorld 2018 - Common Application Developer Disasters
Connor McDonald
 
PPT
08 Dynamic SQL and Metadata
rehaniltifat
 
PPTX
Useful PL/SQL Supplied Packages
Maria Colgan
 
PDF
Oracle Database 12c Application Development
Saurabh K. Gupta
 
PDF
ILOUG 2019 - Flashback, the forgotten feature
Connor McDonald
 
PDF
Latin America tour 2019 - Flashback
Connor McDonald
 
PDF
OG Yatra - Flashback, not just for developers
Connor McDonald
 
PDF
GLOC 2014 NEOOUG - Oracle Database 12c New Features
Biju Thomas
 
PPTX
DBA Commands and Concepts That Every Developer Should Know
Alex Zaballa
 
DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know
Alex Zaballa
 
OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should Know
Alex Zaballa
 
OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should Know
Alex Zaballa
 
OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...
Alex Zaballa
 
OpenWorld Sep14 12c for_developers
Connor McDonald
 
12c for Developers - Feb 2014
Connor McDonald
 
DBA Commands and Concepts That Every Developer Should Know
Alex Zaballa
 
Overview of Oracle database12c for developers
Getting value from IoT, Integration and Data Analytics
 
Oracle Database 12c New Features for Developers and DBAs - OTN TOUR LA 2015
Alex Zaballa
 
DBA Commands and Concepts That Every Developer Should Know - Part 2
Alex Zaballa
 
DBA Commands and Concepts That Every Developer Should Know - Part 2
Alex Zaballa
 
OpenWorld 2018 - Common Application Developer Disasters
Connor McDonald
 
08 Dynamic SQL and Metadata
rehaniltifat
 
Useful PL/SQL Supplied Packages
Maria Colgan
 
Oracle Database 12c Application Development
Saurabh K. Gupta
 
ILOUG 2019 - Flashback, the forgotten feature
Connor McDonald
 
Latin America tour 2019 - Flashback
Connor McDonald
 
OG Yatra - Flashback, not just for developers
Connor McDonald
 
GLOC 2014 NEOOUG - Oracle Database 12c New Features
Biju Thomas
 
DBA Commands and Concepts That Every Developer Should Know
Alex Zaballa
 
Ad

More from Alex Zaballa (16)

PDF
Migrating Oracle Databases from AWS to OCI
Alex Zaballa
 
PPTX
Exploring All options to move your Oracle Databases to the Oracle Cloud
Alex Zaballa
 
PPTX
Moving Your Oracle Databases To The Oracle Cloud
Alex Zaballa
 
PPTX
SQL TUNING 101
Alex Zaballa
 
PPTX
SQL TUNING 101
Alex Zaballa
 
PPTX
LET’S GET STARTED WITH ORACLE DATABASE CLOUD
Alex Zaballa
 
PPTX
Oracle Database 12c - New Features for Developers and DBAs
Alex Zaballa
 
PPTX
Moving your Oracle Databases to the Oracle Cloud
Alex Zaballa
 
PPTX
Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...
Alex Zaballa
 
PDF
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c Tuning Fea...
Alex Zaballa
 
PDF
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...
Alex Zaballa
 
PPT
Oracle SQL Tuning
Alex Zaballa
 
PPTX
Oracle Database 12c - Novas Características para DBAs e Desenvolvedores
Alex Zaballa
 
PPTX
Oracle Data Redaction - EOUC
Alex Zaballa
 
PPTX
Oracle Database 12c - Novas Características para DBAs e Desenvolvedores - GUO...
Alex Zaballa
 
PPTX
Data Redaction - OTN TOUR LA 2015
Alex Zaballa
 
Migrating Oracle Databases from AWS to OCI
Alex Zaballa
 
Exploring All options to move your Oracle Databases to the Oracle Cloud
Alex Zaballa
 
Moving Your Oracle Databases To The Oracle Cloud
Alex Zaballa
 
SQL TUNING 101
Alex Zaballa
 
SQL TUNING 101
Alex Zaballa
 
LET’S GET STARTED WITH ORACLE DATABASE CLOUD
Alex Zaballa
 
Oracle Database 12c - New Features for Developers and DBAs
Alex Zaballa
 
Moving your Oracle Databases to the Oracle Cloud
Alex Zaballa
 
Os melhores recursos novos do Oracle Database 12c para desenvolvedores e DBAs...
Alex Zaballa
 
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c Tuning Fea...
Alex Zaballa
 
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...
Alex Zaballa
 
Oracle SQL Tuning
Alex Zaballa
 
Oracle Database 12c - Novas Características para DBAs e Desenvolvedores
Alex Zaballa
 
Oracle Data Redaction - EOUC
Alex Zaballa
 
Oracle Database 12c - Novas Características para DBAs e Desenvolvedores - GUO...
Alex Zaballa
 
Data Redaction - OTN TOUR LA 2015
Alex Zaballa
 

Recently uploaded (20)

PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PDF
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 

DBA Commands and Concepts That Every Developer Should Know

  • 1. DBA Commands and Concepts That Every Developer Should Know Presented by: Alex Zaballa, Oracle DBA
  • 2. Alex Zaballa http://alexzaballa.blogspot.com/ @alexzaballa147 and counting… https://www.linkedin.com/in/alexzaballa
  • 3. Worked for 7 years in Brazil as a Developer Worked 8 years for the Ministry of Finance In Angola as a DBA March - 2007 until March - 2015
  • 6. DBA Commands and Concepts That Every Developer Should Know
  • 7. 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
  • 9. • 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
  • 10. DEMO
  • 11. Oracle Flashback Query The maximum available versions are dependent on the UNDO_RETENTION parameter. The default is 900 seconds (15 minutes).
  • 12. Oracle Flashback Table Reinstating an accidentally dropped table. Parameter recyclebin = on (default).
  • 13. SELECT OWNER,OBJECT_NAME, ORIGINAL_NAME, TYPE, DROPTIME FROM DBA_RECYCLEBIN WHERE ORIGINAL_NAME='TAB_TEST'; FLASHBACK TABLE TAB_TEST TO BEFORE DROP; Oracle Flashback Table
  • 14. DEMO
  • 15. RMAN Table Recovery in 12c RMAN enables you to recover one or more tables or table partitions to a specified point in time.
  • 16. 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'
  • 17. 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
  • 18. 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.
  • 19. DEMO
  • 20. Schema Management Adding 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
  • 21. DEMO
  • 22. Rollback How much longer? select * from v$session_longops where sid = sid_of_the_session_doing_rollback
  • 23. Rollback SID : 26 SERIAL# : 30832 OPNAME : Transaction Rollback TARGET : TARGET_DESC : xid:0x000e.01c.00000012 SOFAR : 1211 TOTALWORK : 21244 UNITS : Blocks START_TIME : 15-nov-2015 16:20:07 LAST_UPDATE_TIME : 15-nov-2015 16:21:24 TIME_REMAINING : 55 ELAPSED_SECONDS : 5 CONTEXT : 0 MESSAGE : Transaction Rollback: .... USERNAME : alex_zaballa SQL_ADDRESS : 00000000DF79A840 SQL_HASH_VALUE : 72257521 SQL_ID : 4wv9a0h24x3zj
  • 24. 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.
  • 25. Pending Statistics select num_rows, to_char(last_analyzed,'dd/mm/rrrr hh24:mi:ss') from all_tab_pending_stats where table_name = 'EMP';
  • 26. Pending Statistics alter session set optimizer_use_pending_statistics = true; Test the queries.
  • 27. Pending Statistics If it’s ok: dbms_stats.publish_pending_stats('SCOTT', 'EMP'); Or: dbms_stats.delete_pending_stats(’SCOTT',’EMP');
  • 28. Restore Statistics from History Check the retention: select DBMS_STATS.GET_STATS_HISTORY_RETENTION from dual; Default is 31 days.
  • 29. Restore Statistics from History Statistics available for the table: SELECT OWNER, TABLE_NAME, STATS_UPDATE_TIME FROM dba_tab_stats_history WHERE table_name='MY_TABLE';
  • 30. Restore Statistics from History Begin dbms_stats.restore_table_stats( 'SCOTT', 'EMP', ‘08-NOV-15 11.38.05.015640 AM +08:00’); End;
  • 31. Export and Import schema statistics begin 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;
  • 32. Explain Plan How many people are using Explain Plan ?
  • 34. Explain Plan Explain Plan just try to predict the Plan. AUTOTRACE experiences a similar "problem”, especially when the SQL statement uses bind variables.
  • 36. DEMO
  • 37. 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.
  • 38. DEMO
  • 39. Row-by-Row Processing vs Bulk Processing Instead of fetching a single row at a time it is possible to use the bulk features.
  • 40. DEMO
  • 41. 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.
  • 42. Oracle Virtual Private Database (VPD) Original Select: SELECT * FROM ORDERS; VPD policy dynamically appends: SELECT * FROM ORDERS WHERE COMPANY_ID = 1;
  • 43. DEMO
  • 45. Extended Data Types SQL> create table tabela_teste(campo01 varchar2(4001)); * ERROR at line 1: ORA-00910: specified length too long for its datatype
  • 46. Extended Data Types - VARCHAR2 : 32767 bytes - NVARCHAR2 : 32767 bytes - RAW : 32767 bytes
  • 47. Extended Data Types SHUTDOWN IMMEDIATE; STARTUP UPGRADE; ALTER SYSTEM SET max_string_size=extended; @?/rdbms/admin/utl32k.sql SHUTDOWN IMMEDIATE; STARTUP; **Once you switch to extended data types you can't switch back
  • 48. SQL Text Expansion SQL> variable retorno clob SQL> begin dbms_utility.expand_sql_text( input_sql_text => 'select * from emp', output_sql_text=> :retorno ); end;
  • 49. SQL Text Expansion • Views • VPDs
  • 50. DEMO
  • 51. Identity Columns CREATE TABLE tabela_teste ( id NUMBER GENERATED ALWAYS AS IDENTITY, coluna1 VARCHAR2(30));
  • 52. Identity Columns CREATE TABLE tabela_teste ( id NUMBER GENERATED BY DEFAULT AS IDENTITY, coluna1 VARCHAR2(30));
  • 53. Identity Columns CREATE TABLE tabela_teste ( id NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY, coluna1 VARCHAR2(30));
  • 54. DEMO
  • 55. UTL_CALL_STACK This package allow programmatic access to the call stack and error stack. Before 12c: DBMS_UTILITY.FORMAT_CALL_STACK
  • 56. DEMO
  • 57. READ Object Privilege and READ ANY TABLE System Privilege What is the difference to SELECT and SELECT ANY TABLE?
  • 58. 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;
  • 59. 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.
  • 60. 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
  • 61. DEMO
  • 62. Virtual Columns “Virtual columns appear to be normal table columns, but their values are derived rather than being stored on disc.”
  • 63. DEMO
  • 64. 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.
  • 65. DEMO
  • 66. SQLcl

Editor's Notes

  • #2: 96 slides Questions at the END please!!!