SlideShare uma empresa Scribd logo
1 de 38
Oracle 12c SQL New
Features
Emrah Mete
Senior DWH&BI Specialist
Board member of troug
Oracle cloud day - 19.11.2015TROUG
Emrah mete
- Yıldız Teknik Üniversitesi – Bilgisayar Mühendisliği
- Deneyim
- Software Developement Specialist @Turkcell
- Senior BI Consultant @i2i-Systems
- Senior BI Speacilist @HititCs
- Teknik Uzmanlık
- 5+ Oracle SQL, Oracle PL/SQL, ETL, DWH, BI
- Kurucu Üye ve Yönetim Kurulu Üyesi @TROUG
- Moderatör @OracleTurk
- Blogger
- https://emrahmete.wordpress.com/ (Türkçe)
- https://emrahmeteen.wordpress.com/ (İngilizce)
- Oracle Certified SQL Expert
- Oracle Database Developer Choice Awards, SQL Category 2015 Winner!!!
https://emrahmete.wordpress.com/about/
https://emrahmete.wordpress.com/about/
LiveSQL!!!
https://livesql.oracle.com
1.
Top-N Queries
select * from
(select * from
hr.employees
order by salary desc)
where rownum<=3;
select * from hr.employees
order by salary desc
fetch first 3 rows only;
Before 12c 12c
Employees tablosunda maaşı en yüksek olan 3 kişiyi
listeleyelim.
select * from
(select * from
(select * from
(select * from
hr.employees
order by salary desc)
where rownum<=7)
order by salary asc)
where rownum=1;
select * from
hr.employees
order by salary desc
offset 6 rows
fetch first 1 rows only;
Before 12c 12c
Employees tablosunda maaşı en yüksek olan 7. kişiyi
listeleyelim.
select * from
hr.employees
order by salary desc
fetch first 20 percent rows only;
12c
Employees tablosunda maaşı en yüksek olan %20’lik çalışan
grubunu listeleyelim
2.
Identıty columns
- Trigger tabanlı çözüm.
- Bir tablo yarat.
- bir sequence yarat.
- tabloya, ınsert isleminden once çalışacak bır
trıgger tanımla ve bu tırgger ıcınde, yarattıgın sequence’ı
her yenı ınsert’de bir arttırak yenı gelen kaydın ılgılı
kolonuna yaz.
Before 12c
ID kolonu otomatik artan bir tablo yaratalım.
CREATE TABLE TABTEST (
tabpk NUMBER GENERATED ALWAYS AS IDENTITY,
tabname VARCHAR2(50),
tabprop NUMBER,
tabadd VARCHAR2(50)
);
12c
ID kolonu otomatik artan bir tablo yaratalım.
CREATE TABLE TABTEST
(
tabpk NUMBER GENERATED ALWAYS AS IDENTITY
(START WITH 1 INCREMENT BY 5),
tabname VARCHAR2(50),
tabprop NUMBER,
tabadd VARCHAR2(50)
);
12c
Otomatık artan kolonumuzu tetıkleyen sequence’ı
özellestırebılırmıyız?
3.
Approx_Count_Distinct
Kayıt Sayısı: 2M
Distinct satır sayısı: 900K
select
approx_count_distinct(groupno)
from appxcnt;
çalışma süresi : 3.001 sn
sonuç : 867.159
Kayıt Sayısı: 2M
Distinct satır sayısı: 900K
Select
count(dıstınct groupno)
from appxcnt;
çalışma süresi : 8.275 sn
sonuç : 900.000
Approx_count_dıstınctCOUNT(DISTINCT)
Approx_count_dıstınct vs count(dıstınct) performans
karşılaştırması?
4.
JSON SUPPORT
CREATE TABLE applicationLog
(
appId NUMBER,
appName VARCHAR2(30),
appLog CLOB,
CONSTRAINT applicationLogCons CHECK (appLog IS JSON)
);
12c
JSON deger tutabilen kolonu olan bır tablo yaratalım
insert into applicationLog values (1,'WebContent',
'{
"ad" : "veli",
"soyad" : "mert",
"tckn" : "147456741232",
"adres" : { "ilce" :"Uskudar",
"sokak" :"Lider",
"numara" :"568",
"il" :"Istanbul"}
}‘
);
12c
Yarattıgımız tabloya ıcerısınde json ıfade barındıran bır
kayıt ekleyelım
select *
from applicationLog t1
where t1.applog.ad='veli';
12c
Json deger ıceren kolonunda, ad elementı «veli» olan
kayıtları lısteleyelım
select
JSON_VALUE(t1.appLog, '$.ad') AS isim,
JSON_VALUE(t1.appLog, '$.soyad') AS soyisim,
JSON_VALUE(t1.appLog, '$.tckn') AS tckimlik
from applicationLog t1;
12c
Json deger ıceren kolonumuzdakı tum AD, SOYAD, TCKN
degerlerını lısteleyelım
- JSON_EXIST
- JSON_QUERY
- JSON_TABLE
- JSON_TEXTCONTAINS
- IS JSON
12c
Dıger JSON fonksyonları
5.
Inline Procedures/Functions
WITH
FUNCTION square(p_x NUMBER) RETURN NUMBER AS
BEGIN
RETURN p_x*p_x;
END;
SELECT square(10) FROM dual;
12c
Inlıne procedures/functıons
6.
LATERAL Inline Views
select dx.first_name, dx.last_name, d.department_name
from hr.departments d,
(select * from hr.employees e where
e.department_id = d.department_id) dx;
12c before
select dx.first_name, dx.last_name, d.department_name
from hr.departments d,
LATERAL(select * from hr.employees e where
e.department_id = d.department_id) dx;
12c
7.
CROSS APPLY / OUTER APPLY
SELECT department_name,first_name
FROM hr.departments d
CROSS APPLY
(SELECT first_name
FROM hr.employees e
WHERE e.department_id = d.department_id);
12c CROSS APPLY
SELECT department_name,first_name
FROM hr.departments d
OUTER APPLY
(SELECT first_name
FROM hr.employees e
where e.department_id = d.department_id);
12c OUTER APPLY
8.
Pattern matchıng
– Finansal Uygulamalarda.
– Ürün fiyatlarının zamana karşı değişimini incelemede.
– Hisse senetlerinin zamana karşı değişmilerini takip edip aksiyon
almada.
– Güvenlik uygulamalarında sıra dışı hareketleri tesbit edip aksiyon
almada.
– Fraud tesbitlerinde.
– Sensörlerden gelen verinin zamansal olarak incelenmesinde.
– Complex Event Processing ihtiyacının doğduğu yerlerde.
12c Pattern Matchıng
9.
INVISIBLE COLUMN
CREATE TABLE invColExm
(
colA NUMBER,
colB NUMBER INVISIBLE,
colC VARCHAR2 (100)
);
- SELECT * FROM invColExm;
- DESC invColExm;
- %ROWTYPE ile referans gösterilen
tabloda invisible kolona erişilemez
buradada görünmezdir.
- INSERT INTO invColExm (colA, colB,
colC)
VALUES (12, 10, ‘Deneme’);
- UPDATE invColExm
SET colB = 20;
- DELETE invColExm
WHERE colB = 20;
- ALTER TABLE invColExm
MODIFY colB VISIBLE;
INVISIBLE COLUMNS
10.
Truncate cascade
truncate table t3;
TRUNCATE CASCADE
T1
T2
T3
T3.x
T2.y
T2.b
T1.a
truncate table t3 cascade;
12c Before
12c
tesekkurler!
Sorular?
@emrahmete (twitter)
emrahmete@gmail.com
https://emrahmete.wordpress.com
https://docs.oracle.com/database/121/SQLRF/toc.htm
https://oracle-base.com/
http://antognini.ch/2014/10/the-approx_count_distinct-function-a-test-case/
https://docs.oracle.com/database/121/ADXDB/json.htm
http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/1965433.pdf
https://jonathanlewis.wordpress.com/2013/07/01/12c-determinism/
http://www.oracle.com/technetwork/database/features/plsql/new-plsql-in-12c-2372822.pdf
Referanslar

