SlideShare a Scribd company logo
1 of 225
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
Connor McDonald
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
2
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
3
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
4
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
5
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Stuff
youtube bit.ly/youtube-connor
blog bit.ly/blog-connor
twitter bit.ly/twitter-connor
400+ posts mainly on database & development
250 technical videos, new uploads every week
rants and raves on tech and the world :-)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
etc...
facebook bit.ly/facebook-connor
linkedin bit.ly/linkedin-connor
instagram bit.ly/instagram-connor
slideshare bit.ly/slideshare-connor
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
https://asktom.oracle.com
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
9https://asktom.oracle.com/officehours
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
200 hours of free access (so far)
10
Cool stuff on 12c, 18c ... and 19c!
Connor McDonald
Database Advocate
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 12
why me ?
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 13
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 14
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 15
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 16
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 18
why you ?
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 19
12.2!18!
12.2!12.2!
19!
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
reality :-(
20
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 21
SQL> select * from v$version;
BANNER
----------------------------------------------------------
Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production
PL/SQL Release 8.1.7.4.0 - Production
CORE 8.1.7.0.0 Production
TNS for HPUX: Version 8.1.7.4.0 - Production
NLSRTL Version 3.4.1.0.0 - Production
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 22
SQL> select * from v$version;
BANNER
----------------------------------------------------------
Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production
PL/SQL Release 8.1.7.4.0 - Production
CORE 8.1.7.0.0 Production
TNS for HPUX: Version 8.1.7.4.0 - Production
NLSRTL Version 3.4.1.0.0 - Production
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 23
SQL> select * from v$version;
BANNER
----------------------------------------------------------
Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production
PL/SQL Release 8.1.7.4.0 - Production
CORE 8.1.7.0.0 Production
TNS for HPUX: Version 8.1.7.4.0 - Production
NLSRTL Version 3.4.1.0.0 - Production
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
you still should be here
24
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 26
there's a lot in 12.2/18/19
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 27
get started right now
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 28
install nothing
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 29
https://cloud.oracle.com/tryit
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 30
install a little bit
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 31
https://tinyurl.com/ora18vm
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 32
install lots :-)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 33
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 34
18c install lots :-)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 35
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 36
18c install lots :-)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 37
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 38
coming soon
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 39
install lots :-)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 40
1) gold image service
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 41
2) read-only ORACLE_HOME
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 42
3) Oracle database in Docker
https://tinyurl.com/ora18docker
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 43
because there's 19c stuff in here
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.
44
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 45
licensing
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 46
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 47
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 48
UNZIP INSTALL
RPM INSTALL
DOCKER
READ-ONLY
GOLD IMAGE
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 49
external tables
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
ext_emp
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> create table ext_emp (
2 empno number(4),
3 ename varchar2(10),
4 job varchar2(9),
5 mgr number(4),
6 hiredate date,
7 sal number(7,2),
8 comm number(7,2),
9 deptno number(2)
10 )
11 organization external
12 ( type oracle_loader
13 default directory TMP
14 access parameters
15 ( records delimited by newline
16 fields terminated by ','
17 missing field values are null
18 ( empno,ename,job,mgr,hiredate,sal,comm,deptno )
19 )
20 location ('emp20161001.dat'));
Table created.
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
ext_emp
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> select * from ext_emp;
select * from ext_emp
*
ERROR at line 1:
ORA-29913: error in executing ODCIEXTTABLEFETCH callout
ORA-30653: reject limit reached
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 54
easy fix
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> create table ext_emp (
2 empno number(4),
...
12 ( type oracle_loader
13 default directory TMP
14 access parameters
15 ( records delimited by newline
16 fields terminated by ','
17 missing field values are null
18 ( empno,ename,job,mgr,hiredate,sal,comm,deptno )
19 )
20 location ('emp20161001.dat'))
21 REJECT LIMIT UNLIMITED;
Table created.
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 56
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 57
12.2
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 58
query time modification
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> select * from ext_emp
2 external modify ( reject limit unlimited );
EMPNO ENAME JOB MGR HIREDATE SAL
---------- ---------- --------- ---------- --------- ---------- ---
7499 ALLEN SALESMAN 7698 20-FEB-81 1600
7521 WARD SALESMAN 7698 22-FEB-81 1250
7566 JONES MANAGER 7839 02-APR-81 2975
...
7902 FORD ANALYST 7566 03-DEC-81 3000
7934 MILLER CLERK 7782 23-JAN-82 1300
13 rows selected.
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> select * from ext_emp
2 external modify ( location ('emp20161002.dat') );
EMPNO ENAME JOB MGR HIREDATE SAL
---------- ---------- --------- ---------- --------- ---------- ---
7902 FORD ANALYST 7566 03-DEC-81 3000
7934 MILLER CLERK 7782 23-JAN-82 1300
7566 JONES MANAGER 7839 02-APR-81 2975
...
7499 ALLEN SALESMAN 7698 20-FEB-81 1600
7521 WARD SALESMAN 7698 22-FEB-81 1250
8 rows selected.
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
select * from ext_tab external modify (
[ default directory ]
[ location ]
[ access parameters ]
[ reject limit ]
);
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 62
18c
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 63
zero ddl option
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> select * from external (
2 empno number(4),
3 ename varchar2(10),
4 ...
12 ( type oracle_loader
13 default directory TMP
14 access parameters
15 ( records delimited by newline
16 fields terminated by ','
17 missing field values are null
18 ( empno,ename,job,mgr,...)
19 )
20 location ('emp20161001.dat')
21 );
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 65
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 66
column level collation
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> select *
2 from customers
3 where cust_name = 'ADAMS';
COUNTRY CREATED CUST_NAME
------------ --------- ---------------------
AUS 08-NOV-16 ADAMS
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 68
looks great... until
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> select *
2 from customers
3 where upper(cust_name) = 'ADAMS';
COUNTRY CREATED CUST_NAME
------------ --------- ------------
AUS 07-NOV-16 Adams
AUS 08-NOV-16 ADAMS
AUS 09-NOV-16 adams
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 70
SQL> select * from customers
2 where upper(cust_name) = 'ADAMS';
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> select column_name
2 from user_ind_columns
3 where index_name = 'CUST_IX';
COLUMN_NAME
------------------------------
CUST_NAME
SQL> select * from customers
2 where upper(cust_name) = 'ADAMS';
-------------------------------------------------------
| Id | Operation | Name | Rows | Bytes |
-------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 152 |
|* 1 | TABLE ACCESS FULL| CUSTOMERS | 1 | 152 |
-------------------------------------------------------
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> create index cust_ix
2 on customers ( cust_name );
Index created.
SQL> create index cust_ix2
2 on customers ( upper(cust_name) );
Index created.
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 73
"DML slower"
"more contention"
"more redo/undo"
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 74
"not my problem"
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 75
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 76
unforeseen consequences
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> alter table customers shrink space;
*
ERROR at line 1:
ORA-10631: SHRINK clause should not be specified for this object
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 78
12.2+
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 79
column level collation
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 80
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> CREATE TABLE CUSTOMERS
2 (
3 COUNTRY VARCHAR2(128),
4 CREATED DATE,
5 CUST_NAME VARCHAR2(150) COLLATE BINARY_CI
6 );
Table created.
"case insenstive"
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> create index cust_ix
2 on customers ( cust_name);
Index created.
SQL> set autotrace traceonly explain
SQL> select * from customers
2 where cust_name = 'ADAMS';
-----------------------------------------------------------------
| Id | Operation | Name | Rows |
-----------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 |
| 1 | TABLE ACCESS BY INDEX ROWID BATCHED| CUSTOMERS | 1 |
|* 2 | INDEX RANGE SCAN | CUST_IX | 1 |
-----------------------------------------------------------------
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 83
"big deal"
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> select * from customers
2 where cust_name = 'ADAMS';
COUNTRY CREATED CUST_NAME
------------ --------- ----------------
AUS 07-NOV-16 Adams
AUS 08-NOV-16 ADAMS
AUS 09-NOV-16 adams
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 85
binary_ci
SQL> select * from customers
2 where cust_name = 'ADAMS';
COUNTRY CREATED CUST_NAME
------------ --------- ----------------
AUS 07-NOV-16 Adams
AUS 08-NOV-16 ADAMS
AUS 09-NOV-16 adams
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 86
binary_ai
SQL> select * from customers
2 where cust_name = 'ADAMS';
COUNTRY CREATED CUST_NAME
------------ --------- ----------------
AUS 07-NOV-16 Adams
AUS 08-NOV-16 ADAMS
AUS 09-NOV-16 adams
AUS 10-NOV-16 adáms
adáms
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 87
column | table | user
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> alter table people default collation binary_ai;
new columns only
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 89
key point
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> alter table people default collation binary_ai;
*
ERROR at line 1:
ORA-43929: Collation cannot be specified if
parameter MAX_STRING_SIZE=STANDARD
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 91
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 92
remember temporary undo?
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> insert into t values ('Hello','There');
insert into t values ('Hello','There')
*
ERROR at line 1:
ORA-16000: database open for read-only access
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 94
Active Data Guard
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> alter session set temp_undo_enabled=true;
Session altered.
SQL> create global temporary table GTT_REPORT_STAGING
2 ( ... );
SQL> insert into GTT_REPORT_STAGING
2 select ...
SQL> select * from GTT_REPORT_STAGING join FIN_RESULTS
2 ...
96
100%
% of people that
found this useful
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 97
19c
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 98
DML redirect
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 99
Standby Primary
SQL> insert into REPORTING_STAGING
2 select * from ...
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 100
bonus DataGuard
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 101
we've all done this :-)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 102
Standby Primary
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 103
12.2+
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
RMAN> connect target sys/oracle@MY_STANDBY
RMAN> connect auxiliary sys/oracle@MY_PRIMARY
RMAN> recover database from service PRIMARY;
Starting recover at 12.10.2018 14:05:17
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=187 device type=DISK
...
...
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 105
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 106
a nice form of murder :-)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 107
aka, #1 reason for upgrading to 18c
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> insert into MY_TABLE
2 select *
3 from MY_HUGE_GREAT_FAT_TABLE;
108
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 109
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> insert into MY_TABLE
2 select *
3 from MY_HUGE_GREAT_FAT_TABLE
4 where LOAD_DATE > sysdate - 1;
110
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> alter system kill session '123,456' immediate
111
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 112
18c
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> alter system kill cancel sql '123,456';
113
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 114
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 115
speaking of "#1 reason"
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 116
#1 reason for upgrading to 19c
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> select deptno, ename
2 from emp
3 order by 1,2;
DEPTNO ENAME
---------- ----------
10 CLARK
10 KING
10 MILLER
20 ADAMS
20 FORD
20 JONES
20 SCOTT
20 SMITH
30 ALLEN
30 BLAKE
30 JAMES
30 MARTIN
30 TURNER
30 WARD
117
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
DEPTNO MEMBERS
---------- -------------------------------------
10 CLARK,KING,MILLER
20 SMITH,JONES,SCOTT,ADAMS,FORD
30 ALLEN,WARD,MARTIN,BLAKE,TURNER,JAMES
118
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
how we used to do it
119
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> select deptno , rtrim(ename,',') enames
2 from ( select deptno,ename,rn
3 from emp
4 model
5 partition by (deptno)
6 dimension by (
7 row_number() over
8 (partition by deptno order by ename) rn
9 )
10 measures (cast(ename as varchar2(40)) ename)
11 rules
12 ( ename[any]
13 order by rn desc = ename[cv()]||','||ename[cv()+1])
14 )
15 where rn = 1
16 order by deptno;
DEPTNO ENAMES
---------- ----------------------------------------
10 CLARK,KING,MILLER
20 ADAMS,FORD,JONES,SCOTT,SMITH
30 ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD
120
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> select deptno,
2 substr(max(sys_connect_by_path(ename, ',')), 2) members
3 from (select deptno, ename,
4 row_number ()
5 over (partition by deptno order by empno) rn
6 from emp)
7 start with rn = 1
8 connect by prior rn = rn - 1
9 and prior deptno = deptno
10 group by deptno
11 /
DEPTNO MEMBERS
---------- ---------------------------------------------------------
30 ALLEN,WARD,MARTIN,BLAKE,TURNER,JAMES
20 SMITH,JONES,SCOTT,ADAMS,FORD
10 CLARK,KING,MILLER
121
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> select deptno,
2 xmltransform
3 ( sys_xmlagg
4 ( sys_xmlgen(ename)
5 ),
6 xmltype
7 (
8 '<?xml version="1.0"?><xsl:stylesheet version="1.0"
9 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
10 <xsl:template match="/">
11 <xsl:for-each select="/ROWSET/ENAME">
12 <xsl:value-of select="text()"/>,</xsl:for-each>
13 </xsl:template>
14 </xsl:stylesheet>'
15 )
16 ).getstringval() members
17 from emp
18 group by deptno;
DEPTNO MEMBERS
---------- --------------------------------------------------------
10 CLARK,MILLER,KING,
20 SMITH,FORD,ADAMS,SCOTT,JONES,
30 ALLEN,JAMES,TURNER,BLAKE,MARTIN,WARD,
122
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> create or replace type string_agg_type as object
2 (
3 total varchar2(4000),
4
5 static function
6 ODCIAggregateInitialize(sctx IN OUT string_agg_type )
7 return number,
8
9 member function
10 ODCIAggregateIterate(self IN OUT string_agg_type ,
11 value IN varchar2 )
12 return number,
13
14 member function
15 ODCIAggregateTerminate(self IN string_agg_type,
16 returnValue OUT varchar2,
17 flags IN number)
18 return number,
19
20 member function
21 ODCIAggregateMerge(self IN OUT string_agg_type,
22 ctx2 IN string_agg_type)
23 return number
24 );
25 /
123
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
11g
124
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> select deptno,
2 listagg( ename, ',')
3 within group (order by empno) members
4 from emp
5 group by deptno;
DEPTNO MEMBERS
---------- -----------------------------------------
10 CLARK,KING,MILLER
20 SMITH,JONES,SCOTT,ADAMS,FORD
30 ALLEN,WARD,MARTIN,BLAKE,TURNER,JAMES
125
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
except
126
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> select deptno
2 listagg(job,',') within group ( order by job) as jobs
3 from scott.emp
4 group by deptno
5 order by 1;
DEPTNO JOBS
--------- --------------------------------------------------
10 CLERK,MANAGER,PRESIDENT
20 ANALYST,ANALYST,CLERK,CLERK,MANAGER
30 CLERK,MANAGER,SALESMAN,SALESMAN,SALESMAN,SALESMAN
127
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> select owner
2 listagg(object_type,',') within group
3 ( order by object_id ) as types
4 from all_ojects
5 group by owner
6 order by 1;
ERROR:
ORA-01499: result of string concatenation is too long
128
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
19c
129
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> select deptno
2 listagg(distinct job,',') within group ( order by job) as jobs
3 from scott.emp
4 group by deptno
5 order by 1;
DEPTNO JOBS
--------- --------------------------------------------------
10 CLERK,MANAGER,PRESIDENT
20 ANALYST,CLERK,MANAGER
30 CLERK,MANAGER,SALESMAN
130
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 131
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 132
back to bad SQL
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 133
maybe murder won't help
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
134
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 135
bad SQL just keeps coming back...
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 136
19c
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 137
automatic quarantine of bad SQL
elapsed time
resource consumption
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 138
error on subsequent execution
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 139
1) alerts to administrator
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 140
or...
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 141
2) automated historical diagnosis/repair
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 142
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 143
maybe murder wasn't the right thing
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> insert into MY_TABLE
2 select *
3 from MY_HUGE_GREAT_FAT_TABLE
4 where LOAD_DATE > sysdate - 900;
144
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 145
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> insert into MY_TABLE
2 select *
3 from MY_HUGE_GREAT_FAT_TABLE w
4 where LOAD_DATE > sysdate - 900;
146
/*+ INDEX(W CUST_DATE_IX) */ *
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 147
18c
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> alter system set optimizer_ignore_hints = true
148
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 149
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 150
cool
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 151
maybe it was the opposite ?
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> insert into MY_TABLE
2 select *
3 from MY_HUGE_GREAT_FAT_TABLE
4 where LOAD_DATE > sysdate - 1/24;
152
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 153
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> insert into MY_TABLE
2 select *
3 from MY_HUGE_GREAT_FAT_TABLE
4 where LOAD_DATE > sysdate - 1/24;
154
need an index?
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 155
but what is best practice ?
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 156
1) monitor the SQL workload
AWR / Top SQL
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 157
2) consider indexes per SQL
leading columns
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 158
3) consolidate tables/columns
(a)
(a,b)
(a,b,c)
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 159
4) create nosegment/unusable
dictionary only
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 160
5) check "virtual" explain plan
cost/cardinality
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 161
6) create true index (as invisible)
no impact risk
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 162
7) test execute each SQL for benefit
response time/IO
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 163
8) decide on each index worth
"majority wins"
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 164
9) SPM quarantine the others
no regression
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 165
10) make new indexes visible
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 166
we're done!
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 167
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 168
go to step 1
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 169
19c
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 170
automatic indexes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 171
we follow best practice
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 172
Capture
Identify
VerifyDecide
Monitor
Identify index
candidates based
on column usage
(SQL workload)
Create indexes
unusable, invisible
and evaluate new
execution plans
without parse costs
Rebuild indexes
that offer potential
benefit (status as
invisible). Test
execute each SQL
statement
Use SPM to ensure
no regression for
excluded SQL
statements. Mark
indexes as visible
Monitor all indexes
(automatic and
manual) for ongoing
usage and potential
removal
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 173
only need to set preferences
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 174
AUTO_INDEX_EXCLUDE_SCHEMA
AUTO_INDEX_REPORT_RETENTION
AUTO_INDEX_RETENTION_FOR_AUTO
AUTO_INDEX_RETENTION_FOR_MANUAL
AUTO_INDEX_DEFAULT_TABLESPACE
AUTO_INDEX_TEMP_TABLESPACE
AUTO_INDEX_MODE
AUTO_INDEX_SPACE_BUDGET
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 175
expect this to evolve over time
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 176
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 177
statistics
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 178
what most of us do
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 179
TIME
Gather
Stale
overnight
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 180
19c
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 181
Conventional
DML
Real-time
Statistics
Gathered Statistics
Lightweight
Statistics
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 182
real time statistics
DML driven
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 183
only "cheap" essential statistics
high/low values
row/column counts
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 184
lightweight rapid gather
resource manager
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 185
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
let's talk about ...
186
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
polyglot persistence
187
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 188
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 189
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 190
"I have to learn Hadoop
....and Spark
....and Hive
....and ?
....and ?
....and ?"
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 191
Big Data SQL
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 192
19c
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 193
hybrid partitioned table
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 194
Q4_2018Q3_2018Q2_2018Q1_2018Q4_2017Q3_2017Q2_2017Q1_2017Q4_2016
ORDERS
OBJECT STORAGE
TABLE PARTITIONED BY QUARTER
SQL HOT DATACOLD DATA
UPDATES
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 195
SQL> create table hybrid_sales
2 (
3 part_key varchar2(10) not null
4 ...
5 )
6 external partition attributes (
7 type oracle_loader
8 default directory sales_data
9 )
10 partition by list (part_key)
11 (partition sales_2015 values ('2015') external
12 location ('sales2015.txt'),
13 partition sales_2016 values ('2016') external
14 location ('sales2016.txt'),
15 partition sales_2017 values '2017'),
16 partition sales_2018 values '2018'),
17 );
Table created.
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 196
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 197
revisit: security
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 198
18c
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 199
better schema management
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> create user data_owner
2 no authentication;
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 201
"I already do this"
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> alter user data_owner account lock
User altered.
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 203
security risk
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> conn wmsys/wmsys
ERROR:
ORA-28000: the account is locked
Warning: You are no longer connected to ORACLE.
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 205
schema only accounts
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
SQL> conn data_owner/random_password
ORA-01017: invalid username/password; logon denied
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 207
bonus security
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 208
DBSAT
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 209
10.2 and above
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 210
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
this is the big one
211
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
18c XE
212
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 213
100% free
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 214
We grant you a nonexclusive, nontransferable limited license to use the programs for:
(a) purposes of developing, prototyping and running your applications for your own
internal data processing operations;
(b) you may also distribute the programs with your applications;
(c) you may use the programs to provide third party demonstrations and training; and
d) you may copy and distribute the programs to your licensees provided that each such
licensee agrees to the terms of this Agreement
https://www.oracle.com/technetwork/licenses/db18c-express-license-5137264.html
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 215
12 GB of user data
2 GB of database RAM
2 CPU threads
3 Pluggable Databases
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 216
"Is it feature hobbled?"
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 217
Oracle Multitenant
SQLJ
Online index rebuild
Online table reorg
Online table redefinition
Trial recovery
Fast start recovery
Flashback table
Flashback query
Flashback database
Advanced Queueing
Network Compression
Client side result cache
Server side result cache
Adaptive plans
In-memory column store
In-memory aggregation
Attribute Clustering
Column encryption
Tablespace encryption
Advanced Security
Database Vault
Label Security
AD users
Privilege Analysis
Real Application Security
Data Redaction
Virtual Private Database
Spatial
Graph
Partitioning
Advanced Analytics
Advanced Compression
Advanced Index Compression
Transportable Tablespace
Query Rewrite
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 218
EE plus most extra cost options
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 219
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 220
wrap up
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 221
there's a lot in 12.2/18/19
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 222
lots not covered today
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 223
but ... new feature model
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
plenty to excite
224
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Stay in touch!
youtube bit.ly/youtube-connor
blog bit.ly/blog-connor
twitter bit.ly/twitter-connor

