SlideShare a Scribd company logo
1 of 26
ORACLE 12C
DATABASE IN-MEMORY
Gökhan Atıl
Database Administration SIG, 20/02/2015
Gökhan Atıl
• DBA Takım Lideri
• 10 yıldan fazla deneyim
• 10g/11g/R12 OCP DBA
• Oracle Certified Expert (SQL & Exadata)
• Comptia Linux+
• Blogger (Ekim 2008’den beri) gokhanatil.com
• Turkish Oracle User Group Kurucu Üyesi (TROUG)
• Oracle ACE (Ekim 2011)
Expert Oracle Enterprise Manager 12c
Kellyn Pot'vin
Anand Akela
Gökhan Atıl
Bobby Curtis
Alex Gorbachev
Niall Litchfield
Leighton Nelson
Pete Sharman
25 Haziran 2013
Sunum İçeriği
Oracle Database In-Memory Nedir?
Neden In-Memory?
Oracle Database In-Memory’nin Yapısı
Performans Karşılaştırması
Nasıl Kullanılır?
Son Söz
Oracle Database In-Memory Nedir?
Database (storage structures)
Instance
(System Global Area)
Background Process
PMONSMONDBWn LGWRCKPT ARCn
Database
Buffer
Cache Shared Pool
In-Memory
Area
IMCO
SP LP JP RL
nK
Neden In-Memory?
• Memory’den 1 MB sırasız veri okuma 0.25 ms
• SSD’den 1 MB sırasız veri okuma 1 ms
• Sabit Disk’ten 1 MB sırasız veri okuma 20 ms
Oracle Database In-Memory’nin Yapısı
Analitik
İşlemler
OLTP
Kolon
Formatı
In-Memory
Sales
Buffer Cache
Satır
Formatı
Sales
Diğerlerinden Farkı Nedir?
Ana Veriler
Kolon formatı
Level 2 Delta
Kolon formatı
Level 1 Delta
Satır formatı
REDO
LOGS veriler
Oracle ve Kolon Formatı?
• Sadece In-memory’de
kullanılıyor
• Sıkıştırma sayesinde veri
x2-x20 kat daha az yer
kaplıyor (MEMCOMPRESS)
• Logging Gerektirmiyor
(recovery edilmesine gerek
yok çünkü satır formatı
halinde zaten diskte
tutuluyor)
• Startup sırasında tablolar
belleğe alınıyorlar
(PRIORITY)
Memory
Kolon formatı
SIMD
Neden Kolon Formatı?
In-Memory Column Store
Şehir SatışlarSales
Örnek: İstanbul’daki satış toplamını bulmak
1. Sadece gerekli kolon verisine
erişim!
2. Yeni algoritma sayesinde
sıkıştırılmış veri içinde arama
3. IM Storage Index sayesinde ilgisiz
verinin filtrelenmesi (IMCU)
4. SIMD Vektör İşleme ile değerlerin
tek komut ile karşılaştırılması
İstanbul 5,000,000 TL
SIMD Vektör İşleme Nedir?
• SIMD (Single Instruction processing Multiple Data values) vektör
işleme, SIMD desteği olan sunucularda her kolondaki veriyi tek tek
işlemek yerine, birden fazla kolondaki verinin beraberce tek bir
CPU dönüşünde ile işlenmesini sağlar.
• Modern Intel işlemciler 16-32 SIMD registerlarına sahiptir.
İki Kopya (Disk+RAM) Yavaşlatmaz mı?
Tablo
1-3
OLTP içim
İndeksler
5-15
Analitik Sorgular için
İndeksler
Performans Karşılaştırması
• Tanel Põder & Kerry Osborne’nun Exadata
üzerinde yaptığı testler:
SELECT COUNT(*), SUM(order_total)
FROM
orders
WHERE
warehouse_id BETWEEN 500 AND 510
8 GB’lık tablonun %1’ini
seçmek istiyoruz
Test Sonuçları:
Erişim metodu Toplam CPU(ms)
index (range scan) 265203 37438
full table scan (buffered) 132075 48944
full table scan (direct path) 15567 11808
full table scan (smart scan) 2102 729
full table scan (inmemory) 155 155
In-Memory Hızlı Peki ya Buffer Cache?
Erişim metodu Toplam CPU(ms)
full table scan (smart scan) 2102 729
full table scan (inmemory) 155 155
full table scan (buffer cache) 7850 7831
1. Sadece gerekli kolon verisine erişim
2. Yeni algoritma sayesinde sıkıştırılmış veri içinde arama
3. IM Storage Index sayesinde ilgisiz verinin filtrelenmesi
4. SIMD Vektör İşleme
In-Memory ve Verilerin İşlenmesi
• Veriye erişim her zaman hızlı olmasına karşın,
özellikle TEMP tablespace’i kullanılan
sorgularda verinin işlenmesi darboğaz
oluşturabilir:
 Sorgularınızın TEMP tablespace’i kullanmadığına
