Merhaba Arkadaşlar,

Bu yazımda Exadata ya devam edeceğim ve sihirli özelliklerinden birisi olan Smart Scan ve Storage indexi anlatıyor olacağım.

Exadata Smart Scan

Exadata ile sadece istenen veriler Oracle a getirilmesi amaçlanmıştır, istenmeyen yani gereksiz ilişkisiz veriler Storage Cell lerde filtrelendiği için minimum I/O yapılmış olur. Exadatanın Traditional sistemler dediğimiz non exadata ortamlardan en büyük farkı Smart Scan özelliğiyle akıllı veri bulma dediğimiz Smart Scan özelliğidir. Exadata Smart Scan in çalışma mantığını aşağıdaki şekilde belirtilebilir.

  1. Client tarafından ilgili sorgu çalıştırılır.
  2. İlgili sorgu Storage Server a gönderilir.
  3. Sorgu Storage Server da çalıştırılır.
  4. Storage index sayesinde sadece istenen veriler filtrelenir.
  5. Tüm cell lerden gelen sonuçlar toplanır
  6. Son olarak Client a istediği sonuç döndürülür.

Burda önemli olan durumu şudur. Yukardaki sorguda amount>200 koşulunu sağlayan verilerin bulunduğu extend lerin toplamı örneğin 1GB ve extend içerisinde istenen bloklar 10MB ise Klasik DB makinelerinde toplam 1GB lık bir I/O yapılmış olur ancak Exadata sadece istenen veri kadar yani 10MB lik bir I/O yapılmış olur. Bu durumu özellikle TB büyüklüğündeki veriler için düşündüğümüzde Smart Scan in gerçek değeri ortaya çıkmaktadır.

Smart Scan genel olarak aşağıdaki yeteneklere sahiptir.

  • Table ve index scan ler Cell içerisinde gerçekleştirilir ve sadece ilgili datalar memory e gönderilir.
  • Karşılaştırmalara karşı filtreleme yapma
    SQL> SELECT * FROM emp WHERE sal > 20000;
  • Kolon filreleme

SQL> SELECT eno,ename,sal,dept_no FROM emp;

  • Join Processing
  • RMAN Incremental Backup: Sadece değişen blokları storage indexden algıladığı için yüksek hızda almayı sağlar.
  • Fast File Creation: Tablespace oluşturma gibi işlemlerde önemli oranda bir katkı sağlar.

 

Smart Scan aşağıdaki özellikleri desteklemez

  • Clustered table, index organized tables
  • FFS compressed ve reverse key indexes
  • CREATE INDEX with NOSORT
  • LONG or LOB column geçen sorgular
  • Cache clause geçen srogular
  • 255 den fazla kolon sorgulandığında

Smart Scan in çalışması için mevcut diskgruplarında aşağıdaki özellikler set edilmiş olmalıdır.

  • ‘compatible.rdbms’=’11.2.0.0.0’
  • ‘compatible.asm’=11.2.0.0.0. ‘
  • ‘cell.smart_scan_capable’=’TRUE’

 

Ek olarak aşağıdaki parametrelerin smart scan üzerinde etkisi ve kontrolü bulunmaktadır.

  • CELL_OFFLOAD_PROCESSING = TRUE|FALSE
  • CELL_OFFLOAD_PLAN_DISPLAY = NEVER|AUTO|ALWAYS
  • SQL> SELECT /*+ OPT_PARAM(‘cell_offload_processing”true’) */
  • alter session set cell_offload_processing=true;
  • Also many _cell_offload and _kcfis hidden parameters contribute to the behavior

 

Bir sorgu çalıştırılırken smart scan kullanıp kullanmadığına aşağıdaki gibi bakılabilir.

SQL> EXPLAIN PLAN FOR SELECT * FROM EMP WHERE SAL > 20000;

SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

Veritabanında daha önce oluşturduğumuz tablodan aşağıdaki gibi smart scan siz sorgu çekiyorum 2dk 28 sn de dönüyor. 2.kez çalıştırıp cache süresinede baktığımda 2dk 25 sn sürüyor.

Result1

Fakat aynı tabloda Smart Scan i aktif edip smart scan le sorguyu çektiğimde aşağıda görüldüğü gibi sorgu milisaniyeler içinde dönüyor.

Result2

 

Storage Indexes

Exadata nın yine kendisine has özelliklerinden birisi olan Storage index ler Cell lerde aşırı derecede fiziksel I/O yapılmasını engelleyen bir özelliktir. Storage  indexler memory tabanlı gereksiz I/O yapılmasını önlemek için max 8 kolon bilgi saklayan bir yapıdır.

Herbir Cell Server daki herbir disk de o storage da saklanan tüm verilerin yerlerinin yazıldığı bir indexi tutan 1MB lik depolama alanı vardır. Storage index gelen SQL lerde istenen datalara göre memory de otomatik bir şekilde oluşturulan disk üzerindeki datanın dağılım haritasını tutan nesnelerdir. Bilinen indexlerin aksine Storage indexler tamamiyle memory tabanlıdır fiziksel yer tutmazlar ve Cell Server restart edildiğinde bu bilgiler kaybolur. Cell server açıldıktan sonra Exadata gelen sorguların yararına olacak şekilde oluşturup oluşturmamaya karar vermektedir.

Storage Index, Client ın gönderdiği sorguda sadece istediği dataları göndermesine yardımcı olduğu için Smart Scan inde bir parçasıdır. Bir sorgunun Storage index i kullanabilmesi için aşağıdaki şartları sağlaması gerekmektedir.

  • Smart Scan kullanabilen sorgular storage index kullanabilirler.
  • Where koşulunda bir kıyas değeri örneğin where id > 200
  • Storage indexde =, <, >, BETWEEN, IN, IS NULL, IS NOT NULL, >=, <= operatörleri kullanılabilir.
  • Storage indexler number,date,varchar2 data tiplerini destekler nls data tipini desteklemez.

 

böylece bu yazınında sonuna gelmiş bulunmaktayım. Bir sonraki yazıda görüşmek dileğiyle Esen kalın.

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s