![]() |
|
Модераторы: LSD |
![]()
|
|
| Rickert |
|
||||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: нет Всего: 52 |
Вообщем, мне нужно в опред. процедуре отребилдить индексы, иначе данные не будут отображаться на инет-странице.
Вставляю в конец процедуры по добав. данных (которые потом и должны добавиться в конечном итоге), такую строку:
Наблюдаю за поведением сервера. Обычно при ребилде он загружается процентов на 10 - 15. Так и происходит, но в конечном итоге данные не отображаются. Если я тут же захожу и создаю запрос вручную в SQL Navigator'е:
Выполнив его - всё пучком, появляется. Я дорабатываю движок одного сайта, за двумя другими программистами. Сам двиг монстроузных размеров и расчитан как коробочный продукт, но в итоге сошёл на нет. Поэтому Оракул начал мучить совсем недавно и скорее всего просто не понимаю банальных операций - признаю. Прошу объяснить -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
||||
|
|||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15719 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
Индекс может влиять на скорость работы выборки, но никак не на возвращаемые результаты. Если select не возвращает каких-то данных, то проблема именно в select-е, а не в индексе. И ребилд индекса используется для совсем других целей. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: нет Всего: 52 |
LSD, хорошо, тогда подскажи "alter index myindex rebuild" - ребилдит индексы?
Потому что, как я уже сказал и неоднократно проверил сотней способов: именно после ребилда появляется информация. Да и дело не в этом. Вопрос в том: правильно ли я выполняю команду "execute immediate 'alter index myindex rebuild';" ? Может что-то ещё надо? -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: нет Всего: 52 |
Может маза с правами?
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15719 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
Права на операции выполняемые через execute immediate должны быть выданы явно, а не через роль. Других ограничений вроде нет. Ты уверен, что во время выполнения не происходит никаких ошибок, которые бы перехватывались бы и игнорировались? (нехватка привилегий должна выдать ошибку) А вообще ребилд индекса нужно выполнять, если он был отключён на время вставки большого блока данных и т.п. При нормальной работе ребилд индекса не требуется. И уж тем более он не оказывает влияние на запрос. Попробуй такой эксперимент: сделай ребилд индекса и выполни свой запрос. Затем выполни:
и снова повтори свой запрос. Результаты должны быть одинаковыми. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Nuzur |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 4.7.2004 Репутация: нет Всего: 5 |
LSD, Ситуация очень похожа на выборку без указания порядка следования.
Хотя ситуация бредовая в принципе. Rickert, Если бы Вы показали саму выборку которая не возвращает данные я думаю Вам бы от этого было бы больше пользы. -------------------- Never again... |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: нет Всего: 52 |
В понедельник попробую, когда на работе окажусь.
Всем спасибо -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: нет Всего: 52 |
Знать бы где этот запрос сформирован. Тут такой лес - караул просто!
LSD, сделал как ты сказал: да, разницы нет, за исключение того что все данные (которые до этого были индексированны) тоже отвалились. По поводу прав можно подробнее? Вообщем проблема пока осталась. Почему при выполнение через скрипт из SQL Navigator ребилд идёт нормально, а при выполнение через запрос, execute immediate'ом, ребилд идёт (судя по загрузке цп), но реально никаких обновлений? Может к полю myindex надо как-то обратиться по-особенному? Это сообщение отредактировал(а) Rickert - 15.12.2008, 09:28 -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 23 Всего: 44 |
что значит ребилд идет нормально? вам же сказали пересборка индекса не имеет отнашению к выборке данных, данные либо есть либо их нет. с какой целью вы делаете ребилд? что ожидаете после его выполнения? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15719 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
Права в Oracle можно дать 3 путями: - автоматически, например полные права на объекты своей схемы, есть у любого пользователя и они неотчуждаемы (т.е. revoke на них не сделать) - явным grant-ом - grant-ом пользователю роли, у которой есть grant на это право так вот в случае с execute immediate, права должны или быть автоматическими или даны через явный grant. Но в принципе это все неважно, потому что проблема не в индексе, а в запросе или PL/SQL коде. Что значит данные отвалились? Если проблема вычленить SQL запрос в чистом виде, возьми тот же SQL Developer (или любую другую IDE с поддержкой отладки, я просто не в курсе как там с этим делом в SQL Navigator) и запусти под ним PL/SQL процедуру в режиме отладки. Поставь брекпойнт на место где выполняется запрос и увидишь его текст в чистом виде. И тогда уже можно будет разбираться. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: нет Всего: 52 |
Всё работало, просто execute immediate работал до того, как происходили изменения в базе, как таковые. Перебросил в другую функцию и всё раскочегарилось. Всем спасибо.
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: нет Всего: 52 |
Вопрос в догонку: alter index myindex rebuild online - вываливается ошибка: "missing alter index parameter".
Почему? -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
![]()
|
| Правила форума "Oracle" | |
|
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Oracle | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |