- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下形式的查询:
SELECT /*+ PARALLEL(8) */ * FROM …
查询非常复杂。当我查看执行计划时,我看到了四次 PX COORDINATOR。显然,对于每个 PX COORDINATOR,此查询会分配 8 个进程。当我开始查询时,它从 8 个进程开始。然后过了一会儿,第一个 PX COORDINATOR 的子作业完成,第二个开始,再次分配 8 个进程而不释放其他 8 个。在最后阶段分配了 32 个进程,其中只有 8 个被使用(即事件) .更重要的是,如果在执行期间 Oracle 不能一次分配 8 个进程(因为它达到了最大服务器限制),那么它会继续在一个进程中工作(这会导致执行时间非常长)。
有没有一种方法可以优化此查询,使 Oracle 在查询执行期间释放未使用的进程,或者将查询限制为 8 个而不在非事件进程上浪费任何 CPU 时间?
编辑 2:从我有限的测试来看,这些 PX COORDINATOR 似乎依赖于 CTE(在 WITH 子句中定义的子查询)。对于此类具有连接的子查询,Oracle 将在单独的 PX COORDINATOR 下处理它们。 UNNEST
和 MERGE
提示似乎没有多大帮助。
编辑:
查询:
WITH covh AS (
SELECT covh.cntr_id
, covh.covh_valid_from_dt AS vf
, svar_id
, svar.variable_name
, covh.covh_value_alpha AS alpha
, covh.covh_value_boolean AS bool
, covh.covh_value_numeric AS num
, covh.covh_value_pointer_id AS pid
, covh.covh_value_date AS dt
, NVL(ora_hash(ora_hash(covh_value_alpha) || ora_hash(covh_value_boolean) || ora_hash(covh_value_numeric) || ora_hash(covh_value_pointer_id) || ora_hash(covh_value_date)), -1) AS hash
FROM SOME_TABLE covh
INNER JOIN SOME_TABLE_2 svar USING (svar_id)
), covh_lag AS (
SELECT covh.*
, LAG(hash, 1, -2) OVER (PARTITION BY cntr_id, svar_id ORDER BY vf ASC NULLS LAST) lagging_hash
FROM covh
), fch AS (
SELECT
covh_lag.*
, NVL(LEAD(vf, 1) OVER (PARTITION BY cntr_id, svar_id ORDER BY vf ASC NULLS LAST), TO_DATE('01-JAN-9999', 'DD-MM-YYYY')) AS vt
FROM covh_lag
WHERE NOT (
hash = lagging_hash
OR (hash = -1 AND lagging_hash = -2)
)
), base AS (
SELECT cntr_id
, vf
, LEAD(vf, 1) OVER (PARTITION BY cntr_id ORDER BY vf ASC NULLS LAST) AS vt
FROM ( SELECT DISTINCT cntr_id, vf FROM fch )
), subs AS (
SELECT cntr_id, subs_id
FROM SOME_TABLE_3
), merge_step1 AS (
SELECT
base.cntr_id
, subs.subs_id
, base.vf
, base.vt
, week.num AS DEL_AT
, freq.alpha AS FREQ
, sure.pid AS SURE_ID
, frsu.pid AS FRSU_ID
FROM base
LEFT OUTER JOIN subs ON (base.cntr_id = subs.cntr_id)
LEFT OUTER JOIN fch week ON (week.cntr_id = base.cntr_id AND week.vf <= base.vf AND week.vt > base.vf AND week.variable_name = 'A')
LEFT OUTER JOIN fch freq ON (freq.cntr_id = base.cntr_id AND freq.vf <= base.vf AND freq.vt > base.vf AND freq.variable_name = 'B')
LEFT OUTER JOIN fch sure ON (sure.cntr_id = base.cntr_id AND sure.vf <= base.vf AND sure.vt > base.vf AND sure.variable_name = 'C')
LEFT OUTER JOIN fch frsu ON (frsu.cntr_id = base.cntr_id AND frsu.vf <= base.vf AND frsu.vt > base.vf AND frsu.variable_name = 'D')
), merge_step2 AS (
SELECT
merge_step1.*
, pred.pid AS PRED_ID
, taco.pid AS TACO_ID
, dura.pid AS DURA_ID
, tarf.pid AS TARF_ID
FROM merge_step1
LEFT OUTER JOIN fch pred ON (pred.cntr_id = merge_step1.cntr_id AND pred.vf <= merge_step1.vf AND pred.vt > merge_step1.vf AND pred.variable_name = 'E')
LEFT OUTER JOIN fch taco ON (taco.cntr_id = merge_step1.cntr_id AND taco.vf <= merge_step1.vf AND taco.vt > merge_step1.vf AND taco.variable_name = 'F')
LEFT OUTER JOIN fch dura ON (dura.cntr_id = merge_step1.cntr_id AND dura.vf <= merge_step1.vf AND dura.vt > merge_step1.vf AND dura.variable_name = 'G')
LEFT OUTER JOIN fch tarf ON (tarf.cntr_id = merge_step1.cntr_id AND tarf.vf <= merge_step1.vf AND tarf.vt > merge_step1.vf AND tarf.variable_name = 'H')
), merged AS (
SELECT
merge_step2.*
, prca.pid AS PRCA_ID
, sufo.pid AS SUFO_ID
, rpot.pid AS RPOT_ID
, dela.alpha AS AREA
FROM merge_step2
LEFT OUTER JOIN fch prca ON (prca.cntr_id = merge_step2.cntr_id AND prca.vf <= merge_step2.vf AND prca.vt > merge_step2.vf AND prca.variable_name = 'I')
LEFT OUTER JOIN fch sufo ON (sufo.cntr_id = merge_step2.cntr_id AND sufo.vf <= merge_step2.vf AND sufo.vt > merge_step2.vf AND sufo.variable_name = 'J')
LEFT OUTER JOIN fch rpot ON (rpot.cntr_id = merge_step2.cntr_id AND rpot.vf <= merge_step2.vf AND rpot.vt > merge_step2.vf AND rpot.variable_name = 'K')
LEFT OUTER JOIN fch dela ON (dela.cntr_id = merge_step2.cntr_id AND dela.vf <= merge_step2.vf AND dela.vt > merge_step2.vf AND dela.variable_name = 'L')
)
SELECT /*+ PARALLEL(8) STATEMENT_QUEUING */
merged.cntr_id
, merged.subs_id
, merged.vf
, merged.vt
, merged.DEL_AT
, merged.FREQ
, merged.SURE_ID
, merged.FRSU_ID
, merged.PRED_ID
, merged.TACO_ID
, merged.DURA_ID
, merged.TARF_ID
, merged.PRCA_ID
, merged.SUFO_ID
, merged.RPOT_ID
, merged.AREA
FROM merged;
执行计划(2x PX 协调器 --> 2x8 进程):
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 209M| 208G| | 5898K (2)| 00:14:31 | | | |
| 1 | TEMP TABLE TRANSFORMATION | | | | | | | | | |
| 2 | PX COORDINATOR | | | | | | | | | |
| 3 | PX SEND QC (RANDOM) | :TQ10003 | 209M| 13G| | 777K (2)| 00:01:55 | Q1,03 | P->S | QC (RAND) |
| 4 | LOAD AS SELECT | SYS_TEMP_0FD9D75E2_25751CCB | | | | | | Q1,03 | PCWP | |
| 5 | WINDOW SORT | | 209M| 13G| 18G| 777K (2)| 00:01:55 | Q1,03 | PCWP | |
| 6 | PX RECEIVE | | 209M| 13G| | 382K (2)| 00:00:57 | Q1,03 | PCWP | |
| 7 | PX SEND HASH | :TQ10002 | 209M| 13G| | 382K (2)| 00:00:57 | Q1,02 | P->P | HASH |
|* 8 | VIEW | | 209M| 13G| | 382K (2)| 00:00:57 | Q1,02 | PCWP | |
| 9 | WINDOW SORT | | 209M| 10G| 15G| 382K (2)| 00:00:57 | Q1,02 | PCWP | |
| 10 | PX RECEIVE | | 209M| 10G| | 52342 (4)| 00:00:08 | Q1,02 | PCWP | |
| 11 | PX SEND HASH | :TQ10001 | 209M| 10G| | 52342 (4)| 00:00:08 | Q1,01 | P->P | HASH |
| 12 | VIEW | | 209M| 10G| | 52342 (4)| 00:00:08 | Q1,01 | PCWP | |
| 13 | VIEW | | 209M| 39G| | 52342 (4)| 00:00:08 | Q1,01 | PCWP | |
|* 14 | HASH JOIN | | 209M| 8802M| | 52342 (4)| 00:00:08 | Q1,01 | PCWP | |
| 15 | PX RECEIVE | | 24 | 408 | | 2 (0)| 00:00:01 | Q1,01 | PCWP | |
| 16 | PX SEND BROADCAST | :TQ10000 | 24 | 408 | | 2 (0)| 00:00:01 | Q1,00 | P->P | BROADCAST |
| 17 | PX BLOCK ITERATOR | | 24 | 408 | | 2 (0)| 00:00:01 | Q1,00 | PCWC | |
| 18 | TABLE ACCESS FULL | SOME_TABLE_2 | 24 | 408 | | 2 (0)| 00:00:01 | Q1,00 | PCWP | |
| 19 | PX BLOCK ITERATOR | | 209M| 5401M| | 51979 (3)| 00:00:08 | Q1,01 | PCWC | |
| 20 | TABLE ACCESS FULL | SOME_TABLE | 209M| 5401M| | 51979 (3)| 00:00:08 | Q1,01 | PCWP | |
| 21 | PX COORDINATOR | | | | | | | | | |
| 22 | PX SEND QC (RANDOM) | :TQ20016 | 209M| 208G| | 5120K (2)| 00:12:36 | Q2,16 | P->S | QC (RAND) |
|* 23 | HASH JOIN RIGHT OUTER BUFFERED | | 209M| 208G| 5301M| 5120K (2)| 00:12:36 | Q2,16 | PCWP | |
| 24 | PX RECEIVE | | 209M| 39G| | 159K (1)| 00:00:24 | Q2,16 | PCWP | |
| 25 | PX SEND HASH | :TQ20002 | 209M| 39G| | 159K (1)| 00:00:24 | Q2,02 | P->P | HASH |
|* 26 | VIEW | | 209M| 39G| | 159K (1)| 00:00:24 | Q2,02 | PCWP | |
| 27 | PX BLOCK ITERATOR | | 209M| 14G| | 159K (1)| 00:00:24 | Q2,02 | PCWC | |
| 28 | TABLE ACCESS FULL | SYS_TEMP_0FD9D75E2_25751CCB | 209M| 14G| | 159K (1)| 00:00:24 | Q2,02 | PCWP | |
|* 29 | HASH JOIN RIGHT OUTER | | 209M| 169G| 1825M| 4536K (2)| 00:11:10 | Q2,16 | PCWP | |
| 30 | PX RECEIVE | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,16 | PCWP | |
| 31 | PX SEND HASH | :TQ20003 | 209M| 11G| | 159K (1)| 00:00:24 | Q2,03 | P->P | HASH |
|* 32 | VIEW | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,03 | PCWP | |
| 33 | PX BLOCK ITERATOR | | 209M| 14G| | 159K (1)| 00:00:24 | Q2,03 | PCWC | |
| 34 | TABLE ACCESS FULL | SYS_TEMP_0FD9D75E2_25751CCB | 209M| 14G| | 159K (1)| 00:00:24 | Q2,03 | PCWP | |
|* 35 | HASH JOIN RIGHT OUTER | | 209M| 157G| 1825M| 4028K (2)| 00:09:55 | Q2,16 | PCWP | |
| 36 | PX RECEIVE | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,16 | PCWP | |
| 37 | PX SEND HASH | :TQ20004 | 209M| 11G| | 159K (1)| 00:00:24 | Q2,04 | P->P | HASH |
|* 38 | VIEW | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,04 | PCWP | |
| 39 | PX BLOCK ITERATOR | | 209M| 14G| | 159K (1)| 00:00:24 | Q2,04 | PCWC | |
| 40 | TABLE ACCESS FULL | SYS_TEMP_0FD9D75E2_25751CCB | 209M| 14G| | 159K (1)| 00:00:24 | Q2,04 | PCWP | |
|* 41 | HASH JOIN RIGHT OUTER | | 209M| 145G| 1825M| 3544K (2)| 00:08:44 | Q2,16 | PCWP | |
| 42 | PX RECEIVE | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,16 | PCWP | |
| 43 | PX SEND HASH | :TQ20005 | 209M| 11G| | 159K (1)| 00:00:24 | Q2,05 | P->P | HASH |
|* 44 | VIEW | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,05 | PCWP | |
| 45 | PX BLOCK ITERATOR | | 209M| 14G| | 159K (1)| 00:00:24 | Q2,05 | PCWC | |
| 46 | TABLE ACCESS FULL | SYS_TEMP_0FD9D75E2_25751CCB | 209M| 14G| | 159K (1)| 00:00:24 | Q2,05 | PCWP | |
|* 47 | HASH JOIN RIGHT OUTER | | 209M| 133G| 1825M| 3084K (3)| 00:07:36 | Q2,16 | PCWP | |
| 48 | PX RECEIVE | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,16 | PCWP | |
| 49 | PX SEND HASH | :TQ20006 | 209M| 11G| | 159K (1)| 00:00:24 | Q2,06 | P->P | HASH |
|* 50 | VIEW | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,06 | PCWP | |
| 51 | PX BLOCK ITERATOR | | 209M| 14G| | 159K (1)| 00:00:24 | Q2,06 | PCWC | |
| 52 | TABLE ACCESS FULL | SYS_TEMP_0FD9D75E2_25751CCB | 209M| 14G| | 159K (1)| 00:00:24 | Q2,06 | PCWP | |
|* 53 | HASH JOIN RIGHT OUTER | | 209M| 121G| 1825M| 2647K (3)| 00:06:31 | Q2,16 | PCWP | |
| 54 | PX RECEIVE | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,16 | PCWP | |
| 55 | PX SEND HASH | :TQ20007 | 209M| 11G| | 159K (1)| 00:00:24 | Q2,07 | P->P | HASH |
|* 56 | VIEW | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,07 | PCWP | |
| 57 | PX BLOCK ITERATOR | | 209M| 14G| | 159K (1)| 00:00:24 | Q2,07 | PCWC | |
| 58 | TABLE ACCESS FULL | SYS_TEMP_0FD9D75E2_25751CCB | 209M| 14G| | 159K (1)| 00:00:24 | Q2,07 | PCWP | |
|* 59 | HASH JOIN RIGHT OUTER | | 209M| 109G| 1825M| 2233K (3)| 00:05:30 | Q2,16 | PCWP | |
| 60 | PX RECEIVE | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,16 | PCWP | |
| 61 | PX SEND HASH | :TQ20008 | 209M| 11G| | 159K (1)| 00:00:24 | Q2,08 | P->P | HASH |
|* 62 | VIEW | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,08 | PCWP | |
| 63 | PX BLOCK ITERATOR | | 209M| 14G| | 159K (1)| 00:00:24 | Q2,08 | PCWC | |
| 64 | TABLE ACCESS FULL | SYS_TEMP_0FD9D75E2_25751CCB | 209M| 14G| | 159K (1)| 00:00:24 | Q2,08 | PCWP | |
|* 65 | HASH JOIN RIGHT OUTER | | 209M| 97G| 1825M| 1844K (3)| 00:04:33 | Q2,16 | PCWP | |
| 66 | PX RECEIVE | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,16 | PCWP | |
| 67 | PX SEND HASH | :TQ20009 | 209M| 11G| | 159K (1)| 00:00:24 | Q2,09 | P->P | HASH |
|* 68 | VIEW | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,09 | PCWP | |
| 69 | PX BLOCK ITERATOR | | 209M| 14G| | 159K (1)| 00:00:24 | Q2,09 | PCWC | |
| 70 | TABLE ACCESS FULL | SYS_TEMP_0FD9D75E2_25751CCB | 209M| 14G| | 159K (1)| 00:00:24 | Q2,09 | PCWP | |
|* 71 | HASH JOIN RIGHT OUTER | | 209M| 85G| 1825M| 1478K (3)| 00:03:39 | Q2,16 | PCWP | |
| 72 | PX RECEIVE | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,16 | PCWP | |
| 73 | PX SEND HASH | :TQ20010 | 209M| 11G| | 159K (1)| 00:00:24 | Q2,10 | P->P | HASH |
|* 74 | VIEW | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,10 | PCWP | |
| 75 | PX BLOCK ITERATOR | | 209M| 14G| | 159K (1)| 00:00:24 | Q2,10 | PCWC | |
| 76 | TABLE ACCESS FULL | SYS_TEMP_0FD9D75E2_25751CCB | 209M| 14G| | 159K (1)| 00:00:24 | Q2,10 | PCWP | |
|* 77 | HASH JOIN RIGHT OUTER | | 209M| 73G| 1825M| 1135K (3)| 00:02:48 | Q2,16 | PCWP | |
| 78 | PX RECEIVE | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,16 | PCWP | |
| 79 | PX SEND HASH | :TQ20011 | 209M| 11G| | 159K (1)| 00:00:24 | Q2,11 | P->P | HASH |
|* 80 | VIEW | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,11 | PCWP | |
| 81 | PX BLOCK ITERATOR | | 209M| 14G| | 159K (1)| 00:00:24 | Q2,11 | PCWC | |
| 82 | TABLE ACCESS FULL | SYS_TEMP_0FD9D75E2_25751CCB | 209M| 14G| | 159K (1)| 00:00:24 | Q2,11 | PCWP | |
|* 83 | HASH JOIN OUTER | | 209M| 61G| 3201M| 816K (3)| 00:02:01 | Q2,16 | PCWP | |
|* 84 | HASH JOIN OUTER | | 209M| 22G| 1676M| 520K (3)| 00:01:17 | Q2,16 | PCWP | |
|* 85 | HASH JOIN RIGHT OUTER | | 209M| 10G| | 302K (3)| 00:00:45 | Q2,16 | PCWP | |
| 86 | PX RECEIVE | | 23M| 538M| | 16751 (4)| 00:00:03 | Q2,16 | PCWP | |
| 87 | PX SEND HASH | :TQ20012 | 23M| 538M| | 16751 (4)| 00:00:03 | Q2,12 | P->P | HASH |
| 88 | PX BLOCK ITERATOR | | 23M| 538M| | 16751 (4)| 00:00:03 | Q2,12 | PCWC | |
| 89 | TABLE ACCESS FULL | SOME_TABLE | 23M| 538M| | 16751 (4)| 00:00:03 | Q2,12 | PCWP | |
| 90 | PX RECEIVE | | 209M| 6201M| | 285K (3)| 00:00:43 | Q2,16 | PCWP | |
| 91 | PX SEND HASH | :TQ20013 | 209M| 6201M| | 285K (3)| 00:00:43 | Q2,13 | P->P | HASH |
| 92 | VIEW | | 209M| 6201M| | 285K (3)| 00:00:43 | Q2,13 | PCWP | |
| 93 | WINDOW SORT | | 209M| 4401M| | 285K (3)| 00:00:43 | Q2,13 | PCWP | |
| 94 | PX RECEIVE | | 209M| 4401M| | 285K (3)| 00:00:43 | Q2,13 | PCWP | |
| 95 | PX SEND HASH | :TQ20001 | 209M| 4401M| | 285K (3)| 00:00:43 | Q2,01 | P->P | HASH |
| 96 | VIEW | | 209M| 4401M| | 285K (3)| 00:00:43 | Q2,01 | PCWP | |
| 97 | SORT GROUP BY | | 209M| 2800M| 4820M| 285K (3)| 00:00:43 | Q2,01 | PCWP | |
| 98 | PX RECEIVE | | 209M| 2800M| | 285K (3)| 00:00:43 | Q2,01 | PCWP | |
| 99 | PX SEND HASH | :TQ20000 | 209M| 2800M| | 285K (3)| 00:00:43 | Q2,00 | P->P | HASH |
| 100 | SORT GROUP BY | | 209M| 2800M| 4820M| 285K (3)| 00:00:43 | Q2,00 | PCWP | |
| 101 | VIEW | | 209M| 2800M| | 159K (1)| 00:00:24 | Q2,00 | PCWP | |
| 102 | PX BLOCK ITERATOR | | 209M| 14G| | 159K (1)| 00:00:24 | Q2,00 | PCWC | |
| 103 | TABLE ACCESS FULL| SYS_TEMP_0FD9D75E2_25751CCB | 209M| 14G| | 159K (1)| 00:00:24 | Q2,00 | PCWP | |
| 104 | PX RECEIVE | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,16 | PCWP | |
| 105 | PX SEND HASH | :TQ20014 | 209M| 11G| | 159K (1)| 00:00:24 | Q2,14 | P->P | HASH |
|*106 | VIEW | | 209M| 11G| | 159K (1)| 00:00:24 | Q2,14 | PCWP | |
| 107 | PX BLOCK ITERATOR | | 209M| 14G| | 159K (1)| 00:00:24 | Q2,14 | PCWC | |
| 108 | TABLE ACCESS FULL | SYS_TEMP_0FD9D75E2_25751CCB | 209M| 14G| | 159K (1)| 00:00:24 | Q2,14 | PCWP | |
| 109 | PX RECEIVE | | 209M| 39G| | 159K (1)| 00:00:24 | Q2,16 | PCWP | |
| 110 | PX SEND HASH | :TQ20015 | 209M| 39G| | 159K (1)| 00:00:24 | Q2,15 | P->P | HASH |
|*111 | VIEW | | 209M| 39G| | 159K (1)| 00:00:24 | Q2,15 | PCWP | |
| 112 | PX BLOCK ITERATOR | | 209M| 14G| | 159K (1)| 00:00:24 | Q2,15 | PCWC | |
| 113 | TABLE ACCESS FULL | SYS_TEMP_0FD9D75E2_25751CCB | 209M| 14G| | 159K (1)| 00:00:24 | Q2,15 | PCWP | |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
如果我使用 /*+ MATERIALIZE */
提示实现每个 merge_steps
(以节省使用的临时空间),那么我会为每个实现获得一个 PX COORDINATOR步。我无法在此处添加查询:问题正文限制为 30k 个字符。
最佳答案
我认为 Oracle 为 4 个主要查询中的每一个启动了 8 个并行进程 --> 总共 32 个进程。 Oracle 不能重复使用前 8 个进程来查询不同的 sql,而前 8 个进程的结果将在以后使用。
提高性能:
a) 我会尝试重写查询。查询 merge_step1、merge_step2 和 merged 看起来可以在一个查询中处理。恐怕我的时间有限,否则我会自己尝试一下。
b) 您是否可以选择创建存储查询结果的物化 View ?如果是这样,这可以显着提高性能。即使 a) 成功了,我也会考虑这个选项。
关于带有 PARALLEL 提示的 SQL 查询分配的进程比指定的多得多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27228001/
在 Oracle 中,PARALLEL 被广泛使用。提示 PARALLEL、PARALLEL(8) 和 PARALLEL(a,8) 有什么区别。如何选择最佳的查询提示? SELECT /*+ PARA
好的,我希望以前没有问过这个问题,因为在搜索中很难找到。 我查看了 F95 手册,但仍然觉得这很模糊: For the simple case of: DO i=0,99 END DO 我正
我有一个 C-shell 脚本,其中有一个名为 $hosts_string 的变量,格式为: host1,host2,...,hostN 我还有一个名为 $chrs_string 的变量,其形式为:
是否可以从由gnu parallel产生的脚本的多次运行中调用gnu parallel? 我有一个python脚本,可以运行100个顺序顺序迭代,并且在每次迭代中的某处,并行计算4个值(使用gnu p
我想在几个输入上运行几个长时间运行的进程。例如。: solver_a problem_1 solver_b problem_1 ... solver_b problem_18 solver_c pro
TParallel.&For 和 TParallel.For 之间有区别吗? 两者都可以在 Delphi 10 Seattle 中编译。那么我应该坚持哪一个呢? 最佳答案 TParallel.&For
我第一次使用 julia 进行并行计算.我有点头疼。所以假设我开始 julia如下:julia -p 4 .然后我为所有处理器声明 a 函数,然后将它与 pmap 一起使用还有@parallel fo
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 10年前关闭。 Improve this
我有一堆相互排斥的方法,因此可以并行运行。有这样做的好方法吗?到目前为止,我有以下两种实现方式,但我不确定是否应该选择其中一种。 使用 Parallel.For : Parallel.For(0, 2
我对并行运行脚本很感兴趣,并且我已经开始查看 GNU 并行工具,但是我遇到了一些麻烦。我的脚本 doSomething 有 3 个参数,我想在参数的不同值上并行运行脚本。我该怎么做? 我试过:para
我需要在多核(和多线程)机器上运行多个作业。我正在使用 GNU Parallel utility跨核心分配作业以加速任务。要执行的命令在名为“命令”的文件中可用。我使用以下命令运行 GNU Paral
我正在尝试使用如下两个输入运行 Python 脚本。我得到了大约 300 个这两个输入,所以我想知道是否有人可以建议如何并行运行它们。 单次运行看起来像: python stable.py KOG_1
每天我都必须更新一堆存储库,并在其中一些中执行另一个命令(来自 CARTON,Perl 模块依赖管理器)。我总是使用循环来执行此操作,但我想与 并行执行GNU 并行 如果可能,但我不太了解它的tuto
正如标题所说:@parallel 之间究竟有什么区别?和 pmap ?我的意思不是明显的一个是循环的宏,另一个适用于函数,我的意思是它们的实现究竟有什么不同,我应该如何使用这些知识在它们之间进行选择?
我有一些矩阵乘法运算。我想通过多个处理器并行执行这些操作。这可以使用 MPI(消息传递接口(interface))在高性能计算集群上完成。 同样,我可以使用多个辅助角色在云中进行一些并行化吗?有什么办
joblib模块提供了一个简单的帮助程序类,以使用多处理并行编写循环的循环。 这段代码使用列表推导来完成这项工作: import time from math import sqrt from job
我的问题是这样的one .但我想做一些不同的事情... 例如,在我的并行区域内,我想在 4 个线程上运行我的代码。当每个线程进入 for 循环时,我想在 8 个线程上运行我的代码。像 #pramga
我正在尝试使用 ipython 并行库中的并行计算。但是我对此知之甚少,而且我发现很难从对并行计算一无所知的人那里阅读该文档。 有趣的是,我发现的所有教程都只是重复使用文档中的示例,并使用相同的解释,
我的项目结构看起来像 Root + subproj1 + subproj2 在每个子项目中定义了自己的任务 run(){}。 我想要做的是从 Root 项目的运行任务并行运行 :subpro
我有一个 Foo ID 的列表。我需要为每个 ID 调用一个存储过程。 例如 Guid[] siteIds = ...; // typically contains 100 to 300 elemen
我是一名优秀的程序员,十分优秀!