SlideShare a Scribd company logo
1 of 23
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
• Create Table big_table as Select ....
Parallel DDL
<<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
Automatic
Degree of Parallelism
(Auto DoP)
Parallel Statement Queue (PSQ)
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

More Related Content

What's hot

Making Sense of Streaming Sensor Data: How Uber Detects on Trip Car Crashes -...
Making Sense of Streaming Sensor Data: How Uber Detects on Trip Car Crashes -...Making Sense of Streaming Sensor Data: How Uber Detects on Trip Car Crashes -...
Making Sense of Streaming Sensor Data: How Uber Detects on Trip Car Crashes -...Flink Forward
 
pgpool-II demonstration
pgpool-II demonstrationpgpool-II demonstration
pgpool-II demonstrationelliando dias
 
Incremental data processing with Hudi & Spark + dbt.pdf
Incremental data processing with Hudi & Spark + dbt.pdfIncremental data processing with Hudi & Spark + dbt.pdf
Incremental data processing with Hudi & Spark + dbt.pdfnadine39280
 
Iceberg + Alluxio for Fast Data Analytics
Iceberg + Alluxio for Fast Data AnalyticsIceberg + Alluxio for Fast Data Analytics
Iceberg + Alluxio for Fast Data AnalyticsAlluxio, Inc.
 
Reading The Source Code of Presto
Reading The Source Code of PrestoReading The Source Code of Presto
Reading The Source Code of PrestoTaro L. Saito
 
Optimizing RocksDB for Open-Channel SSDs
Optimizing RocksDB for Open-Channel SSDsOptimizing RocksDB for Open-Channel SSDs
Optimizing RocksDB for Open-Channel SSDsJavier González
 
Enabling the Active Data Warehouse with Apache Kudu
Enabling the Active Data Warehouse with Apache KuduEnabling the Active Data Warehouse with Apache Kudu
Enabling the Active Data Warehouse with Apache KuduGrant Henke
 
Spark Summit East 2017: Apache spark and object stores
Spark Summit East 2017: Apache spark and object storesSpark Summit East 2017: Apache spark and object stores
Spark Summit East 2017: Apache spark and object storesSteve Loughran
 
Floating on a RAFT: HBase Durability with Apache Ratis
Floating on a RAFT: HBase Durability with Apache RatisFloating on a RAFT: HBase Durability with Apache Ratis
Floating on a RAFT: HBase Durability with Apache RatisDataWorks Summit
 
Time-Series Apache HBase
Time-Series Apache HBaseTime-Series Apache HBase
Time-Series Apache HBaseHBaseCon
 
The Pushdown of Everything by Stephan Kessler and Santiago Mola
The Pushdown of Everything by Stephan Kessler and Santiago MolaThe Pushdown of Everything by Stephan Kessler and Santiago Mola
The Pushdown of Everything by Stephan Kessler and Santiago MolaSpark Summit
 
AI made easy with Flink AI Flow
AI made easy with Flink AI FlowAI made easy with Flink AI Flow
AI made easy with Flink AI FlowJiangjie Qin
 
Real-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFiReal-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFiManish Gupta
 
Streaming Data Lakes using Kafka Connect + Apache Hudi | Vinoth Chandar, Apac...
Streaming Data Lakes using Kafka Connect + Apache Hudi | Vinoth Chandar, Apac...Streaming Data Lakes using Kafka Connect + Apache Hudi | Vinoth Chandar, Apac...
Streaming Data Lakes using Kafka Connect + Apache Hudi | Vinoth Chandar, Apac...HostedbyConfluent
 
Your first ClickHouse data warehouse
Your first ClickHouse data warehouseYour first ClickHouse data warehouse
Your first ClickHouse data warehouseAltinity Ltd
 
AWS vs Azure vs Google Cloud Storage Deep Dive
AWS vs Azure vs Google Cloud Storage Deep DiveAWS vs Azure vs Google Cloud Storage Deep Dive
AWS vs Azure vs Google Cloud Storage Deep DiveRightScale
 
Bootstrapping state in Apache Flink
Bootstrapping state in Apache FlinkBootstrapping state in Apache Flink
Bootstrapping state in Apache FlinkDataWorks Summit
 
How to build a streaming Lakehouse with Flink, Kafka, and Hudi
How to build a streaming Lakehouse with Flink, Kafka, and HudiHow to build a streaming Lakehouse with Flink, Kafka, and Hudi
How to build a streaming Lakehouse with Flink, Kafka, and HudiFlink Forward
 

What's hot (20)

Making Sense of Streaming Sensor Data: How Uber Detects on Trip Car Crashes -...
Making Sense of Streaming Sensor Data: How Uber Detects on Trip Car Crashes -...Making Sense of Streaming Sensor Data: How Uber Detects on Trip Car Crashes -...
Making Sense of Streaming Sensor Data: How Uber Detects on Trip Car Crashes -...
 
pgpool-II demonstration
pgpool-II demonstrationpgpool-II demonstration
pgpool-II demonstration
 
Incremental data processing with Hudi & Spark + dbt.pdf
Incremental data processing with Hudi & Spark + dbt.pdfIncremental data processing with Hudi & Spark + dbt.pdf
Incremental data processing with Hudi & Spark + dbt.pdf
 
Iceberg + Alluxio for Fast Data Analytics
Iceberg + Alluxio for Fast Data AnalyticsIceberg + Alluxio for Fast Data Analytics
Iceberg + Alluxio for Fast Data Analytics
 