More Related Content

What's hot

Melbourne Groundbreakers Tour - Hints and Tips
Melbourne Groundbreakers Tour - Hints and TipsMelbourne Groundbreakers Tour - Hints and Tips
Melbourne Groundbreakers Tour - Hints and TipsConnor McDonald
 
OpenWorld 2018 - 20 years of hints and tips
OpenWorld 2018 - 20 years of hints and tipsOpenWorld 2018 - 20 years of hints and tips
OpenWorld 2018 - 20 years of hints and tipsConnor McDonald
 
Sangam 18 - The New Optimizer in Oracle 12c
Sangam 18 - The New Optimizer in Oracle 12cSangam 18 - The New Optimizer in Oracle 12c
Sangam 18 - The New Optimizer in Oracle 12cConnor McDonald
 
OpenWorld 2018 - Common Application Developer Disasters
OpenWorld 2018 - Common Application Developer DisastersOpenWorld 2018 - Common Application Developer Disasters
OpenWorld 2018 - Common Application Developer DisastersConnor McDonald
 
Perth APAC Groundbreakers tour - 18c features
Perth APAC Groundbreakers tour - 18c featuresPerth APAC Groundbreakers tour - 18c features
Perth APAC Groundbreakers tour - 18c featuresConnor McDonald
 