emin olun
 Verinin filtrelenmesini önce yapın
 PGA_AGGREGATE_TARGET’ı (ve paralelismi)
arttırın
Nasıl Kullanılır?
• Database In-Memory Opsiyonunu
etkinleştirmek:
ALTER SYSTEM SET inmemory_size = 20G
SCOPE=spfile;
• Veritabanını restart etmeniz gerekir.
• SGA’nin yeterince büyük olmasına dikkat edin!
Nasıl Kullanılır?
• İstediğiniz tablo için In-Memory opsiyonunu
aktif hale getirmek:
ALTER TABLE sales INMEMORY;
• Tablolar in-memory area’ya (IM Column
Store) varsayılan olarak on-demand olarak
yüklenir.
Nasıl Kullanılır?
• Tablonun otomatik olarak In-Memory’ye
yüklenmesi için:
ALTER TABLE sales INMEMORY PRIORITY
CRITICAL;
• PRIORITY şunlardan biri olabilir: NONE
(varsayılan), LOW, MEDIUM, HIGH, CRITICAL
Nasıl Kullanılır?
• V$IM_SEGMENTS veya V$IM_USER_SEGMENTS’ı
sorgulayarak tablolarınız in-memory’de mi
görebilirsiniz:
SELECT
OWNER, SEGMENT_NAME,
INMEMORY_SIZE, BYTES, BYTES_NOT_POPULATED,
POPULATE_STATUS
FROM v$im_segments;
Nasıl Kullanılır?
Şu objeler In-Memory’de tutulamaz:
• SYSTEM or SYSAUX tablespace’indeki SYS
objeleri
• Index Organized Tablolar (IOTs)
• Clustered Tablolar
• LONG veritipindeki kolonlar
Nasıl Kullanılır?
• İstediğiniz kolon ve partitionların In-Memory
area’ya yüklenmesini engelleyebilirsiniz:
ALTER TABLE sales INMEMORY
NO INMEMORY(prod_id);
ALTER TABLE sales MODIFY PARTITION
SALES_1998 NO INMEMORY;
Nasıl Kullanılır?
• Tablonun veya partitionın nasıl sıkıştırılacağını
belirtebilirsiniz:
ALTER TABLE sales INMEMORY
MEMCOMPRESS FOR QUERY;
ALTER TABLE sales MODIFY PARTITION
SALES_1998 INMEMORY NOMEMCOMPRESS;
Nasıl Kullanılır?
• MEMCOMPRESS parametresi:
NOCOMPRESS Sıkıştırma yok
MEMCOMPRESS FOR DML
DML işlemleri için optimize edilmiş
minimum sıkıştırma
MEMCOMPRESS FOR QUERY LOW Varsayılan (Sorgu performansı için optimize)
MEMCOMPRESS FOR QUERY HIGH
Hem sorgu performansı hem yer kullanımı
açısından iyi
MEMCOMPRESS FOR CAPACITY LOW
Sorgu performansından çok yer kullanımını
düşünen
MEMCOMPRESS FOR CAPACITY HIGH
Tamamen yer kullanımını azaltmak için
tasarlanmış
Son Söz
• Fonksiyonel: Her hangi bir SQL kısıtlaması yok
• Uygulanması Kolay: Verinin aktarılmasına
veya değiştirilmesine gerek yok
• Tamamen Uyumlu: Uygulamalarda her hangi
bir değişiklik gerektirmiyor
• Partitioning ile Birlikte Enterprise Edition
kullanmak için en geçerli sebep
KAYNAKLAR:
@gokhanatil http://gokhanatil.com
Tanel Põder & Kerry Osborne’sunumu Oracle Database In‐Memory Option in Action
Oracle Database In-Memory blog https://blogs.oracle.com/In-Memory/
Oracle Database In-Memory White Paper Ekim 2014