Mais conteúdo relacionado

Destaque

Oracle’ın parallel execution yetenekleri ve performans
Oracle’ın parallel execution yetenekleri ve performansOracle’ın parallel execution yetenekleri ve performans
Oracle’ın parallel execution yetenekleri ve performansEmrah METE
 
Oracle PL/SQL Best Practices
Oracle PL/SQL Best PracticesOracle PL/SQL Best Practices
Oracle PL/SQL Best PracticesEmrah METE
 
Veri Ambarları için Oracle'ın Analitik SQL Desteği
Veri Ambarları için Oracle'ın Analitik SQL DesteğiVeri Ambarları için Oracle'ın Analitik SQL Desteği
Veri Ambarları için Oracle'ın Analitik SQL DesteğiEmrah METE
 
The Top 12 Features new to Oracle 12c
The Top 12 Features new to Oracle 12cThe Top 12 Features new to Oracle 12c
The Top 12 Features new to Oracle 12cDavid Yahalom
 
Why Upgrade to Oracle Database 12c?
Why Upgrade to Oracle Database 12c?Why Upgrade to Oracle Database 12c?
Why Upgrade to Oracle Database 12c?DLT Solutions
 
GNW01: In-Memory Processing for Databases
GNW01: In-Memory Processing for DatabasesGNW01: In-Memory Processing for Databases
GNW01: In-Memory Processing for DatabasesTanel Poder
 