Polymorphic Table Functions in SQL
Polymorphic Table Functions in SQLPolymorphic Table Functions in SQL
Polymorphic Table Functions in SQLChris Saxon
 
12 Things Developers Will Love About Oracle Database 12c Release 2
12 Things Developers Will Love About Oracle Database 12c Release 212 Things Developers Will Love About Oracle Database 12c Release 2
12 Things Developers Will Love About Oracle Database 12c Release 2Chris Saxon
 
How to Hack Your App Using SQL Injection
How to Hack Your App Using SQL InjectionHow to Hack Your App Using SQL Injection
How to Hack Your App Using SQL InjectionChris Saxon
 
Perth APAC Groundbreakers tour - The Autonomous Database
Perth APAC Groundbreakers tour - The Autonomous DatabasePerth APAC Groundbreakers tour - The Autonomous Database
Perth APAC Groundbreakers tour - The Autonomous DatabaseConnor McDonald
 
AUSOUG - Introducing New AI Ops Innovations in Oracle 19c Autonomous Health F...
AUSOUG - Introducing New AI Ops Innovations in Oracle 19c Autonomous Health F...AUSOUG - Introducing New AI Ops Innovations in Oracle 19c Autonomous Health F...
AUSOUG - Introducing New AI Ops Innovations in Oracle 19c Autonomous Health F...Sandesh Rao
 
ITOUG 2019 - 18c, 19c features
ITOUG 2019 - 18c, 19c featuresITOUG 2019 - 18c, 19c features
ITOUG 2019 - 18c, 19c featuresConnor McDonald
 
Jfokus 2017 Oracle Dev Cloud and Containers
Jfokus 2017 Oracle Dev Cloud and ContainersJfokus 2017 Oracle Dev Cloud and Containers
Jfokus 2017 Oracle Dev Cloud and ContainersMika Rinne
 
APEX Connect 2019 - array/bulk processing in PLSQL
APEX Connect 2019 - array/bulk processing in PLSQLAPEX Connect 2019 - array/bulk processing in PLSQL
APEX Connect 2019 - array/bulk processing in PLSQLConnor McDonald
 
What's new in oracle trace file analyzer 18.2.0
What's new in oracle trace file analyzer 18.2.0What's new in oracle trace file analyzer 18.2.0
What's new in oracle trace file analyzer 18.2.0Sandesh Rao
 
Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...
Oracle Open World 2018 / Code One  : MySQL 8.0 High Availability with MySQL I...Oracle Open World 2018 / Code One  : MySQL 8.0 High Availability with MySQL I...
Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...Frederic Descamps
 
AIOUG-GroundBreakers-2018 -Using Oracle Autonomous Health Framework to Preser...
AIOUG-GroundBreakers-2018 -Using Oracle Autonomous Health Framework to Preser...AIOUG-GroundBreakers-2018 -Using Oracle Autonomous Health Framework to Preser...
AIOUG-GroundBreakers-2018 -Using Oracle Autonomous Health Framework to Preser...Sandesh Rao
 
EXAchk for Exadata Presentation
EXAchk for Exadata PresentationEXAchk for Exadata Presentation
EXAchk for Exadata PresentationSandesh Rao
 
“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the CoreC4Media
 
What's new in Oracle ORAchk & EXAchk 19.2
What's new in Oracle ORAchk & EXAchk 19.2What's new in Oracle ORAchk & EXAchk 19.2
What's new in Oracle ORAchk & EXAchk 19.2Sandesh Rao
 
FOSDEM MySQL & Friends Devroom, February 2018 MySQL Point-in-Time Recovery l...
FOSDEM MySQL & Friends Devroom, February 2018  MySQL Point-in-Time Recovery l...FOSDEM MySQL & Friends Devroom, February 2018  MySQL Point-in-Time Recovery l...
FOSDEM MySQL & Friends Devroom, February 2018 MySQL Point-in-Time Recovery l...Frederic Descamps
 