More Related Content

Viewers also liked

Using APEX to Create a Mobile User Interface for Enterprise Manager 12c
Using APEX to Create a Mobile User Interface for Enterprise Manager 12cUsing APEX to Create a Mobile User Interface for Enterprise Manager 12c
Using APEX to Create a Mobile User Interface for Enterprise Manager 12cGokhan Atil
 
Enterprise Manager 12c ASH Analytics
Enterprise Manager 12c ASH AnalyticsEnterprise Manager 12c ASH Analytics
Enterprise Manager 12c ASH AnalyticsGokhan Atil
 
Essential Linux Commands for DBAs
Essential Linux Commands for DBAsEssential Linux Commands for DBAs
Essential Linux Commands for DBAsGokhan Atil
 
Enterprise Manager: Write powerful scripts with EMCLI
Enterprise Manager: Write powerful scripts with EMCLIEnterprise Manager: Write powerful scripts with EMCLI
Enterprise Manager: Write powerful scripts with EMCLIGokhan Atil
 
EM13c: Write Powerful Scripts with EMCLI
EM13c: Write Powerful Scripts with EMCLIEM13c: Write Powerful Scripts with EMCLI
EM13c: Write Powerful Scripts with EMCLIGokhan Atil
 
Oracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAsOracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAsGokhan Atil
 
Oracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAsOracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAsGokhan Atil
 

Viewers also liked (7)

Using APEX to Create a Mobile User Interface for Enterprise Manager 12c
Using APEX to Create a Mobile User Interface for Enterprise Manager 12cUsing APEX to Create a Mobile User Interface for Enterprise Manager 12c
Using APEX to Create a Mobile User Interface for Enterprise Manager 12c
 
Enterprise Manager 12c ASH Analytics
Enterprise Manager 12c ASH AnalyticsEnterprise Manager 12c ASH Analytics
Enterprise Manager 12c ASH Analytics
 
Essential Linux Commands for DBAs
Essential Linux Commands for DBAsEssential Linux Commands for DBAs
Essential Linux Commands for DBAs
 
Enterprise Manager: Write powerful scripts with EMCLI
Enterprise Manager: Write powerful scripts with EMCLIEnterprise Manager: Write powerful scripts with EMCLI
Enterprise Manager: Write powerful scripts with EMCLI
 
EM13c: Write Powerful Scripts with EMCLI
EM13c: Write Powerful Scripts with EMCLIEM13c: Write Powerful Scripts with EMCLI
EM13c: Write Powerful Scripts with EMCLI
 
Oracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAsOracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAs
 
Oracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAsOracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAs
 

Similar to Oracle 12c Database In Memory DBA SIG

Oracle Database & Oracle Datawarehouse Best Practices
Oracle Database & Oracle Datawarehouse Best PracticesOracle Database & Oracle Datawarehouse Best Practices
Oracle Database & Oracle Datawarehouse Best PracticesZekeriya Besiroglu
 
Istanbul Datascience Academy Talks
Istanbul Datascience Academy TalksIstanbul Datascience Academy Talks
Istanbul Datascience Academy TalksMetin Uslu
 
6.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V26.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V2Ermando
 