Top 10 Reasons Events Are the Best B2B Marketing Channel in the World
Top 10 Reasons Events Are the Best B2B Marketing Channel in the WorldTop 10 Reasons Events Are the Best B2B Marketing Channel in the World
Top 10 Reasons Events Are the Best B2B Marketing Channel in the WorldDoubleDutch
 
Gluent New World #02 - SQL-on-Hadoop : A bit of History, Current State-of-the...
Gluent New World #02 - SQL-on-Hadoop : A bit of History, Current State-of-the...Gluent New World #02 - SQL-on-Hadoop : A bit of History, Current State-of-the...
Gluent New World #02 - SQL-on-Hadoop : A bit of History, Current State-of-the...Mark Rittman
 
Oracle Enterprise Manager 12c: The Oracle Monitoring tool of choice – Why yo...
Oracle Enterprise Manager 12c:  The Oracle Monitoring tool of choice – Why yo...Oracle Enterprise Manager 12c:  The Oracle Monitoring tool of choice – Why yo...
Oracle Enterprise Manager 12c: The Oracle Monitoring tool of choice – Why yo...Jeff Kayser
 
Oracle database 12c new features
Oracle database 12c new featuresOracle database 12c new features
Oracle database 12c new featuresRemote DBA Services
 
Oracle database 12c new features
Oracle database 12c new featuresOracle database 12c new features
Oracle database 12c new featuresJakkrapat S.
 
Oracle Enterprise Manager Cloud Control 12c
Oracle Enterprise Manager Cloud Control 12cOracle Enterprise Manager Cloud Control 12c
Oracle Enterprise Manager Cloud Control 12cOrhan ERIPEK
 
Best New Features of Oracle Database 12c
Best New Features of Oracle Database 12cBest New Features of Oracle Database 12c
Best New Features of Oracle Database 12cPini Dibask
 

Destaque (15)

Oracle’ın parallel execution yetenekleri ve performans
Oracle’ın parallel execution yetenekleri ve performansOracle’ın parallel execution yetenekleri ve performans
Oracle’ın parallel execution yetenekleri ve performans
 
Oracle PL/SQL Best Practices
Oracle PL/SQL Best PracticesOracle PL/SQL Best Practices
Oracle PL/SQL Best Practices
 
Veri Ambarları için Oracle'ın Analitik SQL Desteği
Veri Ambarları için Oracle'ın Analitik SQL DesteğiVeri Ambarları için Oracle'ın Analitik SQL Desteği
Veri Ambarları için Oracle'ın Analitik SQL Desteği
 
Oracle Cloud As Services
Oracle Cloud As ServicesOracle Cloud As Services
Oracle Cloud As Services
 
Bigdata : Big picture
Bigdata : Big pictureBigdata : Big picture
Bigdata : Big picture
 
The Top 12 Features new to Oracle 12c
The Top 12 Features new to Oracle 12cThe Top 12 Features new to Oracle 12c
The Top 12 Features new to Oracle 12c
 
Why Upgrade to Oracle Database 12c?
Why Upgrade to Oracle Database 12c?Why Upgrade to Oracle Database 12c?
Why Upgrade to Oracle Database 12c?
 
GNW01: In-Memory Processing for Databases
GNW01: In-Memory Processing for DatabasesGNW01: In-Memory Processing for Databases
GNW01: In-Memory Processing for Databases
 
Top 10 Reasons Events Are the Best B2B Marketing Channel in the World
Top 10 Reasons Events Are the Best B2B Marketing Channel in the WorldTop 10 Reasons Events Are the Best B2B Marketing Channel in the World
Top 10 Reasons Events Are the Best B2B Marketing Channel in the World
 
Gluent New World #02 - SQL-on-Hadoop : A bit of History, Current State-of-the...
Gluent New World #02 - SQL-on-Hadoop : A bit of History, Current State-of-the...Gluent New World #02 - SQL-on-Hadoop : A bit of History, Current State-of-the...
Gluent New World #02 - SQL-on-Hadoop : A bit of History, Current State-of-the...
 
