powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / FOR зависает
34 сообщений из 34, показаны все 2 страниц
FOR зависает
    #39866173
Фотография Frequency
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычный 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
FOR зависает
    #39866178
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
FOR зависает
    #39866180
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запрос выполняется? поставьте логирование в автономной транзакции в начале цикла, ну или гляньте чем занята сессия хотя бы
...
Рейтинг: 0 / 0
FOR зависает
    #39866181
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frequency

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

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

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

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

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


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


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

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

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

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

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

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

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

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

Код: 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
FOR зависает
    #39866297
Фотография Frequency
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир САElicпропущено...
Это твои домыслы.Согласен... Просто ТС не умеет выражаться. Фраза "21000 информации" - вообще ни о чем.
Ну я понял ее по своему... Может и неправильно.


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

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

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

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

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

Ну и посмотреть что написал 21977875 ...
...
Рейтинг: 0 / 0
FOR зависает
    #39866302
Фотография Frequency
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
FOR зависает
    #39866309
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frequency1). Сессия не активна


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

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

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

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

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



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

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



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

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



Повторить скрипт, заменив INSERT INTO SUBJECTS.EMLOYEERS на INSERT INTO SUBJECTS.EMLOYEERS_TEST.Хороший вариант. Создать типа временной таблицы. а потом из нее дописать...
чукча не читатель?
...
Рейтинг: 0 / 0
FOR зависает
    #39866332
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frequency,

если сессия неактивна то
1) цикл (блок) закончился
2) не начался

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

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



Повторить скрипт, заменив INSERT INTO SUBJECTS.EMLOYEERS на INSERT INTO SUBJECTS.EMLOYEERS_TEST.
если уж менять скрипт

то я б вставлял за раз
insert into ... select from ...

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

если сессия неактивна то
1) цикл (блок) закончился
2) не начался

.....
stax


Приходится каждый раз абортить

shutdown abort;

И очищать REDO т.к. , откатил

alter database clear unarchived logfile group 1;
alter database clear unarchived logfile group 2;
alter database clear unarchived logfile group 3;
...
Рейтинг: 0 / 0
FOR зависает
    #39866345
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FrequencyStaxFrequency,

если сессия неактивна то
1) цикл (блок) закончился
2) не начался

.....
stax


Приходится каждый раз абортить

shutdown abort;

И очищать REDO т.к. , откатил

alter database clear unarchived logfile group 1;
alter database clear unarchived logfile group 2;
alter database clear unarchived logfile group 3;
лол, что ты творишь?
...
Рейтинг: 0 / 0
FOR зависает
    #39866347
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FrequencyПриходится каждый раз абортить

shutdown abort;

И очищать REDO т.к. , откатил

alter database clear unarchived logfile group 1;
alter database clear unarchived logfile group 2;
alter database clear unarchived logfile group 3;
ой
я имел ввиду убить "подвисшую" сессию

Вы шо базу опускаете?

......
stax
...
Рейтинг: 0 / 0
FOR зависает
    #39866348
Фотография Frequency
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StaxFrequencyПриходится каждый раз абортить

shutdown abort;

И очищать REDO т.к. , откатил

alter database clear unarchived logfile group 1;
alter database clear unarchived logfile group 2;
alter database clear unarchived logfile group 3;
ой
я имел ввиду убить "подвисшую" сессию

Вы шо базу опускаете?

......
stax


естессно не локалке , не на активной базе )
...
Рейтинг: 0 / 0
FOR зависает
    #39866419
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frequencyестессно не локалке , не на активной базе )Надо было дроп датабазе
...
Рейтинг: 0 / 0
FOR зависает
    #39866479
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicFrequencyестессно не локалке , не на активной базе )Надо было дроп датабазе
он ведь сейчас тебя послушает Elic

Frequencyестессно не локалке , не на активной базе )
прочитайте мой первый ответ в теме, хватит маяться дурью...
...
Рейтинг: 0 / 0
FOR зависает
    #39866662
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему нельзя было сделать простой INSERT .. SELECT?
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / FOR зависает
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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