Ibm storage sales
Ibm storage salesIbm storage sales
Ibm storage salesHande Hnd
 
Dba için oracle veritabanı 11g yeni özellikleri
Dba için oracle veritabanı 11g yeni özellikleriDba için oracle veritabanı 11g yeni özellikleri
Dba için oracle veritabanı 11g yeni özellikleriZekeriya Besiroglu
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11Cihan Özhan
 
Sql egitimi-fatih
Sql egitimi-fatihSql egitimi-fatih
Sql egitimi-fatihsersld61
 
9.hafta cüneyt tomruk
9.hafta cüneyt tomruk9.hafta cüneyt tomruk
9.hafta cüneyt tomrukoktaygokgol
 
Weblogic performance tips&tricks
Weblogic performance tips&tricksWeblogic performance tips&tricks
Weblogic performance tips&tricksZekeriya Besiroglu
 
SCOM 2007 Kurulum,Client Discovery ve Performans izleme
SCOM 2007 Kurulum,Client Discovery ve Performans izlemeSCOM 2007 Kurulum,Client Discovery ve Performans izleme
SCOM 2007 Kurulum,Client Discovery ve Performans izlemeSerhad MAKBULOĞLU, MBA
 
System Center Operations Manager 2007 Kurulum,Client Discovery ve Performans ...
System Center Operations Manager 2007 Kurulum,Client Discovery ve Performans ...System Center Operations Manager 2007 Kurulum,Client Discovery ve Performans ...
System Center Operations Manager 2007 Kurulum,Client Discovery ve Performans ...ÇözümPARK
 
Failover Clustering Sql Server
Failover Clustering Sql ServerFailover Clustering Sql Server
Failover Clustering Sql ServerHakan Yüksel
 

Similar to Oracle 12c Database In Memory DBA SIG (20)

Oracle Database & Oracle Datawarehouse Best Practices
Oracle Database & Oracle Datawarehouse Best PracticesOracle Database & Oracle Datawarehouse Best Practices
Oracle Database & Oracle Datawarehouse Best Practices
 
Bellek İçi Hesaplama Teknolojileri
Bellek İçi Hesaplama TeknolojileriBellek İçi Hesaplama Teknolojileri
Bellek İçi Hesaplama Teknolojileri
 
Exadata Performance Notes
Exadata Performance NotesExadata Performance Notes
Exadata Performance Notes
 
Istanbul Datascience Academy Talks
Istanbul Datascience Academy TalksIstanbul Datascience Academy Talks
Istanbul Datascience Academy Talks
 
6.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V26.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V2
 
Ibm storage sales
Ibm storage salesIbm storage sales
Ibm storage sales
 
Cem kubilay
Cem kubilayCem kubilay
Cem kubilay
 
Dba için oracle veritabanı 11g yeni özellikleri
Dba için oracle veritabanı 11g yeni özellikleriDba için oracle veritabanı 11g yeni özellikleri
Dba için oracle veritabanı 11g yeni özellikleri
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19
 
Cp Scom
Cp ScomCp Scom
Cp Scom
 
İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11
 
Pivot Unpivot
Pivot UnpivotPivot Unpivot
Pivot Unpivot
 
Sql egitimi-fatih
Sql egitimi-fatihSql egitimi-fatih
Sql egitimi-fatih
 
9.hafta cüneyt tomruk
9.hafta cüneyt tomruk9.hafta cüneyt tomruk
9.hafta cüneyt tomruk
 
Weblogic performance tips&tricks
Weblogic performance tips&tricksWeblogic performance tips&tricks
Weblogic performance tips&tricks
 
SCOM 2007 Kurulum,Client Discovery ve Performans izleme
SCOM 2007 Kurulum,Client Discovery ve Performans izlemeSCOM 2007 Kurulum,Client Discovery ve Performans izleme
SCOM 2007 Kurulum,Client Discovery ve Performans izleme
 
EF Flas Array
EF Flas ArrayEF Flas Array
EF Flas Array
 
