SlideShare une entreprise Scribd logo
1  sur  48
Télécharger pour lire hors ligne
Copyright	©	2018, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Top	10	SQL	Performance	tips	&	
tricks	for	Java	Developers
Gerald	Venzl	
Senior	Principal	Product	Manager
Server	Technologies
Oracle	Development
@GeraldVenzl
geraldonit.com
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Roundtrips
Confidential	– Oracle	Internal/Restricted/Highly	Restricted 2
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		| 3
Roundtrips
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Roundtrips
• Avoid	unnecessary	round	trips	to	the	database
• Every	round	trip	includes	time	that	you	spend	on	the	network
• That	does	not mean	to	avoid	processing	anything	at	the	database
• You	will	see	why	just	in	a	bit…
4
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Bind	variables
Confidential	– Oracle	Internal/Restricted/Highly	Restricted 5
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		| 6
Bind	variables
SELECT	text	FROM	TEST
WHERE	id	=	453;
SQL	ID:
5mwwhtqv204ba
SQL	ID:
06jc0z1kcuu6b
SELECT	text	FROM	TEST
WHERE	id	=	879;
SELECT	text	FROM	TEST
WHERE	id	=	?;
SELECT	text	FROM	TEST
WHERE	id	=	?;
SQL	ID:
cknumntjbx8u3
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
0
5000
10000
15000
20000
25000
30000
Test	run	1 Test	run	2 Test	run	3
Milliseconds
Select	using	literals
Select	using	bind	var
• Three	test	runs	selecting	1k	rows
• Dark	blue	axis	shows	elapsed	time	
of	SELECT	using	literals
• Light	blue	axis	shows	elapsed	time	
of	SELECT	using	bind	variable
7
Bind	variables
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Bind	variables
• SQL	statements	are	strings
• But	data	manipulated	via	SQL	may	be	of	a	different	types	(Number,	Date,	…)
• A	bind	variable	allows	you	to	bind	data	to	an	explicit	date	type
– Without	having	to	convert	the	data	type	from	string
– And	without	having	to	parse	the	SQL	statement	again
• Bind	variables	also	avoid	SQL	injections,	i.e.	tighter	security
What	are	bind	variables
8
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		| 9
for(int i = 1; i <= rows; i++) {
PreparedStatement stmt = conn.prepareStatement(
"SELECT text FROM TEST WHERE id = " + i);
ResultSet rslt = stmt.executeQuery();
rslt.next();
// Fetch the column value to include fetching time
rslt.getString(1);
rslt.close();
stmt.close();
}
Bind	variables
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		| 10
PreparedStatement stmt = conn.prepareStatement(
"SELECT text FROM TEST WHERE id = ?");
for(int i = 1; i <= rows; i++) {
stmt.setInt(1, i);
ResultSet rslt = stmt.executeQuery();
rslt.next();
// Fetch the column value to include fetching time
rslt.getString(1);
rslt.close();
}
stmt.close();
Bind	variables
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Autocommit
Confidential	– Oracle	Internal/Restricted/Highly	Restricted 11
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Autocommit
How	does	the	DB	make	sure	your	data	is	stored	on	disk?
12
INSERT	INTO	purchase	(…)
VALUES	(:1,	:2,	:3,	…);
COMMIT
Buffer	Cache REDO	logs
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
20000
Test	run	1 Test	run	2 Test	run	3
Milliseconds
Commit	every	row
Commit	at	end
• Three	test	runs	inserting	10k	rows
• Dark	blue	axis	shows	elapsed	time	
when	committing	after	every	row
• Light	blue	axis	shows	elapsed	time	
when	committing	only	once	after	
all	data	is	loaded
13
Autocommit
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Autocommit
• The	driver	commits	every	DML	on	your	behalf,	implicitly
• That	is,	for	every single	INSERT,	UPDATE,	DELETE,	MERGE	will	be	a	COMMIT
• Implies	a	second	roundtrip to	the	databases	for	every DML	operation
• Forces	database	to	write	to	disk,	perhaps	unnecessarily
• Means	you	can	never	ROLLBACK	your	changes
• It	is	turned	on	by	default
– connection.setAutoCommit(false)
What	is	the	Autocommit?
14
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		| 15
PreparedStatement stmt = conn.prepareStatement(
"INSERT INTO TEST (id, text, created_tms, last_upd_tms) VALUES
(?,?,SYSDATE,SYSDATE)");
long start = System.currentTimeMillis();
for(int i=1;i<=rows;i++) {
stmt.setInt(1, i);
stmt.setString(2, "This is the row with the value of " + i);
stmt.executeUpdate();
conn.commit();
}
long end = System.currentTimeMillis();
System.out.println("Elapsed time(ms) for commit after every row: " + (end-start));
Autocommit
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		| 16
PreparedStatement stmt = conn.prepareStatement(
"INSERT INTO TEST (id, text, created_tms, last_upd_tms) VALUES
(?,?,SYSDATE,SYSDATE)");
long start = System.currentTimeMillis();
for(int i=1;i<=rows;i++) {
stmt.setInt(1, i);
stmt.setString(2, "This is the row with the value of " + i);
stmt.executeUpdate();
}
conn.commit();
long end = System.currentTimeMillis();
System.out.println("Elapsed time(ms) for commit at the end: " + (end-start));
Autocommit
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Bulk	processing
Confidential	– Oracle	Internal/Restricted/Highly	Restricted 17
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Bulk	processing
• What	would	you	rather	do	on	a	table	with	10	million	rows:
18
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Bulk	processing
• What	would	you	rather	do	on	a	table	with	10	million	rows:
PreparedStatement stmt = conn.prepareStatement(
"SELECT value FROM PURCHASE WHERE tms > '2016-09-01'");
ResultSet rslt = stmt.executeQuery();
while (rslt.next()) {
val += rslt.getInt(1);
}
19
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Bulk	processing
• What	would	you	rather	do	on	a	table	with	10	million	rows:
PreparedStatement stmt = conn.prepareStatement(
"SELECT value FROM PURCHASE WHERE tms > '2016-09-01'");
ResultSet rslt = stmt.executeQuery();
while (rslt.next()) {
val += rslt.getInt(1);
}
PreparedStatement stmt = conn.prepareStatement(
"SELECT SUM(value) FROM PURCHASE WHERE tms > '2016-09-01'");
ResultSet rslt = stmt.executeQuery();
rslt.next();
val = rslt.getInt(1);
20
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Bulk	processing
• What	would	you	rather	do	on	a	table	with	10	million	rows:
PreparedStatement stmt = conn.prepareStatement(
"SELECT value FROM PURCHASE WHERE tms > '2016-09-01'");
ResultSet rslt = stmt.executeQuery();
while (rslt.next()) {
val += rslt.getInt(1);
}
PreparedStatement stmt = conn.prepareStatement(
"SELECT SUM(value) FROM PURCHASE WHERE tms > '2016-09-01'");
ResultSet rslt = stmt.executeQuery();
rslt.next();
val = rslt.getInt(1);
21
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		| 22
PreparedStatement stmt = conn.prepareStatement(
"INSERT INTO TEST (id, text, created_tms, last_upd_tms) VALUES
(?,?,SYSDATE,SYSDATE)");
long start = System.currentTimeMillis();
for(int i=1;i<=rows;i++) {
stmt.setInt(1, i);
stmt.setString(2, "This is the row with the value of " + i);
stmt.executeUpdate();
}
conn.commit();
long end = System.currentTimeMillis();
System.out.println("Elapsed time(ms) for row by row insert: " + (end-start));
Bulk	processing
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		| 23
PreparedStatement stmt = conn.prepareStatement(
"INSERT INTO TEST (id, text, created_tms, last_upd_tms) VALUES
(?,?,SYSDATE,SYSDATE)");
long start = System.currentTimeMillis();
for(int i=1;i<=rows;i++) {
stmt.setInt(1, i);
stmt.setString(2, "This is the row with the value of " + i);
stmt.addBatch();
}
stmt.executeBatch();
conn.commit();
long end = System.currentTimeMillis();
System.out.println("Elapsed time(ms) for set based insert: " + (end-start));
Bulk	processing
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
4229
4055 4118
76 84 72
0
500
1000
1500
2000
2500
3000
3500
4000
4500
Test	run	1 Test	run	2 Test	run	3
Milliseconds
Insert	every	row
Set	based	insert
• Three	test	runs	inserting	10k	rows
• Dark	blue	axis	shows	elapsed	time	
of	individual	inserts
• Light	blue	axis	shows	elapsed	time	
of	set	based	inserts
24
Bulk	processing
Copyright	©	2016, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Bulk	processing
• Databases	work	best	with	set	based	processing
• Process	as	much	as	possible	on	the	side	where	it	makes	most	sense
• Generally,	a	single	SQL	statement	execution	is	the	fastest
• Avoids	unnecessary	roundtrips
25
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Fetch	size
Confidential	– Oracle	Internal/Restricted/Highly	Restricted 26
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Fetch	size
• Driver	fetches	more	than	one	row	from	the	database	at	once
• Avoids	unnecessary	roundtrips
• Great	if	you	know	you	will	fetch	many	rows
• Default	is	set	to	10
• statement.setFetchSize(int rows);
Implicit	and	proactive	fetching
27
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Savepoints
Confidential	– Oracle	Internal/Restricted/Highly	Restricted 28
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		| 29
INSERT INTO…
UPDATE…
INSERT INTO…
SAVEPOINT gerald1;
UPDATE…
UPDATE…
SAVEPOINT gerald2;
DELETE FROM…
ROLLBACK TO SAVEPOINT gerald1;
INSERT INTO…
COMMIT;
Savepoints
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Savepoints
• Save	the	intermediate	state(s)	of	a	long	running	transaction
• If	workload	fails	you	don’t	have	to	start	from	scratch
• Avoids	redoing	work	that	has	already	happened
Safe	the	progress	of	your	transaction
30
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
KISS
Keep	it	simple	SQL
Confidential	– Oracle	Internal/Restricted/Highly	Restricted 31
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
KISS
• The	simpler	the	SQL,	the	easier	to	maintain
• The	simpler	the	SQL,	the	faster	to	optimize
• The	simpler	the	SQL,	the	less	likely	for	the	optimizer	to	get	it	wrong
Keep	it	simple	SQL
32
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		| 33
SELECT (CASE
WHEN v.code = ‘ABC’ THEN 1
WHEN v.code = ‘DEF’ THEN 2
WHEN v.code = ‘GHI’ THEN 3
WHEN v.code = ‘YYZ’ THEN 4
ELSE 5
END) AS code,
v.fk_column AS fk_column,
v.fk_list AS fk_list,
v.grp_id AS grp_id
FROM (SELECT S1.grp_id,
S1.code,
MIN (S1.fk_column) AS fk_column,
LTRIM (MAX (SYS_CONNECT_BY_PATH (S1.fk_column, ‘;’))
KEEP (DENSE_RANK LAST ORDER BY S1.curr),
‘;’) AS fk_list
FROM (SELECT grp_id,
code,
fk_column,
ROW_NUMBER ()
OVER (PARTITION BY grp_id, code
ORDER BY fk_column) AS curr,
ROW_NUMBER ()
OVER (PARTITION BY grp_id, code
ORDER BY fk_column) – 1 AS prev
FROM quite_a_big_table
WHERE grp_id > 0) S1
GROUP BY S1.grp_id, S1.code
CONNECT BY S1.prev = PRIOR S1.curr
AND S1.grp_id = PRIOR S1.grp_id
START WITH curr = 1) v
ORDER BY grp_id, code
KISS
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		| 34
SELECT (CASE
WHEN v.code = ‘ABC’ THEN 1
WHEN v.code = ‘DEF’ THEN 2
WHEN v.code = ‘GHI’ THEN 3
WHEN v.code = ‘YYZ’ THEN 4
ELSE 5
END) AS code,
v.fk_column AS fk_column,
v.fk_list AS fk_list,
v.grp_id AS grp_id
FROM (SELECT grp_id,
code,
MIN (fk_column) AS fk_column,
LISTAGG(fk_column, ‘;’)
WITHIN GROUP (ORDER BY fk_column) AS fk_list
FROM quite_a_big_table
WHERE grp_id > 0
GROUP BY grp_id, code) v
ORDER BY grp_id, code
KISS
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
KISS	- Common	table	expression
• Specifies	a	sub	query	as	a	common	table	in	a	SELECT	statement
– A	table	or	subquery	that	is	read	more	than	once	by	the	same	statement
• Caches	results	of	sub	query	in	memory	on	DB	server
• Avoids	reading	the	same	tables	more	than	once,	hence	reducing	I/O
• Better	readability	for	your	SQL
A	handy	and	fast	helper	for	common	subqueries
35
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		| 36
WITH active_users (id, http_session, last_active) AS
(
SELECT id, http_session_id, last_active_tms
FROM all_active_users
WHERE …
)
SELECT a.id, a.http_session, p.first_name, p.last_name, p.email_address
FROM active_users a
LEFT JOIN personal_accounts p ON p.email_address = a.id
LEFT JOIN business_accounts b ON b.business_id = a.id;
KISS	- Common	table	expression
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		| 37
WITH cte (n) AS
(
SELECT 1 FROM dual
UNION ALL
SELECT n + 1 FROM cte WHERE n < 5
)
SELECT * FROM cte;
N
----------
1
2
3
4
5
KISS	- Common	table	expression
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Parallel	queries
Confidential	– Oracle	Internal/Restricted/Highly	Restricted 38
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		| 39
SELECT id, create_date, first_name, last_name, email_address, http_session_id,
last_active, avatar, twitter_handle, github_profile, stars
FROM super_big_table
INNER JOIN another_super_big_table
ON (a.id = http_session_id)
WHERE id IN (SELECT id FROM active_logons_past_24_hours)
AND stars > 25
AND last_active > SYSDATE – 356;
SELECT /*+ PARALLEL */ id, create_date, first_name, last_name, email_address,
http_session_id, last_active, avatar, twitter_handle, github_profile, stars
FROM super_big_table
INNER JOIN another_super_big_table
ON (a.id = http_session_id)
WHERE id IN (SELECT id FROM active_logons_past_24_hours)
AND stars > 25
AND last_active > SYSDATE – 356;
Parallel	queries
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Parallel	queries
• Queries	by	default	run	single	threaded
– One	process/thread
– Running	on	one	CPU
– Doing	all	the	I/O	by	itself
• Long	running	and/or	I/O	intensive	queries	might	benefit	from	parallelization
• Easy	to	enable
• BUT not	a	universal	performance	booster!
Use	the	full	power	of	the	database	server
40
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Explain	plans
Confidential	– Oracle	Internal/Restricted/Highly	Restricted 41
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		| 42
EXPLAIN PLAN FOR
<your SQL statement here>
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY());
Explain	plans
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		| 43
EXPLAIN PLAN FOR
WITH active_users (id, http_session, last_active) AS
(
SELECT id, http_session_id, last_active_tms
FROM all_active_users
WHERE …
)
SELECT a.id, a.http_session, p.first_name, p.last_name, p.email_address
FROM active_users a
LEFT JOIN personal_accounts p ON p.email_address = a.id
LEFT JOIN business_accounts b ON b.business_id = a.id;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY());
Explain	plans
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		| 44
Plan hash value: 1707074151
-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 100M| 39G| 1169 (100)| 00:00:01 |
|* 1 | HASH JOIN RIGHT OUTER | | 100M| 39G| 1169 (100)| 00:00:01 |
| 2 | INDEX FULL SCAN | BA_IDX01 | 1 | 13 | 0 (0)| 00:00:01 |
|* 3 | HASH JOIN RIGHT OUTER| | 100M| 38G| 854 (100)| 00:00:01 |
| 4 | TABLE ACCESS FULL | PERSONAL_ACCOUNTS | 1 | 385 | 2 (0)| 00:00:01 |
| 5 | TABLE ACCESS FULL | ALL_ACTIVE_USERS | 100M| 2479M| 537 (100)| 00:00:01 |
-------------------------------------------------------------------------------------------
Explain	plans
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Explain	plans
• Explain	plans	give	you	the	steps	that	are	executed	by	the	DB
• It	allows	you	to	spot	outliers	that	might	need	further	tuning
• Generating	explain	plans	is	easy
Look	beyond	your	SQL	statement
45
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
SQL	wait	events
Confidential	– Oracle	Internal/Restricted/Highly	Restricted 46
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		| 47
SQL> SELECT sid, event, wait_class
FROM v$session_wait
WHERE wait_class != 'Idle';
SID EVENT WAIT_CLASS
------- --------------------- ----------
265 direct path read User I/O
269 enq: TM - contention Application
274 direct path read User I/O
291 direct path read User I/O
293 enq: TM - contention Application
294 enq: TM – contention Application
296 enq: TM – contention Application
302 enq: TM - contention Application
SQL	wait	events
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
SQL	wait	events
• Every	SQL	statement	can	be	traced	on	its	activity
• Every	SQL	statement	records	on	what	it’s	waiting	for
• You	can	usually	just	query	that	information
Looking	beyond	the	SQL	statement
48

Contenu connexe

Tendances

Oracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ OverviewOracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ OverviewKris Rice
 
Pimping SQL Developer and Data Modeler
Pimping SQL Developer and Data ModelerPimping SQL Developer and Data Modeler
Pimping SQL Developer and Data ModelerKris Rice
 
Oracle Database 12c Feature Support in Oracle SQL Developer
Oracle Database 12c Feature Support in Oracle SQL DeveloperOracle Database 12c Feature Support in Oracle SQL Developer
Oracle Database 12c Feature Support in Oracle SQL DeveloperJeff Smith
 
Change Management for Oracle Database with SQLcl
Change Management for Oracle Database with SQLcl Change Management for Oracle Database with SQLcl
Change Management for Oracle Database with SQLcl Jeff Smith
 
Developing Applications with MySQL and Java
Developing Applications with MySQL and JavaDeveloping Applications with MySQL and Java
Developing Applications with MySQL and JavaMark Matthews
 
Dimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developerDimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developerJeff Smith
 
Milomir Vojvodic - Business Analytics And Big Data Partner Forum Dubai 15.11.
Milomir Vojvodic - Business Analytics And Big Data Partner Forum Dubai 15.11.Milomir Vojvodic - Business Analytics And Big Data Partner Forum Dubai 15.11.
Milomir Vojvodic - Business Analytics And Big Data Partner Forum Dubai 15.11.Milomir Vojvodic
 
Polymorphic Table Functions in SQL
Polymorphic Table Functions in SQLPolymorphic Table Functions in SQL
Polymorphic Table Functions in SQLChris Saxon
 
Oracle SQL Developer: 3 Features You're Not Using But Should Be
Oracle SQL Developer: 3 Features You're Not Using But Should BeOracle SQL Developer: 3 Features You're Not Using But Should Be
Oracle SQL Developer: 3 Features You're Not Using But Should BeJeff Smith
 
Debugging PL/SQL from your APEX Applications with Oracle SQL Developer
Debugging PL/SQL from your APEX Applications with Oracle SQL DeveloperDebugging PL/SQL from your APEX Applications with Oracle SQL Developer
Debugging PL/SQL from your APEX Applications with Oracle SQL DeveloperJeff Smith
 
Performance tuning how to write and run correctly sql statement
Performance tuning how to write and run correctly sql statementPerformance tuning how to write and run correctly sql statement
Performance tuning how to write and run correctly sql statementRonald Francisco Vargas Quesada
 
What's New with 12c ASM
What's New with 12c ASMWhat's New with 12c ASM
What's New with 12c ASMJason Arneil
 
Oracle SQL Developer version 4.0 New Features Overview
Oracle SQL Developer version 4.0 New Features OverviewOracle SQL Developer version 4.0 New Features Overview
Oracle SQL Developer version 4.0 New Features OverviewJeff Smith
 
MAA Best Practices for Oracle Database 19c
MAA Best Practices for Oracle Database 19cMAA Best Practices for Oracle Database 19c
MAA Best Practices for Oracle Database 19cMarkus Michalewicz
 
Oracle Database Management REST API
Oracle Database Management REST APIOracle Database Management REST API
Oracle Database Management REST APIJeff Smith
 
Oracle engineered systems executive presentation
Oracle engineered systems executive presentationOracle engineered systems executive presentation
Oracle engineered systems executive presentationOTN Systems Hub
 

Tendances (20)

Performance in the Oracle Cloud
Performance in the Oracle CloudPerformance in the Oracle Cloud
Performance in the Oracle Cloud
 
UKOUG
UKOUG UKOUG
UKOUG
 
Oracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ OverviewOracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ Overview
 
AWR and ASH in an EM12c World
AWR and ASH in an EM12c WorldAWR and ASH in an EM12c World
AWR and ASH in an EM12c World
 
Pimping SQL Developer and Data Modeler
Pimping SQL Developer and Data ModelerPimping SQL Developer and Data Modeler
Pimping SQL Developer and Data Modeler
 
Oracle Database 12c Feature Support in Oracle SQL Developer
Oracle Database 12c Feature Support in Oracle SQL DeveloperOracle Database 12c Feature Support in Oracle SQL Developer
Oracle Database 12c Feature Support in Oracle SQL Developer
 
Change Management for Oracle Database with SQLcl
Change Management for Oracle Database with SQLcl Change Management for Oracle Database with SQLcl
Change Management for Oracle Database with SQLcl
 
Developing Applications with MySQL and Java
Developing Applications with MySQL and JavaDeveloping Applications with MySQL and Java
Developing Applications with MySQL and Java
 
Dimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developerDimensional modeling in oracle sql developer
Dimensional modeling in oracle sql developer
 
Milomir Vojvodic - Business Analytics And Big Data Partner Forum Dubai 15.11.
Milomir Vojvodic - Business Analytics And Big Data Partner Forum Dubai 15.11.Milomir Vojvodic - Business Analytics And Big Data Partner Forum Dubai 15.11.
Milomir Vojvodic - Business Analytics And Big Data Partner Forum Dubai 15.11.
 
Polymorphic Table Functions in SQL
Polymorphic Table Functions in SQLPolymorphic Table Functions in SQL
Polymorphic Table Functions in SQL
 
Oracle SQL Developer: 3 Features You're Not Using But Should Be
Oracle SQL Developer: 3 Features You're Not Using But Should BeOracle SQL Developer: 3 Features You're Not Using But Should Be
Oracle SQL Developer: 3 Features You're Not Using But Should Be
 
Debugging PL/SQL from your APEX Applications with Oracle SQL Developer
Debugging PL/SQL from your APEX Applications with Oracle SQL DeveloperDebugging PL/SQL from your APEX Applications with Oracle SQL Developer
Debugging PL/SQL from your APEX Applications with Oracle SQL Developer
 
Performance tuning how to write and run correctly sql statement
Performance tuning how to write and run correctly sql statementPerformance tuning how to write and run correctly sql statement
Performance tuning how to write and run correctly sql statement
 
What's New with 12c ASM
What's New with 12c ASMWhat's New with 12c ASM
What's New with 12c ASM
 
Oracle SQL Developer version 4.0 New Features Overview
Oracle SQL Developer version 4.0 New Features OverviewOracle SQL Developer version 4.0 New Features Overview
Oracle SQL Developer version 4.0 New Features Overview
 
MAA Best Practices for Oracle Database 19c
MAA Best Practices for Oracle Database 19cMAA Best Practices for Oracle Database 19c
MAA Best Practices for Oracle Database 19c
 
Oracle Database Management REST API
Oracle Database Management REST APIOracle Database Management REST API
Oracle Database Management REST API
 
Why Use an Oracle Database?
Why Use an Oracle Database?Why Use an Oracle Database?
Why Use an Oracle Database?
 
Oracle engineered systems executive presentation
Oracle engineered systems executive presentationOracle engineered systems executive presentation
Oracle engineered systems executive presentation
 

Similaire à Top 10 SQL Performance tips & tricks for Java Developers

Latin America Tour 2019 - pattern matching
Latin America Tour 2019 - pattern matchingLatin America Tour 2019 - pattern matching
Latin America Tour 2019 - pattern matchingConnor McDonald
 
Regular Expressions with full Unicode support
Regular Expressions with full Unicode supportRegular Expressions with full Unicode support
Regular Expressions with full Unicode supportMartinHanssonOracle
 
Oracle 12c Application development
Oracle 12c Application developmentOracle 12c Application development
Oracle 12c Application developmentpasalapudi123
 
Pattern Matching with SQL - APEX World Rotterdam 2019
Pattern Matching with SQL - APEX World Rotterdam 2019Pattern Matching with SQL - APEX World Rotterdam 2019
Pattern Matching with SQL - APEX World Rotterdam 2019Connor McDonald
 
Graal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them AllGraal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them AllThomas Wuerthinger
 
Advanced SQL - Quebec 2014
Advanced SQL - Quebec 2014Advanced SQL - Quebec 2014
Advanced SQL - Quebec 2014Connor McDonald
 
18c and 19c features for DBAs
18c and 19c features for DBAs18c and 19c features for DBAs
18c and 19c features for DBAsConnor McDonald
 
20160821 coscup-my sql57docstorelab01
20160821 coscup-my sql57docstorelab0120160821 coscup-my sql57docstorelab01
20160821 coscup-my sql57docstorelab01Ivan Ma
 
#dbhouseparty - Real World Problem Solving with SQL
#dbhouseparty - Real World Problem Solving with SQL#dbhouseparty - Real World Problem Solving with SQL
#dbhouseparty - Real World Problem Solving with SQLTammy Bednar
 
18(ish) Things You'll Love About Oracle Database 18c
18(ish) Things You'll Love About Oracle Database 18c18(ish) Things You'll Love About Oracle Database 18c
18(ish) Things You'll Love About Oracle Database 18cChris Saxon
 
Recent Changes and Challenges for Future Presto
Recent Changes and Challenges for Future PrestoRecent Changes and Challenges for Future Presto
Recent Changes and Challenges for Future PrestoKai Sasaki
 
Latin America Tour 2019 - 18c and 19c featues
Latin America Tour 2019   - 18c and 19c featuesLatin America Tour 2019   - 18c and 19c featues
Latin America Tour 2019 - 18c and 19c featuesConnor McDonald
 
MySQL Optimizer: What's New in 8.0
MySQL Optimizer: What's New in 8.0MySQL Optimizer: What's New in 8.0
MySQL Optimizer: What's New in 8.0Manyi Lu
 
What Every Client Should Do on Their Oracle SOA Projects
What Every Client Should Do on Their Oracle SOA ProjectsWhat Every Client Should Do on Their Oracle SOA Projects
What Every Client Should Do on Their Oracle SOA ProjectsRevelation Technologies
 
Mysql Performance Schema - fossasia 2016
Mysql Performance Schema - fossasia 2016Mysql Performance Schema - fossasia 2016
Mysql Performance Schema - fossasia 2016Mayank Prasad
 
How to analyze and tune sql queries for better performance vts2016
How to analyze and tune sql queries for better performance vts2016How to analyze and tune sql queries for better performance vts2016
How to analyze and tune sql queries for better performance vts2016oysteing
 
“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the CoreC4Media
 
Java and Serverless - A Match Made In Heaven, Part 2
Java and Serverless - A Match Made In Heaven, Part 2Java and Serverless - A Match Made In Heaven, Part 2
Java and Serverless - A Match Made In Heaven, Part 2Curity
 
Explain the explain_plan
Explain the explain_planExplain the explain_plan
Explain the explain_planMaria Colgan
 

Similaire à Top 10 SQL Performance tips & tricks for Java Developers (20)

Latin America Tour 2019 - pattern matching
Latin America Tour 2019 - pattern matchingLatin America Tour 2019 - pattern matching
Latin America Tour 2019 - pattern matching
 
Regular Expressions with full Unicode support
Regular Expressions with full Unicode supportRegular Expressions with full Unicode support
Regular Expressions with full Unicode support
 
Oracle 12c Application development
Oracle 12c Application developmentOracle 12c Application development
Oracle 12c Application development
 
Pattern Matching with SQL - APEX World Rotterdam 2019
Pattern Matching with SQL - APEX World Rotterdam 2019Pattern Matching with SQL - APEX World Rotterdam 2019
Pattern Matching with SQL - APEX World Rotterdam 2019
 
Graal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them AllGraal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them All
 
Advanced SQL - Quebec 2014
Advanced SQL - Quebec 2014Advanced SQL - Quebec 2014
Advanced SQL - Quebec 2014
 
18c and 19c features for DBAs
18c and 19c features for DBAs18c and 19c features for DBAs
18c and 19c features for DBAs
 
20160821 coscup-my sql57docstorelab01
20160821 coscup-my sql57docstorelab0120160821 coscup-my sql57docstorelab01
20160821 coscup-my sql57docstorelab01
 
#dbhouseparty - Real World Problem Solving with SQL
#dbhouseparty - Real World Problem Solving with SQL#dbhouseparty - Real World Problem Solving with SQL
#dbhouseparty - Real World Problem Solving with SQL
 
18(ish) Things You'll Love About Oracle Database 18c
18(ish) Things You'll Love About Oracle Database 18c18(ish) Things You'll Love About Oracle Database 18c
18(ish) Things You'll Love About Oracle Database 18c
 
Recent Changes and Challenges for Future Presto
Recent Changes and Challenges for Future PrestoRecent Changes and Challenges for Future Presto
Recent Changes and Challenges for Future Presto
 
Latin America Tour 2019 - 18c and 19c featues
Latin America Tour 2019   - 18c and 19c featuesLatin America Tour 2019   - 18c and 19c featues
Latin America Tour 2019 - 18c and 19c featues
 
MySQL Optimizer: What's New in 8.0
MySQL Optimizer: What's New in 8.0MySQL Optimizer: What's New in 8.0
MySQL Optimizer: What's New in 8.0
 
What Every Client Should Do on Their Oracle SOA Projects
What Every Client Should Do on Their Oracle SOA ProjectsWhat Every Client Should Do on Their Oracle SOA Projects
What Every Client Should Do on Their Oracle SOA Projects
 
Mysql Performance Schema - fossasia 2016
Mysql Performance Schema - fossasia 2016Mysql Performance Schema - fossasia 2016
Mysql Performance Schema - fossasia 2016
 
How to analyze and tune sql queries for better performance vts2016
How to analyze and tune sql queries for better performance vts2016How to analyze and tune sql queries for better performance vts2016
How to analyze and tune sql queries for better performance vts2016
 
201810 td tech_talk
201810 td tech_talk201810 td tech_talk
201810 td tech_talk
 
“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core
 
Java and Serverless - A Match Made In Heaven, Part 2
Java and Serverless - A Match Made In Heaven, Part 2Java and Serverless - A Match Made In Heaven, Part 2
Java and Serverless - A Match Made In Heaven, Part 2
 
Explain the explain_plan
Explain the explain_planExplain the explain_plan
Explain the explain_plan
 

Dernier

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
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
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
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
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
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
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 

Dernier (20)

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
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
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
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
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
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
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 

Top 10 SQL Performance tips & tricks for Java Developers