日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql提高并行并行_oracle 并行之并行度篇

發(fā)布時(shí)間:2025/3/19 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql提高并行并行_oracle 并行之并行度篇 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

操作內(nèi)并行使用的slave process數(shù)量就是并行度dop,indextable都有dop 作為默認(rèn)操作并行度default 1表示不使用并行處理 SQL create table t1 (a int) parallel 6; Table created. SQL select degree from user_tables where table_name=’T1′; DEGREE ——

操作內(nèi)并行使用的slave process數(shù)量就是并行度dop,index&table都有dop 作為默認(rèn)操作并行度default 1表示不使用并行處理

SQL> create table t1 (a int) parallel 6;

Table created.

SQL> select degree from user_tables where table_name=’T1′;

DEGREE

———-

6

SQL> alter table t1 parallel 3;

Table altered.

SQL> select degree from user_tables where table_name=’T1′;

DEGREE

———-

3

*禁用alter table(index) parallel 1 (noprallel)

#create 時(shí)候使用parallel不僅會(huì)在創(chuàng)建table&index時(shí)使,后續(xù)的操作ddl,dml也會(huì)使用(如果只想建表時(shí)使用,建好后修改)

SQL> create table t2 (a int) parallel;(未指定并行度)

Table created.

SQL> select degree from user_tables where table_name=’T2′;

DEGREE

———-

DEFAULT ~~~這樣使用default并行度=(cpu_count*parallel_threads_per_cpu)

SQL> show parameter cpu_count

NAME TYPE VALUE

———————————— ———– ——————————

cpu_count integer 2

SQL> show parameter parallel_thread

NAME TYPE VALUE

———————————— ———– ——————————

parallel_threads_per_cpu integer 2

SQL>

SQL> insert into t2 values (1);

1 row created.

SQL> commit;

Commit complete.

SQL> set autotrace trace exp

SQL> select * from t2;

Execution Plan

———————————————————-

Plan hash value: 1216610266

——————————————————————————–

——————————

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time

| TQ |IN-OUT| PQ Distrib |

——————————————————————————–

——————————

| 0 | SELECT STATEMENT | | 1 | 13 | 2 (0)| 00:00:01

| | | |

| 1 | PX COORDINATOR | | | | |

| | | |

| 2 | PX SEND QC (RANDOM)| :TQ10000 | 1 | 13 | 2 (0)| 00:00:01

| Q1,00 | P->S | QC (RAND) |

| 3 | PX BLOCK ITERATOR | | 1 | 13 | 2 (0)| 00:00:01

| Q1,00 | PCWC | |

| 4 | TABLE ACCESS FULL| T2 | 1 | 13 | 2 (0)| 00:00:01

| Q1,00 | PCWP | |

——————————————————————————–

——————————

Note

—–

– dynamic sampling used for this statement

SQL>

SQL> set autotrace off

SQL> select process from v$pq_tqstat;

no rows selected

可以看到 用set autotrace 后 查v$pq_tqstat norows ,這是2個(gè)原因造成的

1.set autotrace的原理

開啟autotrace時(shí)候 一個(gè)process對(duì)應(yīng) 2個(gè) session

通常情況下是一個(gè) session對(duì)應(yīng)一個(gè) server processs,但SErVER PORCESSS 可以對(duì)應(yīng)多個(gè)session

SQL> conn xh/a831115

已連接。

SQL> select distinct sid from v$mystat;

SID

———-

144

SQL> select username, sid, serial#, server, paddr, status from v$session where s

id=144;

USERNAME SID SERIAL# SERVER PADDR STATUS

—————————— ———- ———- ——— ——– ——–

XH 144 27 DEDICATED 20E4CC3C INACTIVE

SQL> select program ,addr from v$process where addr=(select paddr from v$session

where sid=144);

PROGRAM ADDR

—————————————————————- ——–

ORACLE.EXE (SHAD) 20E4CC3C

SQL> select sid from v$session where paddr=’20E4CC3C’;

SID

———-

144

SQL> set autotrace on

SQL> select sid from v$session where paddr=’20E4CC3C’;

SID

———-

144

154

2.v$pq_tqstat只提供當(dāng)前session最后一次并行執(zhí)行sql語句的信息

綜合2點(diǎn)可以看出set autotrace 最后一個(gè)session 是 執(zhí)行計(jì)劃的,所以v$pq_tqstat為no rows

所以 直接執(zhí)行

SQL> select * from t2;

A

———-

1

SQL> SELECT dfo_number, tq_id, server_type, process, num_rows, bytes

2 FROM v$pq_tqstat

3 ORDER BY dfo_number, tq_id, server_type DESC, process;

DFO_NUMBER TQ_ID SERVER_TYP PROCESS NUM_ROWS BYTES

———- ———- ———- ———- ———- ———-

1 0 Producer P000 1 24

1 0 Producer P001 0 20

1 0 Producer P002 0 20

1 0 Producer P003 0 20

1 0 Consumer QC 1 84

可以看到啟動(dòng)了4個(gè)slave process,這4個(gè)process=cpu_count*parallel_threads_per_cpu(2*2)

相關(guān)的hint:

parallel(10g,11g),no_parallel(10g,11g),parallel_index(10g,11g,9i),no_parallel_index(10g,11g)

noparallel(9i),noparallel_index(9i)

##需要知道并行hint只是告訴優(yōu)化器可以使用并行,但不是強(qiáng)制使用并行一切還是從cost出發(fā)(重點(diǎn))

declare

begin

for i in 1..1000 loop

insert into t2 values(i);

end loop;

commit;

end;

SQL> explain plan set statement_id=’t2_pp’ for select /*+parallel(t2 2)*/* from t2 where a>900;

Explained.

SQL> create index t2_id on t2 (a);