Reading The Source Code of Presto
Reading The Source Code of PrestoReading The Source Code of Presto
Reading The Source Code of Presto
 
Optimizing RocksDB for Open-Channel SSDs
Optimizing RocksDB for Open-Channel SSDsOptimizing RocksDB for Open-Channel SSDs
Optimizing RocksDB for Open-Channel SSDs
 
Enabling the Active Data Warehouse with Apache Kudu
Enabling the Active Data Warehouse with Apache KuduEnabling the Active Data Warehouse with Apache Kudu
Enabling the Active Data Warehouse with Apache Kudu
 
Spark Summit East 2017: Apache spark and object stores
Spark Summit East 2017: Apache spark and object storesSpark Summit East 2017: Apache spark and object stores
Spark Summit East 2017: Apache spark and object stores
 
Multi-Tenancy
Multi-TenancyMulti-Tenancy
Multi-Tenancy
 
Floating on a RAFT: HBase Durability with Apache Ratis
Floating on a RAFT: HBase Durability with Apache RatisFloating on a RAFT: HBase Durability with Apache Ratis
Floating on a RAFT: HBase Durability with Apache Ratis
 
Time-Series Apache HBase
Time-Series Apache HBaseTime-Series Apache HBase
Time-Series Apache HBase
 
The Pushdown of Everything by Stephan Kessler and Santiago Mola
The Pushdown of Everything by Stephan Kessler and Santiago MolaThe Pushdown of Everything by Stephan Kessler and Santiago Mola
The Pushdown of Everything by Stephan Kessler and Santiago Mola
 
Golang Channels
Golang ChannelsGolang Channels
Golang Channels
 
AI made easy with Flink AI Flow
AI made easy with Flink AI FlowAI made easy with Flink AI Flow
AI made easy with Flink AI Flow
 
Real-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFiReal-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFi
 
Streaming Data Lakes using Kafka Connect + Apache Hudi | Vinoth Chandar, Apac...
Streaming Data Lakes using Kafka Connect + Apache Hudi | Vinoth Chandar, Apac...Streaming Data Lakes using Kafka Connect + Apache Hudi | Vinoth Chandar, Apac...
Streaming Data Lakes using Kafka Connect + Apache Hudi | Vinoth Chandar, Apac...
 
Your first ClickHouse data warehouse
Your first ClickHouse data warehouseYour first ClickHouse data warehouse
Your first ClickHouse data warehouse
 
AWS vs Azure vs Google Cloud Storage Deep Dive
AWS vs Azure vs Google Cloud Storage Deep DiveAWS vs Azure vs Google Cloud Storage Deep Dive
AWS vs Azure vs Google Cloud Storage Deep Dive
 
Bootstrapping state in Apache Flink
Bootstrapping state in Apache FlinkBootstrapping state in Apache Flink
Bootstrapping state in Apache Flink
 
How to build a streaming Lakehouse with Flink, Kafka, and Hudi
How to build a streaming Lakehouse with Flink, Kafka, and HudiHow to build a streaming Lakehouse with Flink, Kafka, and Hudi
How to build a streaming Lakehouse with Flink, Kafka, and Hudi
 

Viewers also liked

Opti̇mi̇zi̇ng Data Access
Opti̇mi̇zi̇ng Data AccessOpti̇mi̇zi̇ng Data Access
Opti̇mi̇zi̇ng Data AccessEmrah METE
 
Oracle'da Transaction Yönetimi
Oracle'da Transaction YönetimiOracle'da Transaction Yönetimi
Oracle'da Transaction YönetimiEmrah METE
 
Analytical Functions for DWH
Analytical Functions for DWHAnalytical Functions for DWH
Analytical Functions for DWHEmrah METE
 
Useful Features of Oracle SQL Developer
Useful Features of Oracle SQL DeveloperUseful Features of Oracle SQL Developer
Useful Features of Oracle SQL DeveloperEmrah METE
 
Emrah METE - Oracle Cloud Day 2015 12c SQL New Features
Emrah METE - Oracle Cloud Day 2015 12c SQL New Features Emrah METE - Oracle Cloud Day 2015 12c SQL New Features
Emrah METE - Oracle Cloud Day 2015 12c SQL New Features Emrah METE
 
Veri Ambarları için Oracle'ın Analitik SQL Desteği
Veri Ambarları için Oracle'ın Analitik SQL DesteğiVeri Ambarları için Oracle'ın Analitik SQL Desteği
Veri Ambarları için Oracle'ın Analitik SQL DesteğiEmrah METE
 
Oracle PL/SQL Best Practices
Oracle PL/SQL Best PracticesOracle PL/SQL Best Practices
Oracle PL/SQL Best PracticesEmrah METE
 
Analitiği Kullanarak Yüksek Performans Göstermek ve Lider Olmak Hakan Yılmaz...
Analitiği Kullanarak Yüksek Performans Göstermek ve Lider Olmak  Hakan Yılmaz...Analitiği Kullanarak Yüksek Performans Göstermek ve Lider Olmak  Hakan Yılmaz...
Analitiği Kullanarak Yüksek Performans Göstermek ve Lider Olmak Hakan Yılmaz...Webrazzi
 
Performans Değerlendirmesinde Sonuçların Kullanılması
Performans Değerlendirmesinde Sonuçların KullanılmasıPerformans Değerlendirmesinde Sonuçların Kullanılması
Performans Değerlendirmesinde Sonuçların KullanılmasıPusula360
 