What's hot (20)

Melbourne Groundbreakers Tour - Hints and Tips
Melbourne Groundbreakers Tour - Hints and TipsMelbourne Groundbreakers Tour - Hints and Tips
Melbourne Groundbreakers Tour - Hints and Tips
 
OpenWorld 2018 - 20 years of hints and tips
OpenWorld 2018 - 20 years of hints and tipsOpenWorld 2018 - 20 years of hints and tips
OpenWorld 2018 - 20 years of hints and tips
 
Sangam 18 - The New Optimizer in Oracle 12c
Sangam 18 - The New Optimizer in Oracle 12cSangam 18 - The New Optimizer in Oracle 12c
Sangam 18 - The New Optimizer in Oracle 12c
 
OpenWorld 2018 - Common Application Developer Disasters
OpenWorld 2018 - Common Application Developer DisastersOpenWorld 2018 - Common Application Developer Disasters
OpenWorld 2018 - Common Application Developer Disasters
 
Perth APAC Groundbreakers tour - 18c features
Perth APAC Groundbreakers tour - 18c featuresPerth APAC Groundbreakers tour - 18c features
Perth APAC Groundbreakers tour - 18c features
 
Polymorphic Table Functions in SQL
Polymorphic Table Functions in SQLPolymorphic Table Functions in SQL
Polymorphic Table Functions in SQL
 
12 Things Developers Will Love About Oracle Database 12c Release 2
12 Things Developers Will Love About Oracle Database 12c Release 212 Things Developers Will Love About Oracle Database 12c Release 2
12 Things Developers Will Love About Oracle Database 12c Release 2
 
How to Hack Your App Using SQL Injection
How to Hack Your App Using SQL InjectionHow to Hack Your App Using SQL Injection
How to Hack Your App Using SQL Injection
 
Perth APAC Groundbreakers tour - The Autonomous Database
Perth APAC Groundbreakers tour - The Autonomous DatabasePerth APAC Groundbreakers tour - The Autonomous Database
Perth APAC Groundbreakers tour - The Autonomous Database
 
AUSOUG - Introducing New AI Ops Innovations in Oracle 19c Autonomous Health F...
AUSOUG - Introducing New AI Ops Innovations in Oracle 19c Autonomous Health F...AUSOUG - Introducing New AI Ops Innovations in Oracle 19c Autonomous Health F...
AUSOUG - Introducing New AI Ops Innovations in Oracle 19c Autonomous Health F...
 
ITOUG 2019 - 18c, 19c features
ITOUG 2019 - 18c, 19c featuresITOUG 2019 - 18c, 19c features
ITOUG 2019 - 18c, 19c features
 
Jfokus 2017 Oracle Dev Cloud and Containers
Jfokus 2017 Oracle Dev Cloud and ContainersJfokus 2017 Oracle Dev Cloud and Containers
Jfokus 2017 Oracle Dev Cloud and Containers
 
APEX Connect 2019 - array/bulk processing in PLSQL
APEX Connect 2019 - array/bulk processing in PLSQLAPEX Connect 2019 - array/bulk processing in PLSQL
APEX Connect 2019 - array/bulk processing in PLSQL
 
What's new in oracle trace file analyzer 18.2.0
What's new in oracle trace file analyzer 18.2.0What's new in oracle trace file analyzer 18.2.0
What's new in oracle trace file analyzer 18.2.0
 
Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...
Oracle Open World 2018 / Code One  : MySQL 8.0 High Availability with MySQL I...Oracle Open World 2018 / Code One  : MySQL 8.0 High Availability with MySQL I...
Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...
 
AIOUG-GroundBreakers-2018 -Using Oracle Autonomous Health Framework to Preser...
AIOUG-GroundBreakers-2018 -Using Oracle Autonomous Health Framework to Preser...AIOUG-GroundBreakers-2018 -Using Oracle Autonomous Health Framework to Preser...
AIOUG-GroundBreakers-2018 -Using Oracle Autonomous Health Framework to Preser...
 
EXAchk for Exadata Presentation
EXAchk for Exadata PresentationEXAchk for Exadata Presentation
EXAchk for Exadata Presentation
 
“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core
 
What's new in Oracle ORAchk & EXAchk 19.2
What's new in Oracle ORAchk & EXAchk 19.2What's new in Oracle ORAchk & EXAchk 19.2
What's new in Oracle ORAchk & EXAchk 19.2
 
FOSDEM MySQL & Friends Devroom, February 2018 MySQL Point-in-Time Recovery l...
FOSDEM MySQL & Friends Devroom, February 2018  MySQL Point-in-Time Recovery l...FOSDEM MySQL & Friends Devroom, February 2018  MySQL Point-in-Time Recovery l...
FOSDEM MySQL & Friends Devroom, February 2018 MySQL Point-in-Time Recovery l...
 

Similar to Hyderabad Mar 2019 - Database 18c / 19c

OpenWorld 2018 - SQL Tuning in 20 mins
OpenWorld 2018 - SQL Tuning in 20 minsOpenWorld 2018 - SQL Tuning in 20 mins
OpenWorld 2018 - SQL Tuning in 20 minsConnor McDonald
 
ILOUG 2019 - Autonomous, what does it mean for DBAs
ILOUG 2019 - Autonomous, what does it mean for DBAsILOUG 2019 - Autonomous, what does it mean for DBAs
ILOUG 2019 - Autonomous, what does it mean for DBAsConnor McDonald
 
Wellington APAC Groundbreakers tour - Upgrading to the 12c Optimizer
Wellington APAC Groundbreakers tour - Upgrading to the 12c OptimizerWellington APAC Groundbreakers tour - Upgrading to the 12c Optimizer
Wellington APAC Groundbreakers tour - Upgrading to the 12c OptimizerConnor McDonald
 
AMIS Oracle OpenWorld & CodeOne Review - Pillar 1 - Data (5 november 2018)
AMIS Oracle OpenWorld & CodeOne Review - Pillar 1 - Data (5 november 2018)AMIS Oracle OpenWorld & CodeOne Review - Pillar 1 - Data (5 november 2018)
AMIS Oracle OpenWorld & CodeOne Review - Pillar 1 - Data (5 november 2018)Lucas Jellema
 
Melbourne Groundbreakers Tour - Upgrading without risk
Melbourne Groundbreakers Tour - Upgrading without riskMelbourne Groundbreakers Tour - Upgrading without risk
Melbourne Groundbreakers Tour - Upgrading without riskConnor McDonald
 
[Oracle Innovation Summit Tokyo 2018] ブロックチェーンで切り拓く新たな世界
[Oracle Innovation Summit Tokyo 2018] ブロックチェーンで切り拓く新たな世界[Oracle Innovation Summit Tokyo 2018] ブロックチェーンで切り拓く新たな世界
[Oracle Innovation Summit Tokyo 2018] ブロックチェーンで切り拓く新たな世界オラクルエンジニア通信
 
APEX Connect 2019 - successful application development
APEX Connect 2019 - successful application developmentAPEX Connect 2019 - successful application development
APEX Connect 2019 - successful application developmentConnor McDonald
 
Troubleshooting Ecommerce Performance
 Troubleshooting Ecommerce Performance Troubleshooting Ecommerce Performance
Troubleshooting Ecommerce PerformanceDiego Cardozo
 
APEX Connect 2019 - SQL Tuning 101
APEX Connect 2019 - SQL Tuning 101APEX Connect 2019 - SQL Tuning 101
APEX Connect 2019 - SQL Tuning 101Connor McDonald
 
[Oracle Innovation Summit Tokyo 2018] インダストリアルIoTの今、そしてこれからの進化
[Oracle Innovation Summit Tokyo 2018] インダストリアルIoTの今、そしてこれからの進化[Oracle Innovation Summit Tokyo 2018] インダストリアルIoTの今、そしてこれからの進化
[Oracle Innovation Summit Tokyo 2018] インダストリアルIoTの今、そしてこれからの進化オラクルエンジニア通信
 
GraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster EverywhereGraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster EverywhereJ On The Beach
 
Kscope19 - Flashback: Good for Developers as well as DBAs
Kscope19 - Flashback: Good for Developers as well as DBAsKscope19 - Flashback: Good for Developers as well as DBAs
Kscope19 - Flashback: Good for Developers as well as DBAsConnor McDonald
 
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorialFrederic Descamps
 
Latin America Tour 2019 - pattern matching
Latin America Tour 2019 - pattern matchingLatin America Tour 2019 - pattern matching
Latin America Tour 2019 - pattern matchingConnor McDonald
 
AUSOUG Analytics Update - Nov 14 2018
AUSOUG Analytics Update - Nov 14 2018AUSOUG Analytics Update - Nov 14 2018
AUSOUG Analytics Update - Nov 14 2018Jason Lowe
 
The Oracle Autonomous Database
The Oracle Autonomous DatabaseThe Oracle Autonomous Database
The Oracle Autonomous DatabaseConnor McDonald
 
