|
помогите, не вся таблица переливается в temp таблицу
|
|||
---|---|---|---|
#18+
Суть проблемы такова: Есть процедура например proc01 в теле этой процедуры есть выполнение процедуры proc02: Create procedure proc01 (arg01, arg02, ...) ... ... execute procedure proc02(); end proc01; В proc02 все просто - апдейтится одно поле таблицы table01 на основе двух других полей этой же таблицы. Соответственно в proc02 есть код: Create procedure proc02() ... select field01, field02 from table01 into temp ttable01; ... update table01 ...; ... end proc02; Приложение запускает proc01, по трейсам видно что запускается proc02, но количество записей во временной ttable01 равно 43000 и в то время когда количество записей в table01 равно 110000. Соответственно не по всем записям делается update table01. Если после выполнения proc01 запустить отдельно выполнение proc02 [ execute procedure proc02(); ] все работает правильно (смотрю по трейсам все 110000 попадают во временную таблицу и вся table01 апдейтится). Как решить эту проблему с базой? Пробовали пересоздать proc01, proc02 - не помогло. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2014, 08:28 |
|
помогите, не вся таблица переливается в temp таблицу
|
|||
---|---|---|---|
#18+
faid, 1. Версия сервера? 2. поробуйте поменять названия ХП proc01 и proc02 (чтобы это были совершенно новые ХП). Эффект повторяется? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 12:31 |
|
помогите, не вся таблица переливается в temp таблицу
|
|||
---|---|---|---|
#18+
АнатоЛойfaid, 1. Версия сервера? 2. поробуйте поменять названия ХП proc01 и proc02 (чтобы это были совершенно новые ХП). Эффект повторяется? версия 10. поменять не получится, т.к проблема у удаленного клиента, на моем тестовом сервере не воспроизводится. мысль - если пересоздать таблицу table01 и статистики собрать по процедурам - может поможет? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 08:58 |
|
помогите, не вся таблица переливается в temp таблицу
|
|||
---|---|---|---|
#18+
Странно все это, мало похоже но возможно битый индекс попробуйте с хинтом select /*+full(table01)*/ field01, field02 from table01 into temp ttable01; ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 09:53 |
|
|
start [/forum/topic.php?fid=44&msg=38796066&tid=1606911]: |
0ms |
get settings: |
17ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
33ms |
get topic data: |
4ms |
get forum data: |
1ms |
get page messages: |
114ms |
get tp. blocked users: |
1ms |
others: | 376ms |
total: | 553ms |
0 / 0 |