Performans Değerlendirmesinde Yapılan Hatalar ve Çözümleri
Performans Değerlendirmesinde Yapılan Hatalar ve ÇözümleriPerformans Değerlendirmesinde Yapılan Hatalar ve Çözümleri
Performans Değerlendirmesinde Yapılan Hatalar ve ÇözümleriPusula360
 
Kadın ve eğitim
Kadın ve eğitimKadın ve eğitim
Kadın ve eğitimgunessec
 
SunumTürkiye'de Kadın Hakları
SunumTürkiye'de Kadın HaklarıSunumTürkiye'de Kadın Hakları
SunumTürkiye'de Kadın HaklarıMehveş Ekşiler
 
Creative Thinking
Creative ThinkingCreative Thinking
Creative ThinkingTony Yoo
 
Culture Code: Creating A Lovable Company
Culture Code: Creating A Lovable CompanyCulture Code: Creating A Lovable Company
Culture Code: Creating A Lovable CompanyHubSpot
 

Viewers also liked (17)

Opti̇mi̇zi̇ng Data Access
Opti̇mi̇zi̇ng Data AccessOpti̇mi̇zi̇ng Data Access
Opti̇mi̇zi̇ng Data Access
 
Oracle'da Transaction Yönetimi
Oracle'da Transaction YönetimiOracle'da Transaction Yönetimi
Oracle'da Transaction Yönetimi
 
Analytical Functions for DWH
Analytical Functions for DWHAnalytical Functions for DWH
Analytical Functions for DWH
 
Useful Features of Oracle SQL Developer
Useful Features of Oracle SQL DeveloperUseful Features of Oracle SQL Developer
Useful Features of Oracle SQL Developer
 
Emrah METE - Oracle Cloud Day 2015 12c SQL New Features
Emrah METE - Oracle Cloud Day 2015 12c SQL New Features Emrah METE - Oracle Cloud Day 2015 12c SQL New Features
Emrah METE - Oracle Cloud Day 2015 12c SQL New Features
 
Veri Ambarları için Oracle'ın Analitik SQL Desteği
Veri Ambarları için Oracle'ın Analitik SQL DesteğiVeri Ambarları için Oracle'ın Analitik SQL Desteği
Veri Ambarları için Oracle'ın Analitik SQL Desteği
 
Oracle PL/SQL Best Practices
Oracle PL/SQL Best PracticesOracle PL/SQL Best Practices
Oracle PL/SQL Best Practices
 
Analitiği Kullanarak Yüksek Performans Göstermek ve Lider Olmak Hakan Yılmaz...
Analitiği Kullanarak Yüksek Performans Göstermek ve Lider Olmak  Hakan Yılmaz...Analitiği Kullanarak Yüksek Performans Göstermek ve Lider Olmak  Hakan Yılmaz...
Analitiği Kullanarak Yüksek Performans Göstermek ve Lider Olmak Hakan Yılmaz...
 
Kafe in final-sunumu
Kafe in final-sunumuKafe in final-sunumu
Kafe in final-sunumu
 
Performans Değerlendirmesinde Sonuçların Kullanılması
Performans Değerlendirmesinde Sonuçların KullanılmasıPerformans Değerlendirmesinde Sonuçların Kullanılması
Performans Değerlendirmesinde Sonuçların Kullanılması
 
Performans Değerlendirmesinde Yapılan Hatalar ve Çözümleri
Performans Değerlendirmesinde Yapılan Hatalar ve ÇözümleriPerformans Değerlendirmesinde Yapılan Hatalar ve Çözümleri
Performans Değerlendirmesinde Yapılan Hatalar ve Çözümleri
 
Kadın ve eğitim
Kadın ve eğitimKadın ve eğitim
Kadın ve eğitim
 
SunumTürkiye'de Kadın Hakları
SunumTürkiye'de Kadın HaklarıSunumTürkiye'de Kadın Hakları
SunumTürkiye'de Kadın Hakları
 
Competency Mapping for Performance Management
Competency Mapping for Performance ManagementCompetency Mapping for Performance Management
Competency Mapping for Performance Management
 
Creative Thinking
Creative ThinkingCreative Thinking
Creative Thinking
 
Culture Code: Creating A Lovable Company
Culture Code: Creating A Lovable CompanyCulture Code: Creating A Lovable Company
Culture Code: Creating A Lovable Company
 
Culture
CultureCulture
Culture
 

Similar to Oracle’ın parallel execution yetenekleri ve performans

Databse & Technology 2 _ Shan Nawaz _ Oracle 11g Top 10 features - not your u...
Databse & Technology 2 _ Shan Nawaz _ Oracle 11g Top 10 features - not your u...Databse & Technology 2 _ Shan Nawaz _ Oracle 11g Top 10 features - not your u...
Databse & Technology 2 _ Shan Nawaz _ Oracle 11g Top 10 features - not your u...InSync2011
 
Tungsten Use Case: How Gittigidiyor (a subsidiary of eBay) Replicates Data In...
Tungsten Use Case: How Gittigidiyor (a subsidiary of eBay) Replicates Data In...Tungsten Use Case: How Gittigidiyor (a subsidiary of eBay) Replicates Data In...
Tungsten Use Case: How Gittigidiyor (a subsidiary of eBay) Replicates Data In...Continuent
 
PL/SQL Tips and Techniques Webinar Presentation
PL/SQL Tips and Techniques Webinar PresentationPL/SQL Tips and Techniques Webinar Presentation
PL/SQL Tips and Techniques Webinar PresentationEmbarcadero Technologies
 