Index created.

SQL> explain plan set statement_id=’t2_id’ for select /*+parallel(t2 2)*/* from t2 where a>900;

Explained.

SQL> set linesize 1000

SQL> select * from table (dbms_xplan.display(null,’t2_pp’));

PLAN_TABLE_OUTPUT

————————————————————————————————————————————————————————————————————————————————————————————————————

Plan hash value: 1216610266

————————————————————————————————————–

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |

————————————————————————————————————–

| 0 | SELECT STATEMENT | | 100 | 1300 | 2 (0)| 00:00:01 | | | |

| 1 | PX COORDINATOR | | | | | | | | |

| 2 | PX SEND QC (RANDOM)| :TQ10000 | 100 | 1300 | 2 (0)| 00:00:01 | Q1,00 | P->S | QC (RAND) |

| 3 | PX BLOCK ITERATOR | | 100 | 1300 | 2 (0)| 00:00:01 | Q1,00 | PCWC | |

|* 4 | TABLE ACCESS FULL| T2 | 100 | 1300 | 2 (0)| 00:00:01 | Q1,00 | PCWP | |

————————————————————————————————————–

PLAN_TABLE_OUTPUT

————————————————————————————————————————————————————————————————————————————————————————————————————

Predicate Information (identified by operation id):

—————————————————

4 – filter(“A”>900)

Note

—–

– dynamic sampling used for this statement

20 rows selected.

SQL> select * from table (dbms_xplan.display(null,’t2_id’));

PLAN_TABLE_OUTPUT

————————————————————————————————————————————————————————————————————————————————————————————————————

Plan hash value: 523330294

————————————————————————–

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

————————————————————————–

| 0 | SELECT STATEMENT | | 100 | 1300 | 2 (0)| 00:00:01 |

|* 1 | INDEX RANGE SCAN| T2_ID | 100 | 1300 | 2 (0)| 00:00:01 |

————————————————————————–

Predicate Information (identified by operation id):

—————————————————

PLAN_TABLE_OUTPUT

————————————————————————————————————————————————————————————————————————————————————————————————————

1 – access(“A”>900)

Note

—–

– dynamic sampling used for this statement

17 rows selected.

可以看到 即使在使用并行與走index時(shí)cost一樣時(shí)候還是選擇了走index(cost表面一樣,若使用trace alter session set events ’10053 trace name context forever’;看的更詳細(xì),并行cpu cost要高些,所以選擇了走index,所以hint parallel,parallel_index只是告訴query optimizer

可以考慮并行 不是強(qiáng)制使用)

本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請(qǐng)注明出處,感謝您的尊重!

總結(jié)

以上是生活随笔為你收集整理的mysql提高并行并行_oracle 并行之并行度篇的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 青青草自拍视频 | 999国产| 亚洲精品鲁一鲁一区二区三区 | 久久丝袜美腿 | 色呦呦入口 | 九七久久| 羞羞色院91蜜桃 | 欧美一区三区三区高中清蜜桃 | 奇米影视狠狠 | 国产一区在线观看免费 | 国产无套精品一区二区三区 | 人人爽人人干 | 国产精品国产三级国产aⅴ无密码 | 欧美精品一区二 | 手机在线看a | free国产hd露脸性开放 | 亚洲精品女人 | 少妇被躁爽到高潮无码文 | 日韩精品在线播放 | 成人影片在线 | 日韩一级在线视频 | 黄a网站| 超碰8| 亚洲精品在| 午夜爽爽影院 | 亚洲天堂av片 | 福利一区二区在线观看 | 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲一区福利视频 | 欧美精品一区二区在线播放 | 天天艹天天爽 | av片子在线观看 | 无码人妻aⅴ一区二区三区有奶水 | www麻豆 | 成人一区二区电影 | 亚欧中文字幕 | 亚洲国产精品一区二区尤物区 | 日韩美女中文字幕 | 日本中文字幕视频在线 | 2020亚洲天堂 | 91视色 | 一级久久 | 亚洲精品久久久中文字幕 | 亚洲视频 中文字幕 | 色欲av无码精品一区 | 真人真事免费毛片 | 婷婷九月丁香 | 超碰在线图片 | 97人人超 | 99热这里只有精品9 日韩综合在线 | 天天摸日日 | 国产人妻精品一区二区三区不卡 | 成人黄色短视频在线观看 | 一本到高清 | 日韩欧美中字 | 国产一区视频在线观看免费 | 成人免费看片在线观看 | 国产片高清在线观看 | 精品在线观看一区 | 黑人毛片网站 | 日本一道在线 | 91小仙女jk白丝袜呻吟 | 欧美黄色高清视频 | 天天操天天舔天天干 | 婷婷色在线 | 国产欧美一区二区三区精华液好吗 | 国产免费色视频 | 日韩一级在线播放 | 人妻精品一区二区三区 | 日韩一卡二卡在线 | 欧美日韩xxx| 国产成人a亚洲精v品无码 | 全黄一级裸片视频 | 国产色图片 | 亚洲毛片一区二区三区 | 欧美精品久久久久久久免费 | 综合色站导航 | 夜色福利| 国产精品一区二区无码免费看片 | 波多野结衣视频免费观看 | 久久精品国产清自在天天线 | 欧洲一区二区 | 日韩欧美亚洲成人 | www.色网站 | 亚洲国产www | 禁漫天堂黄漫画无遮挡观看 | 国产精品电影在线观看 | 狠狠干2024 | 亚洲毛片儿 | 久久不射电影网 | 黄频在线免费观看 | 久草视频在线免费看 | 国模大尺度视频 | 日韩精品一二区 | 国产福利一区二区视频 | 国产第八页 | 成人黄色性视频 | 色乱码一区二区三在线看 | 综合av第一页 |