Oracle Enterprise Manager 12c: The Oracle Monitoring tool of choice – Why yo...
Oracle Enterprise Manager 12c:  The Oracle Monitoring tool of choice – Why yo...Oracle Enterprise Manager 12c:  The Oracle Monitoring tool of choice – Why yo...
Oracle Enterprise Manager 12c: The Oracle Monitoring tool of choice – Why yo...
 
Oracle database 12c new features
Oracle database 12c new featuresOracle database 12c new features
Oracle database 12c new features
 
Oracle database 12c new features
Oracle database 12c new featuresOracle database 12c new features
Oracle database 12c new features
 
Oracle Enterprise Manager Cloud Control 12c
Oracle Enterprise Manager Cloud Control 12cOracle Enterprise Manager Cloud Control 12c
Oracle Enterprise Manager Cloud Control 12c
 
Best New Features of Oracle Database 12c
Best New Features of Oracle Database 12cBest New Features of Oracle Database 12c
Best New Features of Oracle Database 12c
 

Semelhante a Emrah METE - Oracle Cloud Day 2015 12c SQL New Features

Sql teknikeri
Sql teknikeriSql teknikeri
Sql teknikerisersld61
 
Sql teknigi
Sql teknigiSql teknigi
Sql teknigisersld61
 
Sql kursu-taksim
Sql kursu-taksimSql kursu-taksim
Sql kursu-taksimserpilscd69
 
Sql egitimi-taksim
Sql egitimi-taksimSql egitimi-taksim
Sql egitimi-taksimserpilscd69
 
Sql egitimi-cekmekoy
Sql egitimi-cekmekoySql egitimi-cekmekoy
Sql egitimi-cekmekoysersld61
 
Sql egitimi-besiktas
Sql egitimi-besiktasSql egitimi-besiktas
Sql egitimi-besiktasserpilscd69
 
Sql odev-sitesi
Sql odev-sitesiSql odev-sitesi
Sql odev-sitesisersld61
 
Sql kursu-kadikoy
Sql kursu-kadikoySql kursu-kadikoy
Sql kursu-kadikoyserpilscd69
 
Sql gorsel-egitim-seti
Sql gorsel-egitim-setiSql gorsel-egitim-seti
Sql gorsel-egitim-setisersld61
 
Sql cizimi
Sql cizimiSql cizimi
Sql cizimisersld61
 
Sql egitimi-fatih
Sql egitimi-fatihSql egitimi-fatih
Sql egitimi-fatihsersld61
 

Semelhante a Emrah METE - Oracle Cloud Day 2015 12c SQL New Features (20)

Sql indir
Sql indirSql indir
Sql indir
 
Java EE Struts
Java EE StrutsJava EE Struts
Java EE Struts
 
Sql proje
Sql projeSql proje
Sql proje
 
Sql teknikeri
Sql teknikeriSql teknikeri
Sql teknikeri
 
Sql teknigi
Sql teknigiSql teknigi
Sql teknigi
 
Sql kursu-taksim
Sql kursu-taksimSql kursu-taksim
Sql kursu-taksim
 
Csharp 3.0
Csharp 3.0Csharp 3.0
Csharp 3.0
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Sql 2018
Sql 2018Sql 2018
Sql 2018
 
Sql egitimi-taksim
Sql egitimi-taksimSql egitimi-taksim
Sql egitimi-taksim
 
Sql video
Sql videoSql video
Sql video
 
Sql egitimi-cekmekoy
Sql egitimi-cekmekoySql egitimi-cekmekoy
Sql egitimi-cekmekoy
 
Sql egitimi-besiktas
Sql egitimi-besiktasSql egitimi-besiktas
Sql egitimi-besiktas
 
Sql odev-sitesi
Sql odev-sitesiSql odev-sitesi
Sql odev-sitesi
 
Asp.net ajax
Asp.net ajaxAsp.net ajax
Asp.net ajax
 
Sql kursu-kadikoy
Sql kursu-kadikoySql kursu-kadikoy
Sql kursu-kadikoy
 
Sql gorsel-egitim-seti
Sql gorsel-egitim-setiSql gorsel-egitim-seti
Sql gorsel-egitim-seti
 
Sql cizimi
Sql cizimiSql cizimi
Sql cizimi
 
Sql egitim
Sql egitimSql egitim
Sql egitim
 
Sql egitimi-fatih
Sql egitimi-fatihSql egitimi-fatih
Sql egitimi-fatih
 

Emrah METE - Oracle Cloud Day 2015 12c SQL New Features