Rajnish singh(presentation on oracle )
Rajnish singh(presentation on  oracle )Rajnish singh(presentation on  oracle )
Rajnish singh(presentation on oracle )Rajput Rajnish
 
Embulk - 進化するバルクデータローダ
Embulk - 進化するバルクデータローダEmbulk - 進化するバルクデータローダ
Embulk - 進化するバルクデータローダSadayuki Furuhashi
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal infoSynapseindiappsdevelopment
 
Migration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQLMigration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQLPGConf APAC
 
Performance Benchmarking: Tips, Tricks, and Lessons Learned
Performance Benchmarking: Tips, Tricks, and Lessons LearnedPerformance Benchmarking: Tips, Tricks, and Lessons Learned
Performance Benchmarking: Tips, Tricks, and Lessons LearnedTim Callaghan
 
PostgreSQL and Benchmarks
PostgreSQL and BenchmarksPostgreSQL and Benchmarks
PostgreSQL and BenchmarksJignesh Shah
 
Is It Fast? : Measuring MongoDB Performance
Is It Fast? : Measuring MongoDB PerformanceIs It Fast? : Measuring MongoDB Performance
Is It Fast? : Measuring MongoDB PerformanceTim Callaghan
 
El camino a las Cloud Native Apps - Introduction
El camino a las Cloud Native Apps - IntroductionEl camino a las Cloud Native Apps - Introduction
El camino a las Cloud Native Apps - IntroductionPlain Concepts
 
Ibm datastage online training in hyderabad
Ibm datastage online training in hyderabadIbm datastage online training in hyderabad
Ibm datastage online training in hyderabadGoLogica Technologies
 
SAP Open Source meetup/Speedment - Palo Alto 2015
SAP Open Source meetup/Speedment - Palo Alto 2015SAP Open Source meetup/Speedment - Palo Alto 2015
SAP Open Source meetup/Speedment - Palo Alto 2015Speedment, Inc.
 
Oracle Fusion Middleware on Exalogic Best Practises
Oracle Fusion Middleware on Exalogic Best PractisesOracle Fusion Middleware on Exalogic Best Practises
Oracle Fusion Middleware on Exalogic Best PractisesMichel Schildmeijer
 
Technical Introduction to PostgreSQL and PPAS
Technical Introduction to PostgreSQL and PPASTechnical Introduction to PostgreSQL and PPAS
Technical Introduction to PostgreSQL and PPASAshnikbiz
 
Powering GIS Application with PostgreSQL and Postgres Plus
Powering GIS Application with PostgreSQL and Postgres Plus Powering GIS Application with PostgreSQL and Postgres Plus
Powering GIS Application with PostgreSQL and Postgres Plus Ashnikbiz
 
Oracle Fusion Middleware provisioning with Puppet
Oracle Fusion Middleware provisioning with PuppetOracle Fusion Middleware provisioning with Puppet
Oracle Fusion Middleware provisioning with PuppetEdwin Biemond
 

Similar to Oracle’ın parallel execution yetenekleri ve performans (20)

Databse & Technology 2 _ Shan Nawaz _ Oracle 11g Top 10 features - not your u...
Databse & Technology 2 _ Shan Nawaz _ Oracle 11g Top 10 features - not your u...Databse & Technology 2 _ Shan Nawaz _ Oracle 11g Top 10 features - not your u...
Databse & Technology 2 _ Shan Nawaz _ Oracle 11g Top 10 features - not your u...
 
Parallel Programming
Parallel ProgrammingParallel Programming
Parallel Programming
 
OOW13 Exadata and ODI with Parallel
OOW13 Exadata and ODI with ParallelOOW13 Exadata and ODI with Parallel
OOW13 Exadata and ODI with Parallel
 
Tungsten Use Case: How Gittigidiyor (a subsidiary of eBay) Replicates Data In...
Tungsten Use Case: How Gittigidiyor (a subsidiary of eBay) Replicates Data In...Tungsten Use Case: How Gittigidiyor (a subsidiary of eBay) Replicates Data In...
Tungsten Use Case: How Gittigidiyor (a subsidiary of eBay) Replicates Data In...
 
PL/SQL Tips and Techniques Webinar Presentation
PL/SQL Tips and Techniques Webinar PresentationPL/SQL Tips and Techniques Webinar Presentation
PL/SQL Tips and Techniques Webinar Presentation
 
Rajnish singh(presentation on oracle )
Rajnish singh(presentation on  oracle )Rajnish singh(presentation on  oracle )
Rajnish singh(presentation on oracle )
 
Embulk - 進化するバルクデータローダ
Embulk - 進化するバルクデータローダEmbulk - 進化するバルクデータローダ
Embulk - 進化するバルクデータローダ
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal info
 
Migration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQLMigration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQL
 
Performance Benchmarking: Tips, Tricks, and Lessons Learned
Performance Benchmarking: Tips, Tricks, and Lessons LearnedPerformance Benchmarking: Tips, Tricks, and Lessons Learned
Performance Benchmarking: Tips, Tricks, and Lessons Learned
 
PostgreSQL and Benchmarks
PostgreSQL and BenchmarksPostgreSQL and Benchmarks
PostgreSQL and Benchmarks
 
Plantilla oracle
Plantilla oraclePlantilla oracle
Plantilla oracle
 
Is It Fast? : Measuring MongoDB Performance
Is It Fast? : Measuring MongoDB PerformanceIs It Fast? : Measuring MongoDB Performance
Is It Fast? : Measuring MongoDB Performance
 
