Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 все плохо у временных таблиц  [new]
NiceBigMan
Member

Откуда: Moscow
Сообщений: 210
Добрый день!

Запрос отрабатывает за 2 сек., при применении
оператора вида insert into временная_таблица или merge into временная_таблица
время отработки увеличивается до 9 сек.
Так все плохо у временных таблиц?
14 май 15, 16:39    [17640826]     Ответить | Цитировать Сообщить модератору
 Re: все плохо у временных таблиц  [new]
roadster
Member [заблокирован]

Откуда: "Церковь тяжеловооружённого Христа" ©
Сообщений: 52495
NiceBigMan
Запрос отрабатывает за 2 сек.
вВы уверены? Вы все данные фетчите?
14 май 15, 16:41    [17640850]     Ответить | Цитировать Сообщить модератору
 Re: все плохо у временных таблиц  [new]
NiceBigMan
Member

Откуда: Moscow
Сообщений: 210
да
добавление строки insert into TEMP(D_1,S_1,N_1) увеличивает время до 9 сек.
14 май 15, 16:43    [17640869]     Ответить | Цитировать Сообщить модератору
 Re: все плохо у временных таблиц  [new]
roadster
Member [заблокирован]

Откуда: "Церковь тяжеловооружённого Христа" ©
Сообщений: 52495
NiceBigMan
да
добавление строки insert into TEMP(D_1,S_1,N_1) увеличивает время до 9 сек.
ну значит у Вас всё плохо.
14 май 15, 16:45    [17640883]     Ответить | Цитировать Сообщить модератору
 Re: все плохо у временных таблиц  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
NiceBigMan,

если хотите предметного разговора - публикуйте тесткейс
(начиная со спецификации той таблицы)
14 май 15, 17:15    [17641068]     Ответить | Цитировать Сообщить модератору
 Re: все плохо у временных таблиц  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
NiceBigMan,
добавь order by 1. убедись, что всё плохо и иди учить матчасть.
14 май 15, 17:28    [17641152]     Ответить | Цитировать Сообщить модератору
 Re: все плохо у временных таблиц  [new]
Bfink
Member

Откуда: Москва
Сообщений: 2797
С временными таблицами не работает распараллеливание
14 май 15, 18:48    [17641544]     Ответить | Цитировать Сообщить модератору
 Re: все плохо у временных таблиц  [new]
wurdu
Member

Откуда: Владивосток
Сообщений: 4441
Bfink
С временными таблицами не работает распараллеливание
Оно не работало где-то в 9.2.0.5 в последний раз. Но документацию Оракл действительно не обновляет.
15 май 15, 11:04    [17643735]     Ответить | Цитировать Сообщить модератору
 Re: все плохо у временных таблиц  [new]
Bfink
Member

Откуда: Москва
Сообщений: 2797
wurdu,

