powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / sysdate in parallel
5 сообщений из 5, страница 1 из 1
sysdate in parallel
    #39977477
mlc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

Может кто-нибудь прояснить или дать тынц на работу sysdate в параллель.
Небольшой тесткейс:

ddl
Код: plsql
1.
2.
3.
4.
5.
drop table dropme_trg;
create table dropme_trg (d date) pctfree 0;

drop table dropme_src;
create table dropme_src pctfree 0 as select level as a from dual connect by level < 100001;

sysdate in parallel
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
set serveroutput on
declare
    v_cnt number;
    v_ins_cnt number;
begin
    -- гоняем до 1000 итераций, чтобы хватило точно
    for i in 1..1000 loop
    EXECUTE IMMEDIATE 'truncate table dropme_trg';
    INSERT /*+ APPEND */ INTO dropme_trg (d) 
     SELECT /*+ PARALLEL(4)*/ DISTINCT sysdate FROM  dropme_src;
      v_cnt := sql%rowcount;
    dbms_output.put_line(I || ' : ' || v_cnt);
    commit;
    if v_cnt > 1 THEN
        select count(1) into v_ins_cnt from dropme_trg;
        dbms_output.put_line( 'Inserted rows:' || v_ins_cnt);
        exit;
    end if;
    end loop;
end;
/ 


... 
178 : 1
179 : 1
180 : 1
181 : 2
Inserted rows:2


select * from dropme_trg;

D
--------------------
08.07.2020 15:40:26
08.07.2020 15:40:26


В результате выполнения distinct sysdate в таблице 2 одинаковых значения. Если заменить sysdate на systimestamp или current_date или убрать parallel, то все работае корректно.

P.S. Повторяется на 12.2, 18.6, 19.3 и 19.6
P.P.S. На 11.2 не воспроизводится
...
Рейтинг: 0 / 0
sysdate in parallel
    #39977487
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mlc
Всем привет.

Может кто-нибудь прояснить или дать тынц на работу sysdate в параллель.
Небольшой тесткейс:

ddl
Код: plsql
1.
2.
3.
4.
5.
drop table dropme_trg;
create table dropme_trg (d date) pctfree 0;

drop table dropme_src;
create table dropme_src pctfree 0 as select level as a from dual connect by level < 100001;

sysdate in parallel
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
set serveroutput on
declare
    v_cnt number;
    v_ins_cnt number;
begin
    -- гоняем до 1000 итераций, чтобы хватило точно
    for i in 1..1000 loop
    EXECUTE IMMEDIATE 'truncate table dropme_trg';
    INSERT /*+ APPEND */ INTO dropme_trg (d) 
     SELECT /*+ PARALLEL(4)*/ DISTINCT sysdate FROM  dropme_src;
      v_cnt := sql%rowcount;
    dbms_output.put_line(I || ' : ' || v_cnt);
    commit;
    if v_cnt > 1 THEN
        select count(1) into v_ins_cnt from dropme_trg;
        dbms_output.put_line( 'Inserted rows:' || v_ins_cnt);
        exit;
    end if;
    end loop;
end;
/ 


... 
178 : 1
179 : 1
180 : 1
181 : 2
Inserted rows:2


select * from dropme_trg;

D
--------------------
08.07.2020 15:40:26
08.07.2020 15:40:26


В результате выполнения distinct sysdate в таблице 2 одинаковых значения. Если заменить sysdate на systimestamp или current_date или убрать parallel, то все работае корректно.

P.S. Повторяется на 12.2, 18.6, 19.3 и 19.6
P.P.S. На 11.2 не воспроизводится


я бы еще глянул есть ли оно без append хинта в insert
...
Рейтинг: 0 / 0
sysdate in parallel
    #39977497
mlc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawish,

Воспроизводится и без append.
...
Рейтинг: 0 / 0
sysdate in parallel
    #39977528
Alexander Anokhin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mlc
orawish,

Воспроизводится и без append.

И без insert тоже.

На мой взгляд это явный дефект, wrong result. Так что открывай SR, пусть чинят. Есть шанс, что дефект уже пофиксен, но проверять было бы долго. Дай знать, если не будешь SR открывать, я открою.
...
Рейтинг: 0 / 0
sysdate in parallel
    #39977548
mlc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Anokhin,

Спасибо, открою.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / sysdate in parallel
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]