El camino a las Cloud Native Apps - Introduction
El camino a las Cloud Native Apps - IntroductionEl camino a las Cloud Native Apps - Introduction
El camino a las Cloud Native Apps - Introduction
 
Ibm datastage online training in hyderabad
Ibm datastage online training in hyderabadIbm datastage online training in hyderabad
Ibm datastage online training in hyderabad
 
SAP Open Source meetup/Speedment - Palo Alto 2015
SAP Open Source meetup/Speedment - Palo Alto 2015SAP Open Source meetup/Speedment - Palo Alto 2015
SAP Open Source meetup/Speedment - Palo Alto 2015
 
Oracle Fusion Middleware on Exalogic Best Practises
Oracle Fusion Middleware on Exalogic Best PractisesOracle Fusion Middleware on Exalogic Best Practises
Oracle Fusion Middleware on Exalogic Best Practises
 
Technical Introduction to PostgreSQL and PPAS
Technical Introduction to PostgreSQL and PPASTechnical Introduction to PostgreSQL and PPAS
Technical Introduction to PostgreSQL and PPAS
 
Powering GIS Application with PostgreSQL and Postgres Plus
Powering GIS Application with PostgreSQL and Postgres Plus Powering GIS Application with PostgreSQL and Postgres Plus
Powering GIS Application with PostgreSQL and Postgres Plus
 
Oracle Fusion Middleware provisioning with Puppet
Oracle Fusion Middleware provisioning with PuppetOracle Fusion Middleware provisioning with Puppet
Oracle Fusion Middleware provisioning with Puppet
 

Recently uploaded

Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxfenichawla
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...ranjana rawat
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 

Recently uploaded (20)

Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 

Oracle’ın parallel execution yetenekleri ve performans

  • 1. Oracle’ın Parallel Execution Yetenekleri ve Performans İncelemesi Emrah METE TURKCELL TEKNOLOJİ
  • 2. 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
  • 3. İç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
  • 5. 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 !
  • 6. 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.
  • 7. 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
  • 8. Parallel Query • select count(status) from big_table <<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010)
  • 9. <<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010)
  • 10. 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)
  • 11. Parallel DDL • CREATE INDEX • CREATE TABLE AS SELECT • ALTER INDEX REBULD • ALTER TABLE MOVE • ALTER TABLE SPLIT|COALESCE PARTITION • ALTER INDEX SPLIT PARTITION
  • 12. • Create Table big_table as Select .... Parallel DDL <<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010)
  • 13. Procedural Parallelism • Selecting Rows • Processing them • Insert/ Update another table <<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010)
  • 14. Procedural Parallelism Parallel Pipelined Function Unparallelized, Unpipelined Table Functions Pipelining and Parallel Execution
  • 15. Procedural Parallelism • Select * from table(dbms_xplan.display); <<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010)
  • 16. DBMS_PARALLEL_EXECUTE (Do it yourself parallesim) <<Expert, Oracle Database Architecture 11g,10g,9i>> Tom KYTE (2010)
  • 18. 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
  • 21. 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