Не работает на 11, на exadata не работает :-(
16 май 15, 10:59    [17648384]     Ответить | Цитировать Сообщить модератору
 Re: все плохо у временных таблиц  [new]
wurdu
Member

Откуда: Владивосток
Сообщений: 4441
Bfink
wurdu,

Не работает на 11, на exadata не работает :-(
Что конкретно не работает?
16 май 15, 13:52    [17648790]     Ответить | Цитировать Сообщить модератору
 Re: все плохо у временных таблиц  [new]
перпендикуляр индекс
Guest
wurdu
Bfink
wurdu,

Не работает на 11, на exadata не работает :-(
Что конкретно не работает?
не работает параллел на самой темп-таблице.
применительно к данному топику - отсутствие параллел дмл против несуществующего параллел фетча.
16 май 15, 13:57    [17648805]     Ответить | Цитировать Сообщить модератору
 Re: все плохо у временных таблиц  [new]
wurdu
Member

Откуда: Владивосток
Сообщений: 4441
перпендикуляр индекс
wurdu
пропущено...
Что конкретно не работает?
не работает параллел на самой темп-таблице.
применительно к данному топику - отсутствие параллел дмл против несуществующего параллел фетча.
Да как же не работает.
Вот как раз на 11.2.0.4, Exadata:

+ test
SQL> create table tst as
with a as (select rownum rn from dual connect by level <= 10000)
select a.rn from a, a b;
  2    3
Table created.

SQL> create global temporary table temp_tst (rn number);

Table created.

SQL> alter session enable parallel dml;

Session altered.

SQL> insert /*+ parallel(a 2) */ into temp_tst a select /*+ parallel(2) */ * from  tst;

100000000 rows created.

--SQL Monitoring report

Parallel Execution Details (DOP=2 , Servers Allocated=2)
 Instances  : 2 

=========================================================================================================================================================================================================
| Instance |      Name      | Type  | Server# | Elapsed |   Cpu   |    IO    | Application | Cluster  |  Other   | Buffer | Read | Read  | Write | Write |  Cell   |            Wait Events             |
|          |                |       |         | Time(s) | Time(s) | Waits(s) |  Waits(s)   | Waits(s) | Waits(s) |  Gets  | Reqs | Bytes | Reqs  | Bytes | Offload |             (sample #)             |
=========================================================================================================================================================================================================
| 1        | PX Coordinator | QC    |         |    0.02 |    0.01 |          |        0.00 |     0.00 |     0.01 |     14 |      |     . |       |     . |    NaN% |                                    |
| 1        | p000           | Set 1 |       1 |      22 |      10 |       12 |             |     0.12 |          |   175K |  649 | 594MB |  7957 | 768MB | -56.25% | cell multiblock physical read (12) |
|          |                |       |         |         |         |          |             |          |          |        |      |       |       |       |         | direct path write temp (3)         |
| 2        | p000           | Set 1 |       2 |      21 |      10 |       11 |             |     0.11 |          |   175K | 4517 | 594MB |  7952 | 768MB | -56.25% | cell multiblock physical read (9)  |
|          |                |       |         |         |         |          |             |          |          |        |      |       |       |       |         | db file parallel read (1)          |
|          |                |       |         |         |         |          |             |          |          |        |      |       |       |       |         | direct path write temp (2)         |
=========================================================================================================================================================================================================

...

QL Plan Monitoring Details (Plan Hash Value=9582321)
====================================================================================================================================================================================================
| Id |            Operation            |   Name   |  Rows   | Cost  |   Time    | Start  | Execs |   Rows   | Read | Read  | Write | Write |  Mem  | Activity |          Activity Detail           |
|    |                                 |          | (Estim) |       | Active(s) | Active |       | (Actual) | Reqs | Bytes | Reqs  | Bytes | (Max) |   (%)    |            (# samples)             |
====================================================================================================================================================================================================
|  0 | INSERT STATEMENT                |          |         |       |         3 |    +21 |     3 |        2 |      |       |       |       |       |     4.55 | Cpu (2)                            |
|  1 |   PX COORDINATOR                |          |         |       |         1 |    +22 |     3 |        2 |      |       |       |       |       |          |                                    |
|  2 |    PX SEND QC (RANDOM)          | :TQ10000 |     99M | 23272 |         2 |    +21 |     2 |        2 |      |       |       |       |       |          |                                    |
|  3 |     LOAD AS SELECT              |          |         |       |        22 |     +1 |     2 |        2 |      |       |  4751 |   1GB |    1M |    40.91 | Cpu (13)                           |
|    |                                 |          |         |       |           |        |       |          |      |       |       |       |       |          | direct path write temp (5)         |
|  4 |      PX BLOCK ITERATOR          |          |     99M | 23272 |        21 |     +2 |     2 |     100M |      |       |       |       |       |          |                                    |
|  5 |       TABLE ACCESS STORAGE FULL | TST      |     99M | 23272 |        22 |     +1 |    26 |     100M | 5164 |   1GB |       |       |       |    54.55 | Cpu (2)                            |
|    |                                 |          |         |       |           |        |       |          |      |       |       |       |       |          | cell multiblock physical read (21) |
|    |                                 |          |         |       |           |        |       |          |      |       |       |       |       |          | db file parallel read (1)          |
====================================================================================================================================================================================================
Имеем параллельный план и статистики показывают как два параллельных процесса загрузили данные в темповую таблицу.
Parallel query, надеюсь, и так понятно что работает.
16 май 15, 14:27    [17648898]     Ответить | Цитировать Сообщить модератору
 Re: все плохо у временных таблиц  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 8131
Oracle® Database. VLDB and Partitioning Guide. 12c Release 1 (12.1)
Restrictions on Parallel DML

The following restrictions apply to parallel DML (including direct-path INSERT):
. . .
  • Parallel UPDATE, DELETE, and MERGE operations are not supported for temporary tables.
    . . .
  • 16 май 15, 19:45    [17649788]     Ответить | Цитировать Сообщить модератору
     Re: все плохо у временных таблиц  [new]
    wurdu
    Member

    Откуда: Владивосток
    Сообщений: 4441
    SQL*Plus
    Oracle® Database. VLDB and Partitioning Guide. 12c Release 1 (12.1)
    Restrictions on Parallel DML

    The following restrictions apply to parallel DML (including direct-path INSERT):
    . . .
  • Parallel UPDATE, DELETE, and MERGE operations are not supported for temporary tables.
    . . .
  • Действительно, UPDATE, DELETE, and MERGE не поддерживаются. В 12с они теперь рисуют note в плане для этого:
    --------------------------------------------------------------------------------------------------------------
    | Id  | Operation	      | Name	 | Rows  | Bytes | Cost (%CPU)| Time	 |    TQ  |IN-OUT| PQ Distrib |
    ---------------------------------------------------------------------------------------------------------------
    |   0 | UPDATE STATEMENT      | 	 | 10000 |   126K|     4   (0)| 00:00:01 |	  |	 |	      |
    |   1 |  UPDATE 	      | TMP_TST  |	 |	 |	      | 	 |	  |	 |	      |
    |   2 |   PX COORDINATOR      | 	 |	 |	 |	      | 	 |	  |	 |	      |
    |   3 |    PX SEND QC (RANDOM)| :TQ10000 | 10000 |   126K|     4   (0)| 00:00:01 |  Q1,00 | P->S | QC (RAND)  |
    |   4 |     PX BLOCK ITERATOR | 	 | 10000 |   126K|     4   (0)| 00:00:01 |  Q1,00 | PCWC |	      |
    |   5 |      TABLE ACCESS FULL| TMP_TST  | 10000 |   126K|     4   (0)| 00:00:01 |  Q1,00 | PCWP |	      |
    
    PLAN_TABLE_OUTPUT
    ----------------------------------------------------------------------------------------------------------------
    
    Note
    -----
       - dynamic statistics used: dynamic sampling (level=2)
       - Degree of Parallelism is 2 because of hint
       - PDML disabled because temporary tables used
    
    17 май 15, 14:05    [17651270]     Ответить | Цитировать Сообщить модератору
    Все форумы / Oracle Ответить