Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Oracle 12c Database In Memory DBA SIG

550 views

Published on

Oracle 12c Database In-Memory üzerine Database SIG'de yaptığım sunum

Published in: Software
  • Be the first to comment

  • Be the first to like this

Oracle 12c Database In Memory DBA SIG

  1. 1. ORACLE 12C DATABASE IN-MEMORY Gökhan Atıl Database Administration SIG, 20/02/2015
  2. 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. 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. 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. 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. 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. 7. Oracle Database In-Memory’nin Yapısı Analitik İşlemler OLTP Kolon Formatı In-Memory Sales Buffer Cache Satır Formatı Sales
  8. 8. Diğerlerinden Farkı Nedir? Ana Veriler Kolon formatı Level 2 Delta Kolon formatı Level 1 Delta Satır formatı REDO LOGS veriler
  9. 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. 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. 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. 12. İki Kopya (Disk+RAM) Yavaşlatmaz mı? Tablo 1-3 OLTP içim İndeksler 5-15 Analitik Sorgular için İndeksler
  13. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×