Editor's Notes

  1. Büyük seri görevlerin, eş zamanlı çalıştırılabilecek küçük görev parçalarına bölünmesi ve bu küçük görev parçalarının çalıştırılarak sonuçlarının toplanarak nihai sonuca ulaşılması.
  2. Parallel Execution improves processing for: + Large table scans, joins or partitioned index scans +Creations of large indexes +Creation of large tables +bulk inserts, updates,merges and deletes
  3. 1- İşleyeceğimiz task seri olarak dakikalar, saatler veya günlerce sürüyorsa paralel execute etmek için bu task seçilebilir. Taskın büyüklüğü önemli bir nokta. Aksi takdirde saniyeler mertebesinde çalışan bir taskı paralel çalıştırırsak, paralel sonuçların koordinasyon maliyeti seri çalışmasından daha fazla olacak ve daha kötü bir performans elde edilecek. OLAP sistemlerdeki tasklar paralel çalıştırmak için daha uygun. OLTP sistemlerde paralel erişen user sayısı çok fazla ve görevlerin karakteristikleri kısa ve response time odaklı bu yüzden paralel çalıştırmaya uygun sistemler değiller, paralel çalştırma opsyonu bu sistemlerde felakete yol açabilir. 2- Donanım karakteristiği --- Sysmetric Multipreocessor, Clusters, massively parallel systems --- Sufficent I/O bandwith: I/O kanallarım yeterli olmalı çünkü çekeceğim data birden fazla diske dağılmış olabilir, bu sebepten ötürü eş zamanlı birden fazla okuma isteği gerçekleşecektir bundan dolayı bilgisayarla disk arasında data taşınmasını sağlayacak sayıda I/O kanallarımın olması gerekiyor. --- CPU underutilized or intermittently(aralıklı) used (typically usage less than %30) --- Sufficient memory to support additional memory intensive process, such as sorts, hashing and I/O buffers. 3- Sistemde yeterli available kaynak olmalıki, paralel operasyonlarımız kendisi için yeterli kaynağı alsın ve paralel çalışabilsin.
  4. Parallik 3 Seviyede + Statement Level + Object Level + Instance Level ---------------------------------------------------------------------------------------------------- In Oracle, the degree of parallelism consists of two components, the number of instances to use and the number of slave processes to use on each instance. In Oracle's SQL syntax, the keywords INSTANCES and DEGREE are always used to specify values for these two components as follows: INSTANCES: Specifies the number of instances to use DEGREE: Specifies the number of slave processes to use on each instance INSTANCES applies only to the Oracle Parallel Server configuration. Unless you are using OPS, the value of INSTANCES should be set to 1; any other value is meaningless.  Level of parallel execution The degree of parallelism used for a SQL statement can be specified at three different levels: Statement level  Using hints or the PARALLEL clause Object level Found in the definition of the table, index, or other object Instance level  Using default values for the instance Oracle determines the degree of parallelism to use for a SQL statement by checking each item in this list in the order shown. Oracle first checks for a degree of parallelism specification at the statement level. If it can't find one, it then checks the table or index definition. If the table or index definition does not explicitly specify values for DEGREE and INSTANCES, Oracle uses the default values established for the instance. ------------------------------- Datanın fiziksel olarak dağılmış olması paralellikten için daha optimal bir durum oluşturabilir. Aşağıdaki yolları izleyerek datayı fiziksel olarak dağıtabilirz. Using Raid Using ASM Using partitioning Using multiple data files in a sşngle tablespace
  5. alter table big_table parallel; vs alter table big_table parallel 8; select sid,qcsid,server#,degree from v$px_session order by server# desc  kaç parallel açtığını görmek için -- alter table big_table noparallel; -- Seri -- Elapsed: 00:01:17.89 -- alter table big_table parallel 4; -- 4 Parallelde -- Elapsed: 00:00:04.10 -- alter table big_table parallel 8; -- 8 Parallelde -- Elapsed: 00:00:02.30 -- alter table big_table parallel 16; -- 8 Parallelde -- Elapsed: 00:00:03.30 -- alter table big_table parallel; -- 32 Parallelde -- Elapsed: 00:00:12.27
  6.  Parallel dml’in çalışabilmesi için operasyon yapılacak tablonun paralel yaratılması yeterli değildir. Bunun yanında Alter session enable parallel dml; cümlesininde çalıtırılması gerekir.  Büyük boyutlu DML işlemlerini yeterli CPU ve I/O bandwith i varsa performans anlamında çalışma süresini oldukça düşürür.  Makinedeki tüm kaynakları tüketmeye çalışır bu yüzden OLTP sistemlerde tercih edilmezler. OLTP userlarına paralel dml yeteneği verilmemelidir.  OLAP sistemlerde paralel erişen user sayısı OLTP ye göre daha az olduğundan kaynakların tamamı utilize edilmek istenenebilir. Bu sistemlerde kullanmak mantıklıdır. DWH lerde oldukça kullanışlı bir yapıdır.  Paralel sorgulama 100 user’ın yarattığı iş yükünü sistemde yaratır bu yüzden OLTP sistemlerde böyle bir kullanım söz konusu olmaz. İşler bitmemeye başlar. Her bir paralel execution server ayrı bir transaction yaratır ve kendilerine özel undo segmentleri vardır. Tüm transaction coordinator session’ı ile commitlenirler. ----------------------KISITLAR----------------------------------------------------------- Trigger olan tablolarda PDML operasyonları yapamayız. Trigger büyük bir overhead update işlemlerinde ama PDML ise hızlı çalışmak isteyen bir yapı bu yüzden trigger olan bir tabloda PDML çalışmaz. Self Referential Integrity olan bir tabloda PDML yine yapılamaz. Bunun nedeni datanın ayrı olan her parçası ayrı transanactionlarda ve ayrı sessionlarda değiştirilir bu yüzden deadlock veya herhangi bir locking issues a sebebiyet verilebilir bu yüzden SRI bulunan bir tabloda PDML yapılamaz. PDML işlemi sonunda commit veya rollback yapılana kadar o tabloya erişilemez. ORA-12838: cannot read/modify an object after modifying it in parallel. Advanced replication trigger based olduğu için PDML işlemini bu tarz durumlarda kullanamayız. Bir tabloda deffered constraints varsa bu tablo PDML li destekemez. Eğer bir tabloda partition varsa bitmap index veya LOB kolon içeren tablolarda PDML çalıştırılabilir. Ancak bu case de parallelik sayısı partition sayısı ile sınırlıdır. Aynı partition a birden fazla session açıp parttion bazında parallelik yapamaz. Her partition’a bir execution servers atar. Distirbuted transactionlar da PDML’i desteklemez. Clustered tablolar PDML’i desteklemez. Yukarıdaki kısıtlar ihlal edildiği takdirde 2 olay olabilir. 1- DML seri çalışabilir. 2- Hata alınır. ORA-12838 gibi. -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  7. İlk 4 komut individual table veya index partition lar içinde çalışabilir. Bu sayede bir tabloya ait individual bir partition ı paralel bir şekilde taşıyabiliriz (MOVE). Paralel DDL Oracle’ın en iyi ölçülebilir fayda sağlayan özelliklerinden biridir. Paralel sorgu ile kullanarak (as select) uzun süren operasyonları kısa sürede yapabiliriz. Paralel DDL sürdürlebilirlik ve yönetim noktasında etkisi doğrudan bizleredir yani DBA lere ve Developerlaradır. CREATE INDEX: Multiple parallel execution servers can scan the table, sort the data, and write the sorted segments out to the index structure. • CREATE TABLE AS SELECT: The query that executes the SELECT may be executed using parallel query, and the table load itself may be done in parallel. • ALTER INDEX REBULD: The index structure may be rebuilt in parallel. • ALTER TABLE MOVE: A table may be moved in parallel. • ALTER TABLE SPLIT|COALESCE PARTITION: The individual table partitions may be split or coalesced in parallel. • ALTER INDEX SPLIT PARTITION: An index partition may be split in parallel. --------------------------------- (Her bir paralel execution server kendine ayrın bir extent allocate eder ve burada çalışır.) Create table as select’de extent lerle alakalı bir case var, extentlerde ölü yerler oluşması gibi. 1010 MB bir dosya yüklediğimiz durumda 100 MB extentler kullandığımızı varsayalım ve 10 paralelde bu işi yapmış olalım. Bu durumda her bir paralel session ın 101 MB yükkediğini varsayalım. Her session ilk 100 MB için bir extenti tam doldurdu ve elinde kalan 1 mb için yeni bir extent allocate etmek durumunda kaldı. Bu durumda ilk bakışta 11 extentin yeteceği beklenirken 1 mb için her execution server’ın yeni extentler alması toplamdaki extent sayısını 20 ye çıkarttı. 990 MB lık kullanılmayan ölü bir alan allocate edilmiş olundu. Bu alanlar daha sonra doldurulacaktır ancak şuan elimizde 990 mb ölü bir alan mevcut. Bu durumu engelleme adına Extent Trimming mevzusu meydana çıkıyor. Oracle her paralel execution serverının aldığı son extentini ölü yerler oluşmaması adına execution servera yetecek şekilde trim etme olayına giriyor. Trim İşleminin gerçekleşebilmesi Table Space yönetimi ile doğrudan alakalı. Dictionary Managed Tablespaces Auto Allocated TableSpace(AUTOALLOCATE) vs Uniform Allocated TableSpace(UNIFORM_SIZE)
  8. AUTOALLOCATE vs UNIFORM_SIZE Table Space
  9. PDML bu case’de aşırı kaynak tüketmekten başka çokta fayda sağlamayacak Select * from some table ı parallelştirsek performasımızda yine kademeli bir artış görmemiz çok zor. Complex processimizden sonra DML’imizi paralelleştirmek yine performansımızı iyileştirmicek çünkü döngü içinde tek bir satırla ilgili bir işlem yapıyoruz o yüzden etkilenmicez. Burada yapacağımız update veya insert i array processing yaparak değiştirmek bir kademe iyileştirme sağlayabilir ama bu 2 – 3 -4 kat gibi iyileşmeler olmayabilir. Bu tarz durumda işliyeceğim veri seti her geçen gün büyüdüğünü varsayalım, bu durumda çalışma zamanı git gide yavaşlayacak? Performansı 2 3 4 kat gibi seviyelere çıkarmam gerekiyor Ne yapıcam? 1- Parallel Pipelined Function 2- Do it yourself parallelism – dbms_parallel_execute
  10. Execution of a table function can be parallelized, and returned rows can be streamed directly to the next process without intermediate staging. Rows from a collection returned by a table function can also be pipelined—that is, iteratively returned as they are produced instead of in a batch after all processing of the table function's input is completed. Streaming, pipelining, and parallel execution of table functions can improve performance: By enabling multithreaded, concurrent execution of table functions By eliminating intermediate staging between processes By improving query response time: With non-pipelined table functions, the entire collection returned by a table function must be constructed and returned to the server before the query can return a single result row. Pipelining enables rows to be returned iteratively, as they are produced. This also reduces the memory that a table function requires, as the object cache does not need to materialize the entire collection. By iteratively providing result rows from the collection returned by a table function as the rows are produced instead of waiting until the entire collection is staged in tables or memory and then returning the entire collection Figure 13-1 shows a typical data-processing scenario in which data goes through several (in this case, three) transformations, implemented by table functions, before finally being loaded into a database. In this scenario, the table functions are not parallelized, and the entire result collection must be staged after each transformation.
  11. (Yukarıdaki örnek fonksyon, Parallel Pipelined Table Function Parallel Table Function olmasını sağlan özellik Parallel_Enable cümlesi ve içeri bir adet cursor alması) ) Pipe Row deyimi PL/SQL Routinelerimizin geriye tablo döndürmesini sağlayan bir yapı. Böylelikle fonksoynumuza doğrudan select yazma hakkında sahip olabiliyoruz. Input bir refcursor olmalı. PARALLEL_ENABLE cümlesini vermek durumundayız. Gelen Cursor’ı partitionlamak zorundayız. Partitionlamayı by any diyerek geçebiliriz. Bu durumda Oracle var olan datayı açtığı paralel prosesler arasında rastgele paylaştırır. Ancak burada hash veya range partitioning de kullanabiliriz vereceğimiz specifik bir kolon üzerinden. Ancak compiler’ın cursor içinde hangi kolonların olduğunu bilmesi için strongly typed ref cursor tanımlamak zorundayız. Örnek: Strongly Typed Cursor TYPE t_ref_cursor IS REF CURSOR RETURN cursor_variable_test%ROWTYPE;   c_cursor  t_ref_cursor;
  12. Sistemde job create etme yetkisi olmalıdır. Paketin sahip olduğu tüm metodlar commit işlemi gerçekleştirir. Oracle’da DML operasyonlarını otomatize eden bir yapı.
  13. Sorgularımızı paralel işleyen paralel execution server ların sayısı degree of parallelism olarak bilinir. Açılacak paralel execution birden çok CPU lu sistemler için tasarlanmış yapılardır. Oracle da parallel işleme mimarisi kendimizin belirleyebileceği gibi, oracle’a güvenip paralellik seviyesinin ayarlanmasını onun kontrolüne bırakabiliriz. Fixed DoP  ALTER TABLES sales PARALLEL 8; ALTER TABLE customers PARALLEL 4; Oracle’da biri 4 diğer 8 olarak paralellik seviyesi ayarlanmış tablolara erişim ikisi içinde en büyük paralellik seviyesine göre ayarlanır. Bu durumda eş zamanlı 2 tabloyada erişim var ise 16 proses tahsis edilir ve 8 er 8 er paylaşılır. (Kaynak Oracle® Database VLDB and Partitioning Guide) Default DoP nasıl hesaplanır------ Alter table x parallel; default dop, kontrol oracle’a bırakılmış durumda. For a single instance, DOP = PARALLEL_THREADS_PER_CPU x CPU_COUNT For an Oracle RAC configuration, DOP = PARALLEL_THREADS_PER_CPU x CPU_COUNT x INSTANCE_COUNT Default DoP ne kadar çok kaynak kullanırsa o kadar hızlı biteceğini sandığından sistemdeki tüm available kaynakları tüketmeye çalışır bu sebepten ötürü çok user ın bağlandığı bir sistemde default paralellik önerilen bir şey değildir. Bu yüzden Oracle Resoruce Manager ile paralel sorguların kaynak tüketimine sınır getirilebilir. PARALLEL_DEGREE_POLICY parametresi AUTO-LIMITED-MANUAL şeklinde ayarlanabilir. ---------------------- Optimizer ilk etapta sorgunun ihtiyacı olan tüm scan operasyonlarını değerlendirerek bir parallelik seviyesi belirliyor sorgu için. Daha sonraki adımda sistemde tanımlı olan Parallel_degree_limit parametresine bakarak kendi bulduğu parallelik seviyesi ile sistemde limitlendirilmiş değeri kontrol edip kendi bulduğu seviyenin sistemi boğum boğmayacağına bakıyor eğer bu bulduğu değer tanımlı parametreden küçük bunu alıyor değilse paralel limit parametresinde tanımlanmış değeri alıyor. (Parallel Degreee Limitin default değeri PARALLEL_THREADS_PER_CPU x CPU_COUNT x INSTANCE_COUNT dur.). Thresholuld Zamnıda parallel_min_time_threshould değerine göre karşılaştırılır. Bu değer ilk olarak default 10 sn olarak gelir. Eğer bu değeri AUTO olarak set edersek sistem parallel_min_time_threshould değerini hesaplar. --------------------------------------------------------------- PARALLEL_DEGREE_POLICY Manual – Limited ve Auto olabilir. Default olarak manual gelir, manual durumdayeken automatic degree of parallelism, statement queuing, and in-memory parallel execution özellikleri kapalıdır. Limited seçeneğinde auto DoP açık gelir ama statement queue ve in memory parallel execution kapalıdır. Auto automatic degree of parallelism, statement queuing, and in-memory parallel execution seçenkelerinin hepsi açılır. PARALLEL_DEGREE_LIMIT CPU(Default) The maximum degree of parallelism is limited by the number of CPUs in the system. The formula used to calculate the limit is PARALLEL_THREADS_PER_CPU * CPU_COUNT * the number of instances available (by default, all the opened instances on the cluster but can be constrained using PARALLEL_INSTANCE_GROUP or service specification). This is the default. IO The maximum degree of parallelism the optimizer can use is limited by the I/O capacity of the system. The value is calculated by dividing the total system throughput by the maximum I/O bandwidth per process. You must run the DBMS_RESOURCE_MANAGER.CALIBRATE_IO procedure on the system in order to use the IO setting. This procedure will calculate the total system throughput and the maximum I/O bandwidth per process. integer A numeric value for this parameter specifies the maximum degree of parallelism the optimizer can choose for a SQL statement when automatic degree of parallelism is active. Automatic degree of parallelism is only enabled if PARALLEL_DEGREE_POLICY is set to AUTO or LIMITED. PARALLEL_MIN_TIME_THRESHOLD AUTO: Default olarak 30 sn geliyor. INTEGER: El ilede verilebiliyor. PARALLEL_MIN_TIME_THRESHOLD specifies the minimum execution time a statement should have before the statement is considered for automatic degree of parallelism. By default, this is set to 30 seconds. Automatic degree of parallelism is only enabled if PARALLEL_DEGREE_POLICY is set to AUTO or LIMITED.
  14. Bu mekanizmanın aktif olabilmesi için paralel_degree_policy parametresinin AUTO olması gerekmektedir. Eğer işimizin kuyruğa girmesini istemiyorsak NO_STMT_QUEUING hinti yazılır. Sistemimzin açabileceği available proses sayısı default olarak DoP*4 kadardır. Benim PC için 16. Bu bilgi PARALLEL_SERVERS_TARGET parametresinde tutulur. Eğer sistemimde 64 tane maximum active server bulunabiliyorsa ve bunların 60 tanesi şuan kullanılıyorsa yeni gelen 16 lık bir istek için yeteri kadar server olmadığı için bu gelen yeni istek kuyruğa yollanacaktır. Birde sistemde PARALLEL_MAX_SERVERS parametresi var bu parametre PARALLEL_SERVERS_TARGET parametresinden daha büyük, bunun nedeni paralel çalışacak işlerin seri çalışacak işlerin kaynağından yememsi durumu, eğer bu 2 parametrebirbirine eşit olsaydı tüm kaynaklar paralel işlemler tarafından alınabilirdi böylelikle seri çalışacak işlere kaynak kalmazdı. Queue da ne kadar iş beklerse beklesin seri işler hiç bir zaman bekletilmez ve hemen çalıştırılır.