Nosql & MongoDB
Nosql & MongoDBNosql & MongoDB
Nosql & MongoDB
 
System Center Operations Manager 2007 Kurulum,Client Discovery ve Performans ...
System Center Operations Manager 2007 Kurulum,Client Discovery ve Performans ...System Center Operations Manager 2007 Kurulum,Client Discovery ve Performans ...
System Center Operations Manager 2007 Kurulum,Client Discovery ve Performans ...
 
Failover Clustering Sql Server
Failover Clustering Sql ServerFailover Clustering Sql Server
Failover Clustering Sql Server
 

More from Gokhan Atil

Introduction to Spark with Python
Introduction to Spark with PythonIntroduction to Spark with Python
Introduction to Spark with PythonGokhan Atil
 
Introduction to Cassandra
Introduction to CassandraIntroduction to Cassandra
Introduction to CassandraGokhan Atil
 
SQL or noSQL - Oracle Cloud Day Istanbul
SQL or noSQL - Oracle Cloud Day IstanbulSQL or noSQL - Oracle Cloud Day Istanbul
SQL or noSQL - Oracle Cloud Day IstanbulGokhan Atil
 
EMCLI Crash Course - DOAG Germany
EMCLI Crash Course - DOAG GermanyEMCLI Crash Course - DOAG Germany
EMCLI Crash Course - DOAG GermanyGokhan Atil
 
Oracle Enterprise Manager 12c: EMCLI Crash Course
Oracle Enterprise Manager 12c: EMCLI Crash CourseOracle Enterprise Manager 12c: EMCLI Crash Course
Oracle Enterprise Manager 12c: EMCLI Crash CourseGokhan Atil
 
Oracle DB Standard Edition: Başka Bir Arzunuz?
Oracle DB Standard Edition: Başka Bir Arzunuz?Oracle DB Standard Edition: Başka Bir Arzunuz?
Oracle DB Standard Edition: Başka Bir Arzunuz?Gokhan Atil
 

More from Gokhan Atil (6)

Introduction to Spark with Python
Introduction to Spark with PythonIntroduction to Spark with Python
Introduction to Spark with Python
 
Introduction to Cassandra
Introduction to CassandraIntroduction to Cassandra
Introduction to Cassandra
 
SQL or noSQL - Oracle Cloud Day Istanbul
SQL or noSQL - Oracle Cloud Day IstanbulSQL or noSQL - Oracle Cloud Day Istanbul
SQL or noSQL - Oracle Cloud Day Istanbul
 
EMCLI Crash Course - DOAG Germany
EMCLI Crash Course - DOAG GermanyEMCLI Crash Course - DOAG Germany
EMCLI Crash Course - DOAG Germany
 
Oracle Enterprise Manager 12c: EMCLI Crash Course
Oracle Enterprise Manager 12c: EMCLI Crash CourseOracle Enterprise Manager 12c: EMCLI Crash Course
Oracle Enterprise Manager 12c: EMCLI Crash Course
 
Oracle DB Standard Edition: Başka Bir Arzunuz?
Oracle DB Standard Edition: Başka Bir Arzunuz?Oracle DB Standard Edition: Başka Bir Arzunuz?
Oracle DB Standard Edition: Başka Bir Arzunuz?
 

