oracle’ın parallel execution yetenekleri ve performans ... · oracle’ın parallel execution...

22
Oracle’ın Parallel Execution Yetenekleri ve Performans İncelemesi Emrah METE TURKCELL TEKNOLOJİ

Upload: others

Post on 04-Jun-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

Oracle’ın Parallel Execution Yetenekleri ve Performans İncelemesi

Emrah METE

TURKCELL TEKNOLOJİ

Page 2: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

Emrah METE

Marmara Üniversitesi

Bilgisayar Teknolojisi ve Programlama

Yıldız Teknik Üniversitesi

Bilgisayar Mühendisliği

Turkcell Teknoloji

Yazılım Geliştirme Uzmanı

emrahmete.wordpress.com

Facebook, twitter, Google+, Linkedin

TROUG

www.troug.org

Page 3: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

İçerik

• Parallel Execution Nedir?

• Neden Parallel Execution Kullanırız?

• Parallel Execution Ne Zaman Kullanmalıyız?

• Oracle’ın Parallel Execution Yetenekleri

– Parallel Query

– Parallel DML

– Parallel DDL

– Procedural Parallelism

– Oracle 11g New Features

• dbms_parallel_execute

• Auto DoP ve PSQ

Page 4: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

Parallel Execution ?

Page 5: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

Neden Parallel Execution Kullanırız?

• Seri çalışan çok büyük görevleri paraleleştirerek daha hızlı ve performanslı sonuçlar almak için kullanırız.

HIZ + PERFORMANS !

Page 6: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

Parallel Execution Ne Zaman Kullanmalıyız?

1 – Paralel çalıştıracağımız görev büyük bir işlem olmalı(Ör: 50 GB’lık bir datayı load etmek.) (OLAP/OLTP)

2- Sistemimizin donanım karakteristiğinin parallel execution yapmaya yeterli olması gerekir.

3- Parallel Execution yapmak için sistemimizde yeterli available kaynakların olması gerekir.

Page 7: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

Oracle’ın Parallel Execution Yetenekleri

• Parallel Query

• Parallel DML (PDML)

• Parallel DDL

• Procedural Parallelism

• Oracle 11g New Features

– Auto DoP ve PSQ (Parallel Statement Queue)

– DBMS_PARALLEL_EXECUTION

Page 8: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

Parallel Query

• select count(status) from big_table

<<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010)

Page 9: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

<<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010)

Page 10: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

Parallel DML (PDML)

• Insert – Update – Delete – Merge

ORA-12838: cannot read/modify an object after modifying it in parallel.

<<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010)

Page 11: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

Parallel DDL

• CREATE INDEX

• CREATE TABLE AS SELECT

• ALTER INDEX REBULD

• ALTER TABLE MOVE

• ALTER TABLE SPLIT|COALESCE PARTITION

• ALTER INDEX SPLIT PARTITION

Page 12: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

• Create Table big_table as Select ....

Parallel DDL

<<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010)

Page 13: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

Procedural Parallelism

• Selecting Rows

• Processing them

• Insert/ Update another table

<<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010)

Page 14: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

Procedural Parallelism Parallel Pipelined Function

Unparallelized, Unpipelined Table Functions

Pipelining and Parallel Execution

Page 15: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

Procedural Parallelism

• Select * from table(dbms_xplan.display);

<<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010)

Page 16: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

DBMS_PARALLEL_EXECUTE (Do it yourself parallesim)

<<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010)

Page 17: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

DBMS_PARALLEL_EXECUTE (Do it yourself parallesim)

Page 18: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

Automatic Degree of Parallelism (Auto DoP)

PARALLEL_DEGREE_POLICY PARALLEL_DEGREE_LIMIT PARALLEL_MIN_TIME_THRESHOLD DOP = PARALLEL_THREADS_PER_CPU x CPU_COUNT x INSTANCE_COUNT (DEFAULT)

https://blogs.oracle.com/datawarehousing/entry/auto_dop_and_parallel_statemen

Page 19: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

Parallel Statement Queue (PSQ)

https://blogs.oracle.com/datawarehousing/entry/auto_dop_and_parallel_statemen

Page 20: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

Kaynaklar

• «Expert, Oracle Database Architecture 11g,10g,9i» Tom KYTE (2010)

• tahiti.oracle.com

• Oracle 11g Release 2 New Features Guide

• Oracle 11g Release 2 Concept Guide

• Oracle Datawarehouse Guide

• blogs.oracle.com

– The Datawarehouse Insider, Auto DOP and Parallel Statement Queuing

• Oracle Technology Network

- On Working in Parallel By Steven Feuerstein

- Automating Parallelism By Arup Nanda

Page 21: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

Sorular?/Yorumlar

Page 22: Oracle’ın Parallel Execution Yetenekleri ve Performans ... · Oracle’ın Parallel Execution Yetenekleri •Parallel Query •Parallel DML (PDML) •Parallel DDL •Procedural

Teşekkürler