Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / FOR зависает / 25 сообщений из 34, страница 1 из 2
24.09.2019, 12:03
    #39866173
Frequency
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
Обычный FOR

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
BEGIN

FOR elem in  (SELECT * FROM TABLE)
    LOOP
           INSERT TABLE...

EXIT WHEN cursor%NOTFOUND;

END LOOP;
END;



В таблице около 21000 информации;

Но крутится бесконечно , данные не добавляются;

TABLESPACES в норме , UNDU тоже в норме , серверные данные тоже норма.

Никаких высоких показателей во время процесса не наблюдается.

В чем причина может быть? Накиньте пожалуйста , буду благодарен.
...
Рейтинг: 0 / 0
24.09.2019, 12:08
    #39866178
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
FrequencyОбычный FOR
Код: plsql
1.
2.
3.
4.
5.
6.
7.
BEGIN
FOR elem in  (SELECT * FROM TABLE)
    LOOP
           INSERT TABLE...
EXIT WHEN cursor%NOTFOUND;
END LOOP;
END;



В таблице около 21000 информации;
Но крутится бесконечно , данные не добавляются;
TABLESPACES в норме , UNDU тоже в норме , серверные данные тоже норма.
Никаких высоких показателей во время процесса не наблюдается.
В чем причина может быть? Накиньте пожалуйста , буду благодарен.
Зачем ???
Код: plsql
1.
EXIT WHEN cursor%NOTFOUND;


И где COMMIT; ???
...
Рейтинг: 0 / 0
24.09.2019, 12:12
    #39866180
alex-ls
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
запрос выполняется? поставьте логирование в автономной транзакции в начале цикла, ну или гляньте чем занята сессия хотя бы
...
Рейтинг: 0 / 0
24.09.2019, 12:13
    #39866181
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
Frequency

Приведите работающий скрипт...
А то:
INSERT TABLE ???
Наверное INSERT INTO <TABLE>...
...
Рейтинг: 0 / 0
24.09.2019, 12:14
    #39866184
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
FrequencyВ чем причина может быть?В программировании методом "миллион мартышек за тыщу лет натопчут войну и мир".
...
Рейтинг: 0 / 0
24.09.2019, 12:25
    #39866198
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
Владимир СА,

если в INSERT TABLE есть уникальный индекс и кто-то (иногда ето подвисшая сессия) вставил дубль,
то Ваша сессия (insert в FOR) будет ждать завершения транзакции "чужой/другой" сессии

.....
stax
...
Рейтинг: 0 / 0
24.09.2019, 12:31
    #39866205
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
StaxВладимир СА,

если в INSERT TABLE есть уникальный индекс и кто-то (иногда ето подвисшая сессия) вставил дубль,
то Ваша сессия (insert в FOR) будет ждать завершения транзакции "чужой/другой" сессии

.....
staxНу, это не у меня, а у Frequency...
Поэтому и прошу показать полный код.
Может у Frequency все по умному и имеет место SEQUENCE типа
Код: plsql
1.
... GENERATED BY DEFAULT ON NULL AS IDENTITY ( START WITH ...


Да и версию оракла хотелось бы видеть...
...
Рейтинг: 0 / 0
24.09.2019, 12:34
    #39866209
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
Владимир САМожет у Frequency все по умномуДа-да, кругом все гении, а в форум они приходят не плакаться, а так просто. Наивная простота…
...
Рейтинг: 0 / 0
24.09.2019, 12:45
    #39866223
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
Владимир САStaxесли в INSERT TABLE есть уникальный индекс и кто-то (иногда ето подвисшая сессия) вставил дубль,
то Ваша сессия (insert в FOR) будет ждать завершения транзакции "чужой/другой" сессииМожет у Frequency все по умному и имеет место SEQUENCE типа...Какое отношение имеет сиквенс к цитируемому утверждению Stax?
...
Рейтинг: 0 / 0
24.09.2019, 12:46
    #39866224
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
Владимир САНу, это не у меня, а у Frequency...


звиняйте, не там кликнул

.....
stax
...
Рейтинг: 0 / 0
24.09.2019, 12:53
    #39866235
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
-2-Владимир САпропущено...
Может у Frequency все по умному и имеет место SEQUENCE типа...Какое отношение имеет сиквенс к цитируемому утверждению Stax?Хм...
Про уникальный индекс я почему то подумал про ID...
Если для него создан сиквенс, то тут как бы оракл сам разрулит.
А если имеют место другие поля в таблице и построены еще уникальные индексы. Ну так можно кучу вариантов смотреть. И в этом случае тогда надо конечно смотреть на залочивание таблицы.

И почему просто не посмотреть на выполнение скрипта типа:
Код: plsql
1.
INSERT INTO <TABLE>... SELECT ... FROM...

21000 записей - это не так уж и много.

ТС то не отвечает, а мы тут догадки кидаем.
...
Рейтинг: 0 / 0
24.09.2019, 13:04
    #39866247
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
Владимир СА21000 записейЭто твои домыслы.
...
Рейтинг: 0 / 0
24.09.2019, 13:10
    #39866255
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
ElicВладимир СА21000 записейЭто твои домыслы.Согласен... Просто ТС не умеет выражаться. Фраза "21000 информации" - вообще ни о чем.
Ну я понял ее по своему... Может и неправильно.
...
Рейтинг: 0 / 0
24.09.2019, 13:33
    #39866292
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
Владимир САНу так можно кучу вариантов смотреть.

если есть права
я б
1) глянул активна ли сессия
2) если активна, не ждет ли чего-то
3) растут ли статистики
и тд

