Oracle`ın Parallel Execution Yetenekleri ve
Transkript
Oracle`ın Parallel Execution Yetenekleri ve
Oracle’ın Parallel Execution Yetenekleri ve Performans İncelemesi Emrah METE TURKCELL TEKNOLOJİ 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 İç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 Parallel Execution ? 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 ! 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. 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 Parallel Query • select count(status) from big_table <<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010) <<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010) 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) Parallel DDL • • • • • • CREATE INDEX CREATE TABLE AS SELECT ALTER INDEX REBULD ALTER TABLE MOVE ALTER TABLE SPLIT|COALESCE PARTITION ALTER INDEX SPLIT PARTITION Parallel DDL • Create Table big_table as Select .... <<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010) Procedural Parallelism • Selecting Rows • Processing them • Insert/ Update another table <<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010) Procedural Parallelism Parallel Pipelined Function Unparallelized, Unpipelined Table Functions Pipelining and Parallel Execution Procedural Parallelism • Select * from table(dbms_xplan.display); <<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010) DBMS_PARALLEL_EXECUTE (Do it yourself parallesim) <<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010) DBMS_PARALLEL_EXECUTE (Do it yourself parallesim) 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 Parallel Statement Queue (PSQ) https://blogs.oracle.com/datawarehousing/entry/auto_dop_and_parallel_statemen 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 Sorular?/Yorumlar Teşekkürler