Oracle 12c Database In Memory DBA SIG

  • 1. ORACLE 12C DATABASE IN-MEMORY Gökhan Atıl Database Administration SIG, 20/02/2015
  • 2. Gökhan Atıl • DBA Takım Lideri • 10 yıldan fazla deneyim • 10g/11g/R12 OCP DBA • Oracle Certified Expert (SQL & Exadata) • Comptia Linux+ • Blogger (Ekim 2008’den beri) gokhanatil.com • Turkish Oracle User Group Kurucu Üyesi (TROUG) • Oracle ACE (Ekim 2011)
  • 3. Expert Oracle Enterprise Manager 12c Kellyn Pot'vin Anand Akela Gökhan Atıl Bobby Curtis Alex Gorbachev Niall Litchfield Leighton Nelson Pete Sharman 25 Haziran 2013
  • 4. Sunum İçeriği Oracle Database In-Memory Nedir? Neden In-Memory? Oracle Database In-Memory’nin Yapısı Performans Karşılaştırması Nasıl Kullanılır? Son Söz
  • 5. Oracle Database In-Memory Nedir? Database (storage structures) Instance (System Global Area) Background Process PMONSMONDBWn LGWRCKPT ARCn Database Buffer Cache Shared Pool In-Memory Area IMCO SP LP JP RL nK
  • 6. Neden In-Memory? • Memory’den 1 MB sırasız veri okuma 0.25 ms • SSD’den 1 MB sırasız veri okuma 1 ms • Sabit Disk’ten 1 MB sırasız veri okuma 20 ms
  • 7. Oracle Database In-Memory’nin Yapısı Analitik İşlemler OLTP Kolon Formatı In-Memory Sales Buffer Cache Satır Formatı Sales
  • 8. Diğerlerinden Farkı Nedir? Ana Veriler Kolon formatı Level 2 Delta Kolon formatı Level 1 Delta Satır formatı REDO LOGS veriler
  • 9. Oracle ve Kolon Formatı? • Sadece In-memory’de kullanılıyor • Sıkıştırma sayesinde veri x2-x20 kat daha az yer kaplıyor (MEMCOMPRESS) • Logging Gerektirmiyor (recovery edilmesine gerek yok çünkü satır formatı halinde zaten diskte tutuluyor) • Startup sırasında tablolar belleğe alınıyorlar (PRIORITY) Memory Kolon formatı
  • 10. SIMD Neden Kolon Formatı? In-Memory Column Store Şehir SatışlarSales Örnek: İstanbul’daki satış toplamını bulmak 1. Sadece gerekli kolon verisine erişim! 2. Yeni algoritma sayesinde sıkıştırılmış veri içinde arama 3. IM Storage Index sayesinde ilgisiz verinin filtrelenmesi (IMCU) 4. SIMD Vektör İşleme ile değerlerin tek komut ile karşılaştırılması İstanbul 5,000,000 TL
  • 11. SIMD Vektör İşleme Nedir? • SIMD (Single Instruction processing Multiple Data values) vektör işleme, SIMD desteği olan sunucularda her kolondaki veriyi tek tek işlemek yerine, birden fazla kolondaki verinin beraberce tek bir CPU dönüşünde ile işlenmesini sağlar. • Modern Intel işlemciler 16-32 SIMD registerlarına sahiptir.
  • 12. İki Kopya (Disk+RAM) Yavaşlatmaz mı? Tablo 1-3 OLTP içim İndeksler 5-15 Analitik Sorgular için İndeksler
  • 13. Performans Karşılaştırması • Tanel Põder & Kerry Osborne’nun Exadata üzerinde yaptığı testler: SELECT COUNT(*), SUM(order_total) FROM orders WHERE warehouse_id BETWEEN 500 AND 510 8 GB’lık tablonun %1’ini seçmek istiyoruz
  • 14. Test Sonuçları: Erişim metodu Toplam CPU(ms) index (range scan) 265203 37438 full table scan (buffered) 132075 48944 full table scan (direct path) 15567 11808 full table scan (smart scan) 2102 729 full table scan (inmemory) 155 155
  • 15. In-Memory Hızlı Peki ya Buffer Cache? Erişim metodu Toplam CPU(ms) full table scan (smart scan) 2102 729 full table scan (inmemory) 155 155 full table scan (buffer cache) 7850 7831 1. Sadece gerekli kolon verisine erişim 2. Yeni algoritma sayesinde sıkıştırılmış veri içinde arama 3. IM Storage Index sayesinde ilgisiz verinin filtrelenmesi 4. SIMD Vektör İşleme
  • 16. In-Memory ve Verilerin İşlenmesi • Veriye erişim her zaman hızlı olmasına karşın, özellikle TEMP tablespace’i kullanılan sorgularda verinin işlenmesi darboğaz oluşturabilir:  Sorgularınızın TEMP tablespace’i kullanmadığına emin olun  Verinin filtrelenmesini önce yapın  PGA_AGGREGATE_TARGET’ı (ve paralelismi) arttırın
  • 17. Nasıl Kullanılır? • Database In-Memory Opsiyonunu etkinleştirmek: ALTER SYSTEM SET inmemory_size = 20G SCOPE=spfile; • Veritabanını restart etmeniz gerekir. • SGA’nin yeterince büyük olmasına dikkat edin!
  • 18. Nasıl Kullanılır? • İstediğiniz tablo için In-Memory opsiyonunu aktif hale getirmek: ALTER TABLE sales INMEMORY; • Tablolar in-memory area’ya (IM Column Store) varsayılan olarak on-demand olarak yüklenir.
  • 19. Nasıl Kullanılır? • Tablonun otomatik olarak In-Memory’ye yüklenmesi için: ALTER TABLE sales INMEMORY PRIORITY CRITICAL; • PRIORITY şunlardan biri olabilir: NONE (varsayılan), LOW, MEDIUM, HIGH, CRITICAL
  • 20. Nasıl Kullanılır? • V$IM_SEGMENTS veya V$IM_USER_SEGMENTS’ı sorgulayarak tablolarınız in-memory’de mi görebilirsiniz: SELECT OWNER, SEGMENT_NAME, INMEMORY_SIZE, BYTES, BYTES_NOT_POPULATED, POPULATE_STATUS FROM v$im_segments;
  • 21. Nasıl Kullanılır? Şu objeler In-Memory’de tutulamaz: • SYSTEM or SYSAUX tablespace’indeki SYS objeleri • Index Organized Tablolar (IOTs) • Clustered Tablolar • LONG veritipindeki kolonlar
  • 22. Nasıl Kullanılır? • İstediğiniz kolon ve partitionların In-Memory area’ya yüklenmesini engelleyebilirsiniz: ALTER TABLE sales INMEMORY NO INMEMORY(prod_id); ALTER TABLE sales MODIFY PARTITION SALES_1998 NO INMEMORY;
  • 23. Nasıl Kullanılır? • Tablonun veya partitionın nasıl sıkıştırılacağını belirtebilirsiniz: ALTER TABLE sales INMEMORY MEMCOMPRESS FOR QUERY; ALTER TABLE sales MODIFY PARTITION SALES_1998 INMEMORY NOMEMCOMPRESS;
  • 24. Nasıl Kullanılır? • MEMCOMPRESS parametresi: NOCOMPRESS Sıkıştırma yok MEMCOMPRESS FOR DML DML işlemleri için optimize edilmiş minimum sıkıştırma MEMCOMPRESS FOR QUERY LOW Varsayılan (Sorgu performansı için optimize) MEMCOMPRESS FOR QUERY HIGH Hem sorgu performansı hem yer kullanımı açısından iyi MEMCOMPRESS FOR CAPACITY LOW Sorgu performansından çok yer kullanımını düşünen MEMCOMPRESS FOR CAPACITY HIGH Tamamen yer kullanımını azaltmak için tasarlanmış
  • 25. Son Söz • Fonksiyonel: Her hangi bir SQL kısıtlaması yok • Uygulanması Kolay: Verinin aktarılmasına veya değiştirilmesine gerek yok • Tamamen Uyumlu: Uygulamalarda her hangi bir değişiklik gerektirmiyor • Partitioning ile Birlikte Enterprise Edition kullanmak için en geçerli sebep
  • 26. KAYNAKLAR: @gokhanatil http://gokhanatil.com Tanel Põder & Kerry Osborne’sunumu Oracle Database In‐Memory Option in Action Oracle Database In-Memory blog https://blogs.oracle.com/In-Memory/ Oracle Database In-Memory White Paper Ekim 2014

Editor's Notes

  1. This is another option for an Overview slides using transitions.
  2. Microsoft Confidential