зы
если loop - end loop большой внутри может и что-то цыклить

.....
stax
...
Рейтинг: 0 / 0
24.09.2019, 13:36
    #39866295
Frequency
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
Полный код

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
DECLARE

v_subject_id          NUMBER;

BEGIN 

-------------------INSERT SUBJECTS----------------------------        

FOR elem in ( SELECT * FROM SUBJECTS.EMLOYEERS)

   LOOP 
    
        v_subject_id := UB_EMS.SEQ_SUBJECT.NEXTVAL;
        
        INSERT INTO SUBJECTS.EMLOYEERS (ID , SUBJECT_ID, TYPE_ID ,CREATE_DATE , CREATE_USER_ID , UPDATE_DATE, UPDATE_USER_ID ) VALUES( v_subject_id , elem.SUBDICID , 1000147 ,  SYSDATE ,55 , SYSDATE ,555 );
 
   END LOOP;        



END;
...
Рейтинг: 0 / 0
24.09.2019, 13:37
    #39866297
Frequency
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
Владимир САElicпропущено...
Это твои домыслы.Согласен... Просто ТС не умеет выражаться. Фраза "21000 информации" - вообще ни о чем.
Ну я понял ее по своему... Может и неправильно.


21603 строк , точнее
...
Рейтинг: 0 / 0
24.09.2019, 13:38
    #39866298
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
StaxВладимир САНу так можно кучу вариантов смотреть.

если есть права
я б
1) глянул активна ли сессия
2) если активна, не ждет ли чего-то
3) растут ли статистики
и тд

зы
если loop - end loop большой внутри может и что-то цыклить

.....
staxПоэтому и хочу из 21977708
увидеть полный работающий (пусть с зависанием) скрипт.
...
Рейтинг: 0 / 0
24.09.2019, 13:44
    #39866301
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
FrequencyПолный код...
Код: plsql
1.
COMMIT;

где ??? или после выполнения скрипта ???

Ну и посмотреть что написал 21977875 ...
...
Рейтинг: 0 / 0
24.09.2019, 13:47
    #39866302
Frequency
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
StaxВладимир САНу так можно кучу вариантов смотреть.

если есть права
я б
1) глянул активна ли сессия
2) если активна, не ждет ли чего-то
3) растут ли статистики
и тд

зы
если loop - end loop большой внутри может и что-то цыклить

.....
stax


1). Сессия не активна

2). Статистики не растут

3).
Код: plsql
1.
2.
3.
4.
5.
SELECT S.* FROM V$SQL  S
JOIN V$SESSION  N ON N.SQL_ID = S.SQL_ID
JOIN V$PROCESS P ON P.ADDR = N.PADDR
WHERE N.USERNAME IS NOT NULL
ORDER BY P.PGA_USED_MEM DESC;



Текущих SQL не наблюдается.

4). уже 1:40 как транзакция идет
...
Рейтинг: 0 / 0
24.09.2019, 13:57
    #39866309
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
Frequency1). Сессия не активна


как вариант, отрубило клиента (напр из-за сети)

я б прибил сессию, и если надо повторил выполнение

зы
для очистки совести можно глянуть SEQ_SUBJECT спалил ли номера

....
stax
...
Рейтинг: 0 / 0
24.09.2019, 13:58
    #39866312
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
Мой хрустальный шар предлагает:

Код: plsql
1.
2.
create table EMLOYEERS_TEST as
select * from SUBJECTS.EMLOYEERS;



Повторить скрипт, заменив INSERT INTO SUBJECTS.EMLOYEERS на INSERT INTO SUBJECTS.EMLOYEERS_TEST.
...
Рейтинг: 0 / 0
24.09.2019, 14:00
    #39866313
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
Frequency...TABLESPACES точно в норме ? Заполненность небольшая ?
...
Рейтинг: 0 / 0
24.09.2019, 14:03
    #39866316
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
dmdmdmМой хрустальный шар предлагает:

Код: plsql
1.
2.
create table EMLOYEERS_TEST as
select * from SUBJECTS.EMLOYEERS;



Повторить скрипт, заменив INSERT INTO SUBJECTS.EMLOYEERS на INSERT INTO SUBJECTS.EMLOYEERS_TEST.Хороший вариант. Создать типа временной таблицы. а потом из нее дописать...
...
Рейтинг: 0 / 0
24.09.2019, 14:05
    #39866319
Frequency
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
Владимир САFrequency...TABLESPACES точно в норме ? Заполненность небольшая ?
...
Рейтинг: 0 / 0
24.09.2019, 14:10
    #39866326
проходил мимо...
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FOR зависает
Владимир САdmdmdmМой хрустальный шар предлагает:

Код: plsql
1.
2.
create table EMLOYEERS_TEST as
select * from SUBJECTS.EMLOYEERS;



Повторить скрипт, заменив INSERT INTO SUBJECTS.EMLOYEERS на INSERT INTO SUBJECTS.EMLOYEERS_TEST.Хороший вариант. Создать типа временной таблицы. а потом из нее дописать...
чукча не читатель?
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / FOR зависает / 25 сообщений из 34, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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