Diagnose Your Microservices
Diagnose Your MicroservicesDiagnose Your Microservices
Diagnose Your MicroservicesMarcus Hirt
 

Similar to Hyderabad Mar 2019 - Database 18c / 19c (20)

OpenWorld 2018 - SQL Tuning in 20 mins
OpenWorld 2018 - SQL Tuning in 20 minsOpenWorld 2018 - SQL Tuning in 20 mins
OpenWorld 2018 - SQL Tuning in 20 mins
 
ILOUG 2019 - Autonomous, what does it mean for DBAs
ILOUG 2019 - Autonomous, what does it mean for DBAsILOUG 2019 - Autonomous, what does it mean for DBAs
ILOUG 2019 - Autonomous, what does it mean for DBAs
 
Wellington APAC Groundbreakers tour - Upgrading to the 12c Optimizer
Wellington APAC Groundbreakers tour - Upgrading to the 12c OptimizerWellington APAC Groundbreakers tour - Upgrading to the 12c Optimizer
Wellington APAC Groundbreakers tour - Upgrading to the 12c Optimizer
 
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 1: Data
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 1: DataAMIS Oracle OpenWorld en Code One Review 2018 - Pillar 1: Data
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 1: Data
 
AMIS Oracle OpenWorld & CodeOne Review - Pillar 1 - Data (5 november 2018)
AMIS Oracle OpenWorld & CodeOne Review - Pillar 1 - Data (5 november 2018)AMIS Oracle OpenWorld & CodeOne Review - Pillar 1 - Data (5 november 2018)
AMIS Oracle OpenWorld & CodeOne Review - Pillar 1 - Data (5 november 2018)
 
Melbourne Groundbreakers Tour - Upgrading without risk
Melbourne Groundbreakers Tour - Upgrading without riskMelbourne Groundbreakers Tour - Upgrading without risk
Melbourne Groundbreakers Tour - Upgrading without risk
 
[Oracle Innovation Summit Tokyo 2018] ブロックチェーンで切り拓く新たな世界
[Oracle Innovation Summit Tokyo 2018] ブロックチェーンで切り拓く新たな世界[Oracle Innovation Summit Tokyo 2018] ブロックチェーンで切り拓く新たな世界
[Oracle Innovation Summit Tokyo 2018] ブロックチェーンで切り拓く新たな世界
 
APEX Connect 2019 - successful application development
APEX Connect 2019 - successful application developmentAPEX Connect 2019 - successful application development
APEX Connect 2019 - successful application development
 
Troubleshooting Ecommerce Performance
 Troubleshooting Ecommerce Performance Troubleshooting Ecommerce Performance
Troubleshooting Ecommerce Performance
 
APEX Connect 2019 - SQL Tuning 101
APEX Connect 2019 - SQL Tuning 101APEX Connect 2019 - SQL Tuning 101
APEX Connect 2019 - SQL Tuning 101
 
[Oracle Innovation Summit Tokyo 2018] インダストリアルIoTの今、そしてこれからの進化
[Oracle Innovation Summit Tokyo 2018] インダストリアルIoTの今、そしてこれからの進化[Oracle Innovation Summit Tokyo 2018] インダストリアルIoTの今、そしてこれからの進化
[Oracle Innovation Summit Tokyo 2018] インダストリアルIoTの今、そしてこれからの進化
 
GraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster EverywhereGraalVM: Run Programs Faster Everywhere
GraalVM: Run Programs Faster Everywhere
 
Kscope19 - Flashback: Good for Developers as well as DBAs
Kscope19 - Flashback: Good for Developers as well as DBAsKscope19 - Flashback: Good for Developers as well as DBAs
Kscope19 - Flashback: Good for Developers as well as DBAs
 
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
 
Latin America Tour 2019 - pattern matching
Latin America Tour 2019 - pattern matchingLatin America Tour 2019 - pattern matching
Latin America Tour 2019 - pattern matching
 
AUSOUG Analytics Update - Nov 14 2018
AUSOUG Analytics Update - Nov 14 2018AUSOUG Analytics Update - Nov 14 2018
AUSOUG Analytics Update - Nov 14 2018
 
20190220 Oracle Blockchain Day公開資料
20190220 Oracle Blockchain Day公開資料20190220 Oracle Blockchain Day公開資料
20190220 Oracle Blockchain Day公開資料
 
The Oracle Autonomous Database
The Oracle Autonomous DatabaseThe Oracle Autonomous Database
The Oracle Autonomous Database
 
Diagnose Your Microservices
Diagnose Your MicroservicesDiagnose Your Microservices
Diagnose Your Microservices
 
Autonomous Data Warehouse
Autonomous Data WarehouseAutonomous Data Warehouse
Autonomous Data Warehouse
 

More from Connor McDonald

Sangam 19 - PLSQL still the coolest
Sangam 19 - PLSQL still the coolestSangam 19 - PLSQL still the coolest
Sangam 19 - PLSQL still the coolestConnor McDonald
 
Sangam 19 - Analytic SQL
Sangam 19 - Analytic SQLSangam 19 - Analytic SQL
Sangam 19 - Analytic SQLConnor McDonald
 
UKOUG - 25 years of hints and tips
UKOUG - 25 years of hints and tipsUKOUG - 25 years of hints and tips
UKOUG - 25 years of hints and tipsConnor McDonald
 
Sangam 19 - Successful Applications on Autonomous
Sangam 19 - Successful Applications on AutonomousSangam 19 - Successful Applications on Autonomous
Sangam 19 - Successful Applications on AutonomousConnor McDonald
 
Sangam 2019 - The Latest Features
Sangam 2019 - The Latest FeaturesSangam 2019 - The Latest Features
Sangam 2019 - The Latest FeaturesConnor McDonald
 
UKOUG 2019 - SQL features
UKOUG 2019 - SQL featuresUKOUG 2019 - SQL features
UKOUG 2019 - SQL featuresConnor McDonald
 
APEX tour 2019 - successful development with autonomous
APEX tour 2019 - successful development with autonomousAPEX tour 2019 - successful development with autonomous
APEX tour 2019 - successful development with autonomousConnor McDonald
 
APAC Groundbreakers 2019 - Perth/Melbourne
APAC Groundbreakers 2019 - Perth/Melbourne APAC Groundbreakers 2019 - Perth/Melbourne
APAC Groundbreakers 2019 - Perth/Melbourne Connor McDonald
 
OOW19 - Flashback, not just for DBAs
OOW19 - Flashback, not just for DBAsOOW19 - Flashback, not just for DBAs
OOW19 - Flashback, not just for DBAsConnor McDonald
 
OOW19 - Read consistency
OOW19 - Read consistencyOOW19 - Read consistency
OOW19 - Read consistencyConnor McDonald
 
OOW19 - Slower and less secure applications
OOW19 - Slower and less secure applicationsOOW19 - Slower and less secure applications
OOW19 - Slower and less secure applicationsConnor McDonald
 
OOW19 - Killing database sessions
OOW19 - Killing database sessionsOOW19 - Killing database sessions
OOW19 - Killing database sessionsConnor McDonald
 
OOW19 - Ten Amazing SQL features
OOW19 - Ten Amazing SQL featuresOOW19 - Ten Amazing SQL features
OOW19 - Ten Amazing SQL featuresConnor McDonald
 
Latin America tour 2019 - Flashback
Latin America tour 2019 -  FlashbackLatin America tour 2019 -  Flashback
Latin America tour 2019 - FlashbackConnor McDonald
 
Latin America Tour 2019 - 10 great sql features
Latin America Tour 2019  - 10 great sql featuresLatin America Tour 2019  - 10 great sql features
Latin America Tour 2019 - 10 great sql featuresConnor McDonald
 
OG Yatra - upgrading to the new 12c+ optimizer
OG Yatra - upgrading to the new 12c+ optimizerOG Yatra - upgrading to the new 12c+ optimizer
OG Yatra - upgrading to the new 12c+ optimizerConnor McDonald
 
OG Yatra - 25 years of hints and tips
OG Yatra - 25 years of hints and tipsOG Yatra - 25 years of hints and tips
OG Yatra - 25 years of hints and tipsConnor McDonald
 
OG Yatra - Flashback, not just for developers
OG Yatra - Flashback, not just for developersOG Yatra - Flashback, not just for developers
OG Yatra - Flashback, not just for developersConnor McDonald
 

More from Connor McDonald (20)

Flashback ITOUG
Flashback ITOUGFlashback ITOUG
Flashback ITOUG
 
Sangam 19 - PLSQL still the coolest
Sangam 19 - PLSQL still the coolestSangam 19 - PLSQL still the coolest
Sangam 19 - PLSQL still the coolest
 
Sangam 19 - Analytic SQL
Sangam 19 - Analytic SQLSangam 19 - Analytic SQL
Sangam 19 - Analytic SQL
 
UKOUG - 25 years of hints and tips
UKOUG - 25 years of hints and tipsUKOUG - 25 years of hints and tips
UKOUG - 25 years of hints and tips
 
