Emrah METE - Oracle Cloud Day 2015 12c SQL New Features
1. Oracle 12c SQL New
Features
Emrah Mete
Senior DWH&BI Specialist
Board member of troug
Oracle cloud day - 19.11.2015TROUG
2. 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/
5. 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.
6. 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.
7. 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
9. - 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.
10. 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.
11. 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?
13. 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ı?
23. 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
24. 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
29. – 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