9i並行執行的限制
SELECT zsxh_dk, pzxh, zspzxh, nsr_key, nsrsbh, nsrmc, nsbm,
hy_dm, djzclx_dm, nsrzt_dm, nsr_swjg_dm, sssq_q_sk, sssq_z_sk
FROM ft_sb_zsxx
SQL> select decode(a.QCSERIAL#, null, 'PARENT', 'CHILD') stmt_level,
2 a.SID,
3 a.SERIAL#,
4 b.USERNAME,
5 b.OSUSER,
6 b.SQL_HASH_VALUE,
7 b.SQL_ADDRESS,
8 a.DEGREE,
9 a.REQ_DEGREE
10 from v$px_session a, v$session b
11 where a.SID = b.SID
12 order by a.QCSID, stmt_level desc;
STMT_L SID SERIAL# USERN OSUSER SQL_HASH_VALUE SQL_ADDRESS DEGREE REQ_DEGREE
------ ---------- ---------- ----- --------------- -------------- ---------------- ---------- ----------
PARENT 32 43 JCZC Administrator 0 00
CHILD 26 29 JCZC Administrator 1545317109 07000000539253F8 4 8
CHILD 25 45 JCZC Administrator 1545317109 07000000539253F8 4 8
CHILD 34 7 JCZC Administrator 1545317109 07000000539253F8 4 8
CHILD 36 3 JCZC Administrator 1545317109 07000000539253F8 4 8
由於可能存在程式碼欄位在程式碼表中不能找到,所以需要替換
SELECT ZSXH_DK,PZXH,ZSPZXH, NSR_KEY,NSRSBH,NSRMC,NSBM,
nvl((SELECT A.HYML_DM FROM DI_HYML A WHERE A.HYML_DM = B.HY_DM),'ZZZZ') HY_DM,
DJZCLX_DM,NSRZT_DM,NSR_SWJG_DM,SSSQ_Q_SK,SSSQ_Z_SK
FROM FT_SB_ZSXX B
SQL> select decode(a.QCSERIAL#, null, 'PARENT', 'CHILD') stmt_level,
2 a.SID,
3 a.SERIAL#,
4 b.USERNAME,
5 b.OSUSER,
6 b.SQL_HASH_VALUE,
7 b.SQL_ADDRESS,
8 a.DEGREE,
9 a.REQ_DEGREE
10 from v$px_session a, v$session b
11 where a.SID = b.SID
12 order by a.QCSID, stmt_level desc;
no rows selected
這個時候是無法並行的,加了提示仍然不行
SELECT /*+parallel(B,4)*/ZSXH_DK,PZXH,ZSPZXH, NSR_KEY,NSRSBH,NSRMC,NSBM,
nvl((SELECT A.HYML_DM FROM DI_HYML A WHERE A.HYML_DM = B.HY_DM),'ZZZZ') HY_DM,
DJZCLX_DM,NSRZT_DM,NSR_SWJG_DM,SSSQ_Q_SK,SSSQ_Z_SK
FROM FT_SB_ZSXX B
回來測試了下,發現10g可以並行
SQL> SELECT DEGREE FROM dba_tables WHERE table_name='TEST' AND wner='CTAIS2'
2 ;
DEGREE
----------
8
alter session set "_px_trace"= "all";
SELECT A.*,
NVL((SELECT B.SWJG_DM FROM DM_SWJG B WHERE B.SWJG_DM = A.FLAG), 'z') swjg
FROM TEST A
alter session set "_px_trace"= "none";
在跟蹤檔案中可以看到ORACLE在計算並行度
但是在9i下,TRACE檔案感覺是隻列出了表或者提示的並行屬性,就突然中斷了。
估計是9i不允許這樣的並行執行。
另外,如果是insert ... select 這樣的語句,在9i下設定了
alter session force parallel dml,看起來是並行執行的,但是不過並行salve的子SQL
發現其並行的是INSERT操作,並不是SELECT操作
我們的應用主要是點陣圖索引,怕多個子程式相互造成鎖,索引就打住,沒用這個設定
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8242091/viewspace-588742/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 並行執行並行
- 限制軟體執行的方法
- 如何取得Oracle並行執行的traceOracle並行
- 9i奇怪的AJ執行計劃
- 並行執行任務的Fork/Join框架並行框架
- 並行執行的學習與測試並行
- 26、多執行緒與並行執行緒並行
- 多執行緒並行執行,然後彙總結果執行緒並行
- Laravel 佇列執行頻率限制Laravel佇列
- Linux執行緒(程式)數限制Linux執行緒
- Android Oreo 後臺執行限制Android
- 限制SQLPLUS工具可執行的命令SQL
- Oracle“並行執行”——監控檢視Oracle並行
- 課程 3: 執行緒與並行執行緒並行
- 利用並行提高sql執行效率(轉)並行SQL
- 9i上JOB停止自動執行
- Docker部署並執行ElasticsearchDockerElasticsearch
- Java中使用ThreadPoolExecutor並行執行獨立的單執行緒任務Javathread並行執行緒
- 在單機上執行julia並行加速的例子並行
- 多執行緒訪問—限制某個方法只執行一次執行緒
- Linux 執行緒(程式)數限制分析Linux執行緒
- 限制程式執行例項數 (轉)
- PHP多程式並行執行php指令碼PHP並行指令碼
- 使用resource_manager限制使用者並行度並行
- 從偽並行的 Python 多執行緒說起並行Python執行緒
- Java多執行緒--併發和並行的區別Java執行緒並行
- 非同步與並行~CancellationTokenSource對執行緒的作用非同步並行執行緒
- 配置並執行Activiti Explorer
- oracle建立job並執行jobOracle
- 搭建go環境並執行Go
- oracle sqlprofile 固定執行計劃,並遷移執行計劃OracleSQL
- 用並行查詢讓SQL Server加速執行並行SQLServer
- 使用並行執行——資料倉儲手冊並行
- 突破常規限制執行asp木馬(轉)
- C#並行,多執行緒程式設計並行集合和PLINQ的例項講解並行執行緒程式設計
- Java多執行緒並行處理任務的實現Java執行緒並行
- vc2012並行執行的2種方法並行
- 非同步與並行~List<T>是執行緒安全的嗎?非同步並行執行緒