Sangam 19 - Successful Applications on Autonomous
Sangam 19 - Successful Applications on AutonomousSangam 19 - Successful Applications on Autonomous
Sangam 19 - Successful Applications on Autonomous
 
Sangam 2019 - The Latest Features
Sangam 2019 - The Latest FeaturesSangam 2019 - The Latest Features
Sangam 2019 - The Latest Features
 
UKOUG 2019 - SQL features
UKOUG 2019 - SQL featuresUKOUG 2019 - SQL features
UKOUG 2019 - SQL features
 
APEX tour 2019 - successful development with autonomous
APEX tour 2019 - successful development with autonomousAPEX tour 2019 - successful development with autonomous
APEX tour 2019 - successful development with autonomous
 
APAC Groundbreakers 2019 - Perth/Melbourne
APAC Groundbreakers 2019 - Perth/Melbourne APAC Groundbreakers 2019 - Perth/Melbourne
APAC Groundbreakers 2019 - Perth/Melbourne
 
OOW19 - Flashback, not just for DBAs
OOW19 - Flashback, not just for DBAsOOW19 - Flashback, not just for DBAs
OOW19 - Flashback, not just for DBAs
 
OOW19 - Read consistency
OOW19 - Read consistencyOOW19 - Read consistency
OOW19 - Read consistency
 
OOW19 - Slower and less secure applications
OOW19 - Slower and less secure applicationsOOW19 - Slower and less secure applications
OOW19 - Slower and less secure applications
 
OOW19 - Killing database sessions
OOW19 - Killing database sessionsOOW19 - Killing database sessions
OOW19 - Killing database sessions
 
OOW19 - Ten Amazing SQL features
OOW19 - Ten Amazing SQL featuresOOW19 - Ten Amazing SQL features
OOW19 - Ten Amazing SQL features
 
Latin America tour 2019 - Flashback
Latin America tour 2019 -  FlashbackLatin America tour 2019 -  Flashback
Latin America tour 2019 - Flashback
 
Latin America Tour 2019 - 10 great sql features
Latin America Tour 2019  - 10 great sql featuresLatin America Tour 2019  - 10 great sql features
Latin America Tour 2019 - 10 great sql features
 
ANSI vs Oracle language
ANSI vs Oracle languageANSI vs Oracle language
ANSI vs Oracle language
 
OG Yatra - upgrading to the new 12c+ optimizer
OG Yatra - upgrading to the new 12c+ optimizerOG Yatra - upgrading to the new 12c+ optimizer
OG Yatra - upgrading to the new 12c+ optimizer
 
OG Yatra - 25 years of hints and tips
OG Yatra - 25 years of hints and tipsOG Yatra - 25 years of hints and tips
OG Yatra - 25 years of hints and tips
 
OG Yatra - Flashback, not just for developers
OG Yatra - Flashback, not just for developersOG Yatra - Flashback, not just for developers
OG Yatra - Flashback, not just for developers
 

Recently uploaded

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 

Recently uploaded (20)

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 

