Oracle中的高效SQL編寫PARALLEL解析
Oracle 的并行執(zhí)行是一種分而治之的方法. 執(zhí)行一個(gè) SQL 時(shí), 分配多個(gè)并行進(jìn)程同時(shí)執(zhí)行數(shù)據(jù)掃描,連接以及聚合等操作, 使用更多的資源(CPU,IO等),得到更快的SQL響應(yīng)時(shí)間。并行執(zhí)行是充分利用硬件資源,處理大量數(shù)據(jù)時(shí)的核心技術(shù)。
并行使用場(chǎng)景:OLAP系統(tǒng)、OLTP里的諸如CREATE INDEX的操作,加速創(chuàng)建索引,在OLTP系統(tǒng)中要慎用。
什么時(shí)候會(huì)用到并行:DDL(CREATE INDEX、CREATE TABLE AS等)、DML(UPDATE,DELETE,MERGE,INSERT INTO SELECT等)、SELECT(FULL TABLESCAN,INDEX FAST FULL SCAN,PARTITIONED INDEX RANGE SCAN等)
看下面的例子:并行操作的執(zhí)行計(jì)劃:
1)TQ(Table queue) 的編號(hào)代表了并行執(zhí)行計(jì)劃中, 數(shù)據(jù)分發(fā)的順序。
2)PQ Distribute 列: 數(shù)據(jù)的分發(fā)方式.。
3)In-out 列: 表明數(shù)據(jù)的流動(dòng)和分發(fā)。
PCWC:parallel combine with child.
PCWP:parallel combine with parent.
P->P:parallel to parallel.
P->S:parallel to Serial并行操作寫法注意點(diǎn):
1)只寫PARALLEL(sales8)則customers部分沒有并行,從而影響整體并行效率。
2)建議并行寫成PARALLEL(8),不要帶別名,則sales和customers都為DOP=8的并行。對(duì)于并行DML:
首先需要執(zhí)行:
ALTERSESSION FORCE PARALLEL DML或ALTER SESSION ENABLE PARALLEL DML開啟并行DML
然后執(zhí)行DML語句。
對(duì)于INSERTINTO SELECT 的并行操作需要注意:寫別名必須INSERT和SELECT部分都寫,建議不要寫別名則都并行注意表和索引的并行度要設(shè)為1,以防自動(dòng)并行導(dǎo)致性能問題。
到此這篇關(guān)于Oracle中的高效SQL編寫PARALLEL解析的文章就介紹到這了,更多相關(guān)Oracle的PARALLEL解析內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle在表中有數(shù)據(jù)的情況下修改字段類型或長(zhǎng)度的解決方法
這篇文章主要介紹了Oracle在表中有數(shù)據(jù)的情況下修改字段類型或長(zhǎng)度,修改其某個(gè)字段的類型或改變他的長(zhǎng)度,由于表中有數(shù)據(jù),不能直接修改,需要換個(gè)方法,接下來通過本文給大家介紹下解決方法,需要的朋友可以參考下2022-10-10Oracle密碼過期如何取消密碼180天限制及密碼180天過期,賬號(hào)鎖住的問題
這篇文章主要介紹了Oracle密碼過期如何取消密碼180天限制及密碼180天過期,賬號(hào)鎖住的問題,需要的朋友可以參考下2018-12-12在客戶端配置TNS測(cè)試報(bào)錯(cuò)ORA-12170:TNS:連接超時(shí)
在Red Hat Enterprise Linux Server Releae 5.5 成功安裝ORACLE 10g 后,在客戶端配置TNS后,測(cè)試是否可以連接到數(shù)據(jù)塊服務(wù)器,結(jié)果報(bào)錯(cuò):ORA-12170:TNS:連接超時(shí)2012-12-12解決ORA-12170:TNS connect timeout occurred問題
這篇文章主要介紹了解決ORA-12170:TNS connect timeout occurred問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12