Hyderabad Mar 2019 - Database 18c / 19c

  • 1. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Connor McDonald
  • 2. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 2
  • 3. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 3
  • 4. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 4
  • 5. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 5
  • 6. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Stuff youtube bit.ly/youtube-connor blog bit.ly/blog-connor twitter bit.ly/twitter-connor 400+ posts mainly on database & development 250 technical videos, new uploads every week rants and raves on tech and the world :-)
  • 7. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. etc... facebook bit.ly/facebook-connor linkedin bit.ly/linkedin-connor instagram bit.ly/instagram-connor slideshare bit.ly/slideshare-connor
  • 8. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | https://asktom.oracle.com
  • 9. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 9https://asktom.oracle.com/officehours
  • 10. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 200 hours of free access (so far) 10
  • 11. Cool stuff on 12c, 18c ... and 19c! Connor McDonald Database Advocate
  • 12. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 12 why me ?
  • 13. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 13
  • 14. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 14
  • 15. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 15
  • 16. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 16
  • 17. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
  • 18. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 18 why you ?
  • 19. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 19 12.2!18! 12.2!12.2! 19!
  • 20. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | reality :-( 20
  • 21. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 21 SQL> select * from v$version; BANNER ---------------------------------------------------------- Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production PL/SQL Release 8.1.7.4.0 - Production CORE 8.1.7.0.0 Production TNS for HPUX: Version 8.1.7.4.0 - Production NLSRTL Version 3.4.1.0.0 - Production
  • 22. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 22 SQL> select * from v$version; BANNER ---------------------------------------------------------- Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production PL/SQL Release 8.1.7.4.0 - Production CORE 8.1.7.0.0 Production TNS for HPUX: Version 8.1.7.4.0 - Production NLSRTL Version 3.4.1.0.0 - Production
  • 23. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 23 SQL> select * from v$version; BANNER ---------------------------------------------------------- Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production PL/SQL Release 8.1.7.4.0 - Production CORE 8.1.7.0.0 Production TNS for HPUX: Version 8.1.7.4.0 - Production NLSRTL Version 3.4.1.0.0 - Production
  • 24. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | you still should be here 24
  • 25. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
  • 26. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 26 there's a lot in 12.2/18/19
  • 27. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 27 get started right now
  • 28. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 28 install nothing
  • 29. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 29 https://cloud.oracle.com/tryit
  • 30. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 30 install a little bit
  • 31. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 31 https://tinyurl.com/ora18vm
  • 32. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 32 install lots :-)
  • 33. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 33 http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
  • 34. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 34 18c install lots :-)
  • 35. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 35
  • 36. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 36 18c install lots :-)
  • 37. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 37
  • 38. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 38 coming soon
  • 39. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 39 install lots :-)
  • 40. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 40 1) gold image service
  • 41. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 41 2) read-only ORACLE_HOME
  • 42. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 42 3) Oracle database in Docker https://tinyurl.com/ora18docker
  • 43. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 43 because there's 19c stuff in here
  • 44. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 44
  • 45. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 45 licensing
  • 46. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 46
  • 47. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 47
  • 48. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 48 UNZIP INSTALL RPM INSTALL DOCKER READ-ONLY GOLD IMAGE
  • 49. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 49 external tables
  • 50. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ext_emp
  • 51. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> create table ext_emp ( 2 empno number(4), 3 ename varchar2(10), 4 job varchar2(9), 5 mgr number(4), 6 hiredate date, 7 sal number(7,2), 8 comm number(7,2), 9 deptno number(2) 10 ) 11 organization external 12 ( type oracle_loader 13 default directory TMP 14 access parameters 15 ( records delimited by newline 16 fields terminated by ',' 17 missing field values are null 18 ( empno,ename,job,mgr,hiredate,sal,comm,deptno ) 19 ) 20 location ('emp20161001.dat')); Table created.
  • 52. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | ext_emp
  • 53. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> select * from ext_emp; select * from ext_emp * ERROR at line 1: ORA-29913: error in executing ODCIEXTTABLEFETCH callout ORA-30653: reject limit reached
  • 54. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 54 easy fix
  • 55. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> create table ext_emp ( 2 empno number(4), ... 12 ( type oracle_loader 13 default directory TMP 14 access parameters 15 ( records delimited by newline 16 fields terminated by ',' 17 missing field values are null 18 ( empno,ename,job,mgr,hiredate,sal,comm,deptno ) 19 ) 20 location ('emp20161001.dat')) 21 REJECT LIMIT UNLIMITED; Table created.
  • 56. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 56
  • 57. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 57 12.2
  • 58. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 58 query time modification
  • 59. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> select * from ext_emp 2 external modify ( reject limit unlimited ); EMPNO ENAME JOB MGR HIREDATE SAL ---------- ---------- --------- ---------- --------- ---------- --- 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 7521 WARD SALESMAN 7698 22-FEB-81 1250 7566 JONES MANAGER 7839 02-APR-81 2975 ... 7902 FORD ANALYST 7566 03-DEC-81 3000 7934 MILLER CLERK 7782 23-JAN-82 1300 13 rows selected.
  • 60. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> select * from ext_emp 2 external modify ( location ('emp20161002.dat') ); EMPNO ENAME JOB MGR HIREDATE SAL ---------- ---------- --------- ---------- --------- ---------- --- 7902 FORD ANALYST 7566 03-DEC-81 3000 7934 MILLER CLERK 7782 23-JAN-82 1300 7566 JONES MANAGER 7839 02-APR-81 2975 ... 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 7521 WARD SALESMAN 7698 22-FEB-81 1250 8 rows selected.
  • 61. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | select * from ext_tab external modify ( [ default directory ] [ location ] [ access parameters ] [ reject limit ] );
  • 62. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 62 18c
  • 63. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 63 zero ddl option
  • 64. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> select * from external ( 2 empno number(4), 3 ename varchar2(10), 4 ... 12 ( type oracle_loader 13 default directory TMP 14 access parameters 15 ( records delimited by newline 16 fields terminated by ',' 17 missing field values are null 18 ( empno,ename,job,mgr,...) 19 ) 20 location ('emp20161001.dat') 21 );
  • 65. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 65
  • 66. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 66 column level collation
  • 67. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> select * 2 from customers 3 where cust_name = 'ADAMS'; COUNTRY CREATED CUST_NAME ------------ --------- --------------------- AUS 08-NOV-16 ADAMS
  • 68. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 68 looks great... until
  • 69. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> select * 2 from customers 3 where upper(cust_name) = 'ADAMS'; COUNTRY CREATED CUST_NAME ------------ --------- ------------ AUS 07-NOV-16 Adams AUS 08-NOV-16 ADAMS AUS 09-NOV-16 adams
  • 70. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 70 SQL> select * from customers 2 where upper(cust_name) = 'ADAMS';
  • 71. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> select column_name 2 from user_ind_columns 3 where index_name = 'CUST_IX'; COLUMN_NAME ------------------------------ CUST_NAME SQL> select * from customers 2 where upper(cust_name) = 'ADAMS'; ------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | ------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 152 | |* 1 | TABLE ACCESS FULL| CUSTOMERS | 1 | 152 | -------------------------------------------------------
  • 72. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> create index cust_ix 2 on customers ( cust_name ); Index created. SQL> create index cust_ix2 2 on customers ( upper(cust_name) ); Index created.
  • 73. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 73 "DML slower" "more contention" "more redo/undo"
  • 74. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 74 "not my problem"
  • 75. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 75
  • 76. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 76 unforeseen consequences
  • 77. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> alter table customers shrink space; * ERROR at line 1: ORA-10631: SHRINK clause should not be specified for this object
  • 78. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 78 12.2+
  • 79. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 79 column level collation
  • 80. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 80
  • 81. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> CREATE TABLE CUSTOMERS 2 ( 3 COUNTRY VARCHAR2(128), 4 CREATED DATE, 5 CUST_NAME VARCHAR2(150) COLLATE BINARY_CI 6 ); Table created. "case insenstive"
  • 82. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> create index cust_ix 2 on customers ( cust_name); Index created. SQL> set autotrace traceonly explain SQL> select * from customers 2 where cust_name = 'ADAMS'; ----------------------------------------------------------------- | Id | Operation | Name | Rows | ----------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | | 1 | TABLE ACCESS BY INDEX ROWID BATCHED| CUSTOMERS | 1 | |* 2 | INDEX RANGE SCAN | CUST_IX | 1 | -----------------------------------------------------------------
  • 83. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 83 "big deal"
  • 84. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> select * from customers 2 where cust_name = 'ADAMS'; COUNTRY CREATED CUST_NAME ------------ --------- ---------------- AUS 07-NOV-16 Adams AUS 08-NOV-16 ADAMS AUS 09-NOV-16 adams
  • 85. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 85 binary_ci SQL> select * from customers 2 where cust_name = 'ADAMS'; COUNTRY CREATED CUST_NAME ------------ --------- ---------------- AUS 07-NOV-16 Adams AUS 08-NOV-16 ADAMS AUS 09-NOV-16 adams
  • 86. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 86 binary_ai SQL> select * from customers 2 where cust_name = 'ADAMS'; COUNTRY CREATED CUST_NAME ------------ --------- ---------------- AUS 07-NOV-16 Adams AUS 08-NOV-16 ADAMS AUS 09-NOV-16 adams AUS 10-NOV-16 adáms adáms
  • 87. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 87 column | table | user
  • 88. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> alter table people default collation binary_ai; new columns only
  • 89. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 89 key point
  • 90. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> alter table people default collation binary_ai; * ERROR at line 1: ORA-43929: Collation cannot be specified if parameter MAX_STRING_SIZE=STANDARD
  • 91. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 91
  • 92. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 92 remember temporary undo?
  • 93. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> insert into t values ('Hello','There'); insert into t values ('Hello','There') * ERROR at line 1: ORA-16000: database open for read-only access
  • 94. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 94 Active Data Guard
  • 95. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> alter session set temp_undo_enabled=true; Session altered. SQL> create global temporary table GTT_REPORT_STAGING 2 ( ... ); SQL> insert into GTT_REPORT_STAGING 2 select ... SQL> select * from GTT_REPORT_STAGING join FIN_RESULTS 2 ...
  • 96. 96 100% % of people that found this useful
  • 97. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 97 19c
  • 98. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 98 DML redirect
  • 99. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 99 Standby Primary SQL> insert into REPORTING_STAGING 2 select * from ...
  • 100. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 100 bonus DataGuard
  • 101. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 101 we've all done this :-)
  • 102. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 102 Standby Primary
  • 103. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 103 12.2+
  • 104. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | RMAN> connect target sys/oracle@MY_STANDBY RMAN> connect auxiliary sys/oracle@MY_PRIMARY RMAN> recover database from service PRIMARY; Starting recover at 12.10.2018 14:05:17 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=187 device type=DISK ... ...
  • 105. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 105
  • 106. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 106 a nice form of murder :-)
  • 107. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 107 aka, #1 reason for upgrading to 18c
  • 108. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> insert into MY_TABLE 2 select * 3 from MY_HUGE_GREAT_FAT_TABLE; 108
  • 109. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 109
  • 110. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> insert into MY_TABLE 2 select * 3 from MY_HUGE_GREAT_FAT_TABLE 4 where LOAD_DATE > sysdate - 1; 110
  • 111. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> alter system kill session '123,456' immediate 111
  • 112. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 112 18c
  • 113. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> alter system kill cancel sql '123,456'; 113
  • 114. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 114
  • 115. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 115 speaking of "#1 reason"
  • 116. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 116 #1 reason for upgrading to 19c
  • 117. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> select deptno, ename 2 from emp 3 order by 1,2; DEPTNO ENAME ---------- ---------- 10 CLARK 10 KING 10 MILLER 20 ADAMS 20 FORD 20 JONES 20 SCOTT 20 SMITH 30 ALLEN 30 BLAKE 30 JAMES 30 MARTIN 30 TURNER 30 WARD 117
  • 118. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | DEPTNO MEMBERS ---------- ------------------------------------- 10 CLARK,KING,MILLER 20 SMITH,JONES,SCOTT,ADAMS,FORD 30 ALLEN,WARD,MARTIN,BLAKE,TURNER,JAMES 118
  • 119. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | how we used to do it 119
  • 120. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> select deptno , rtrim(ename,',') enames 2 from ( select deptno,ename,rn 3 from emp 4 model 5 partition by (deptno) 6 dimension by ( 7 row_number() over 8 (partition by deptno order by ename) rn 9 ) 10 measures (cast(ename as varchar2(40)) ename) 11 rules 12 ( ename[any] 13 order by rn desc = ename[cv()]||','||ename[cv()+1]) 14 ) 15 where rn = 1 16 order by deptno; DEPTNO ENAMES ---------- ---------------------------------------- 10 CLARK,KING,MILLER 20 ADAMS,FORD,JONES,SCOTT,SMITH 30 ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD 120
  • 121. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> select deptno, 2 substr(max(sys_connect_by_path(ename, ',')), 2) members 3 from (select deptno, ename, 4 row_number () 5 over (partition by deptno order by empno) rn 6 from emp) 7 start with rn = 1 8 connect by prior rn = rn - 1 9 and prior deptno = deptno 10 group by deptno 11 / DEPTNO MEMBERS ---------- --------------------------------------------------------- 30 ALLEN,WARD,MARTIN,BLAKE,TURNER,JAMES 20 SMITH,JONES,SCOTT,ADAMS,FORD 10 CLARK,KING,MILLER 121
  • 122. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> select deptno, 2 xmltransform 3 ( sys_xmlagg 4 ( sys_xmlgen(ename) 5 ), 6 xmltype 7 ( 8 '<?xml version="1.0"?><xsl:stylesheet version="1.0" 9 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 10 <xsl:template match="/"> 11 <xsl:for-each select="/ROWSET/ENAME"> 12 <xsl:value-of select="text()"/>,</xsl:for-each> 13 </xsl:template> 14 </xsl:stylesheet>' 15 ) 16 ).getstringval() members 17 from emp 18 group by deptno; DEPTNO MEMBERS ---------- -------------------------------------------------------- 10 CLARK,MILLER,KING, 20 SMITH,FORD,ADAMS,SCOTT,JONES, 30 ALLEN,JAMES,TURNER,BLAKE,MARTIN,WARD, 122
  • 123. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> create or replace type string_agg_type as object 2 ( 3 total varchar2(4000), 4 5 static function 6 ODCIAggregateInitialize(sctx IN OUT string_agg_type ) 7 return number, 8 9 member function 10 ODCIAggregateIterate(self IN OUT string_agg_type , 11 value IN varchar2 ) 12 return number, 13 14 member function 15 ODCIAggregateTerminate(self IN string_agg_type, 16 returnValue OUT varchar2, 17 flags IN number) 18 return number, 19 20 member function 21 ODCIAggregateMerge(self IN OUT string_agg_type, 22 ctx2 IN string_agg_type) 23 return number 24 ); 25 / 123
  • 124. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 11g 124
  • 125. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> select deptno, 2 listagg( ename, ',') 3 within group (order by empno) members 4 from emp 5 group by deptno; DEPTNO MEMBERS ---------- ----------------------------------------- 10 CLARK,KING,MILLER 20 SMITH,JONES,SCOTT,ADAMS,FORD 30 ALLEN,WARD,MARTIN,BLAKE,TURNER,JAMES 125
  • 126. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | except 126
  • 127. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> select deptno 2 listagg(job,',') within group ( order by job) as jobs 3 from scott.emp 4 group by deptno 5 order by 1; DEPTNO JOBS --------- -------------------------------------------------- 10 CLERK,MANAGER,PRESIDENT 20 ANALYST,ANALYST,CLERK,CLERK,MANAGER 30 CLERK,MANAGER,SALESMAN,SALESMAN,SALESMAN,SALESMAN 127
  • 128. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> select owner 2 listagg(object_type,',') within group 3 ( order by object_id ) as types 4 from all_ojects 5 group by owner 6 order by 1; ERROR: ORA-01499: result of string concatenation is too long 128
  • 129. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 19c 129
  • 130. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> select deptno 2 listagg(distinct job,',') within group ( order by job) as jobs 3 from scott.emp 4 group by deptno 5 order by 1; DEPTNO JOBS --------- -------------------------------------------------- 10 CLERK,MANAGER,PRESIDENT 20 ANALYST,CLERK,MANAGER 30 CLERK,MANAGER,SALESMAN 130
  • 131. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 131
  • 132. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 132 back to bad SQL
  • 133. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 133 maybe murder won't help
  • 134. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 134
  • 135. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 135 bad SQL just keeps coming back...
  • 136. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 136 19c
  • 137. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 137 automatic quarantine of bad SQL elapsed time resource consumption
  • 138. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 138 error on subsequent execution
  • 139. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 139 1) alerts to administrator
  • 140. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 140 or...
  • 141. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 141 2) automated historical diagnosis/repair
  • 142. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 142
  • 143. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 143 maybe murder wasn't the right thing
  • 144. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> insert into MY_TABLE 2 select * 3 from MY_HUGE_GREAT_FAT_TABLE 4 where LOAD_DATE > sysdate - 900; 144
  • 145. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 145
  • 146. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> insert into MY_TABLE 2 select * 3 from MY_HUGE_GREAT_FAT_TABLE w 4 where LOAD_DATE > sysdate - 900; 146 /*+ INDEX(W CUST_DATE_IX) */ *
  • 147. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 147 18c
  • 148. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> alter system set optimizer_ignore_hints = true 148
  • 149. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 149
  • 150. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 150 cool
  • 151. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 151 maybe it was the opposite ?
  • 152. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> insert into MY_TABLE 2 select * 3 from MY_HUGE_GREAT_FAT_TABLE 4 where LOAD_DATE > sysdate - 1/24; 152
  • 153. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 153
  • 154. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> insert into MY_TABLE 2 select * 3 from MY_HUGE_GREAT_FAT_TABLE 4 where LOAD_DATE > sysdate - 1/24; 154 need an index?
  • 155. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 155 but what is best practice ?
  • 156. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 156 1) monitor the SQL workload AWR / Top SQL
  • 157. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 157 2) consider indexes per SQL leading columns
  • 158. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 158 3) consolidate tables/columns (a) (a,b) (a,b,c)
  • 159. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 159 4) create nosegment/unusable dictionary only
  • 160. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 160 5) check "virtual" explain plan cost/cardinality
  • 161. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 161 6) create true index (as invisible) no impact risk
  • 162. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 162 7) test execute each SQL for benefit response time/IO
  • 163. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 163 8) decide on each index worth "majority wins"
  • 164. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 164 9) SPM quarantine the others no regression
  • 165. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 165 10) make new indexes visible
  • 166. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 166 we're done!
  • 167. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 167
  • 168. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 168 go to step 1
  • 169. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 169 19c
  • 170. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 170 automatic indexes
  • 171. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 171 we follow best practice
  • 172. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 172 Capture Identify VerifyDecide Monitor Identify index candidates based on column usage (SQL workload) Create indexes unusable, invisible and evaluate new execution plans without parse costs Rebuild indexes that offer potential benefit (status as invisible). Test execute each SQL statement Use SPM to ensure no regression for excluded SQL statements. Mark indexes as visible Monitor all indexes (automatic and manual) for ongoing usage and potential removal
  • 173. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 173 only need to set preferences
  • 174. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 174 AUTO_INDEX_EXCLUDE_SCHEMA AUTO_INDEX_REPORT_RETENTION AUTO_INDEX_RETENTION_FOR_AUTO AUTO_INDEX_RETENTION_FOR_MANUAL AUTO_INDEX_DEFAULT_TABLESPACE AUTO_INDEX_TEMP_TABLESPACE AUTO_INDEX_MODE AUTO_INDEX_SPACE_BUDGET
  • 175. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 175 expect this to evolve over time
  • 176. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 176
  • 177. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 177 statistics
  • 178. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 178 what most of us do
  • 179. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 179 TIME Gather Stale overnight
  • 180. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 180 19c
  • 181. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 181 Conventional DML Real-time Statistics Gathered Statistics Lightweight Statistics
  • 182. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 182 real time statistics DML driven
  • 183. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 183 only "cheap" essential statistics high/low values row/column counts
  • 184. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 184 lightweight rapid gather resource manager
  • 185. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 185
  • 186. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | let's talk about ... 186
  • 187. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | polyglot persistence 187
  • 188. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 188
  • 189. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 189
  • 190. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 190 "I have to learn Hadoop ....and Spark ....and Hive ....and ? ....and ? ....and ?"
  • 191. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 191 Big Data SQL
  • 192. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 192 19c
  • 193. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 193 hybrid partitioned table
  • 194. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 194 Q4_2018Q3_2018Q2_2018Q1_2018Q4_2017Q3_2017Q2_2017Q1_2017Q4_2016 ORDERS OBJECT STORAGE TABLE PARTITIONED BY QUARTER SQL HOT DATACOLD DATA UPDATES
  • 195. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 195 SQL> create table hybrid_sales 2 ( 3 part_key varchar2(10) not null 4 ... 5 ) 6 external partition attributes ( 7 type oracle_loader 8 default directory sales_data 9 ) 10 partition by list (part_key) 11 (partition sales_2015 values ('2015') external 12 location ('sales2015.txt'), 13 partition sales_2016 values ('2016') external 14 location ('sales2016.txt'), 15 partition sales_2017 values '2017'), 16 partition sales_2018 values '2018'), 17 ); Table created.
  • 196. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 196
  • 197. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 197 revisit: security
  • 198. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 198 18c
  • 199. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 199 better schema management
  • 200. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> create user data_owner 2 no authentication;
  • 201. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 201 "I already do this"
  • 202. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> alter user data_owner account lock User altered.
  • 203. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 203 security risk
  • 204. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> conn wmsys/wmsys ERROR: ORA-28000: the account is locked Warning: You are no longer connected to ORACLE.
  • 205. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 205 schema only accounts
  • 206. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | SQL> conn data_owner/random_password ORA-01017: invalid username/password; logon denied
  • 207. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 207 bonus security
  • 208. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 208 DBSAT
  • 209. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 209 10.2 and above
  • 210. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 210
  • 211. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | this is the big one 211
  • 212. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 18c XE 212
  • 213. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 213 100% free
  • 214. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 214 We grant you a nonexclusive, nontransferable limited license to use the programs for: (a) purposes of developing, prototyping and running your applications for your own internal data processing operations; (b) you may also distribute the programs with your applications; (c) you may use the programs to provide third party demonstrations and training; and d) you may copy and distribute the programs to your licensees provided that each such licensee agrees to the terms of this Agreement https://www.oracle.com/technetwork/licenses/db18c-express-license-5137264.html
  • 215. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 215 12 GB of user data 2 GB of database RAM 2 CPU threads 3 Pluggable Databases
  • 216. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 216 "Is it feature hobbled?"
  • 217. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 217 Oracle Multitenant SQLJ Online index rebuild Online table reorg Online table redefinition Trial recovery Fast start recovery Flashback table Flashback query Flashback database Advanced Queueing Network Compression Client side result cache Server side result cache Adaptive plans In-memory column store In-memory aggregation Attribute Clustering Column encryption Tablespace encryption Advanced Security Database Vault Label Security AD users Privilege Analysis Real Application Security Data Redaction Virtual Private Database Spatial Graph Partitioning Advanced Analytics Advanced Compression Advanced Index Compression Transportable Tablespace Query Rewrite
  • 218. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 218 EE plus most extra cost options
  • 219. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 219
  • 220. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 220 wrap up
  • 221. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 221 there's a lot in 12.2/18/19
  • 222. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 222 lots not covered today
  • 223. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | 223 but ... new feature model
  • 224. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | plenty to excite 224
  • 225. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Stay in touch! youtube bit.ly/youtube-connor blog bit.ly/blog-connor twitter bit.ly/twitter-connor