|
|
|
Про индексы
|
|||
|---|---|---|---|
|
#18+
Господа, что-то я совсем запутался, подскажите кто может. Насколько я понимаю индексы если не указывать в создании явный таблеспэйс то он создается в таблеспэйс рабочий спэйс изера, который создает этот индекс. (поправте если я не прав) Так вот вопрос Есть скрипт в котором создаются индексы без явного указания таблеспэйса и еще там создаются и модернизируются таблицы тоже без явного указания таблеспэйса. (так что изменение рабочего спэйся для юзера перед скриптом на нужный для индексов и замена его на обратный невозможно. править скрипт тоже не представляется возможным, потому что это не одноразово (новые скрипты приходят такимиже и как бы все таки лень постоянно их править)) Возможно ли как-нибудь Оракл заставить создавать индексы в другом по-умолчанию таблеспэйсе чем рабочий, указанный для юзера??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2003, 04:16 |
|
||
|
Про индексы
|
|||
|---|---|---|---|
|
#18+
после прогона скриптов можно сгенерить скрипт для переноса индексов в другое пространство. Примерно так alter index <owner.indexname> rebuild tablespase <имя ts> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2003, 09:01 |
|
||
|
Про индексы
|
|||
|---|---|---|---|
|
#18+
С переносом в другое место тоже не фантан потому как происходит увеличение старого таблеспэйса а вот это как раз и не желательно. С таким же успехом можно все оставить как есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2003, 09:05 |
|
||
|
Про индексы
|
|||
|---|---|---|---|
|
#18+
тогда, наверное, лучше написать прогу-конвертор для добавления таблспейса к командам создания индекса и констрейнтам, создающим индексы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2003, 09:16 |
|
||
|
Про индексы
|
|||
|---|---|---|---|
|
#18+
Проще убить тех кто пишет такой софт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2003, 09:51 |
|
||
|
Про индексы
|
|||
|---|---|---|---|
|
#18+
Спокойнее... Это не страшно. Хотя, если они и параметры хранения не указывают, впора пойти на кухню точить ножичек :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2003, 12:59 |
|
||
|
Про индексы
|
|||
|---|---|---|---|
|
#18+
Напиши анализатор кода, который автоматически будут заменять названия исходных tablespaces на те которые тебе нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2003, 13:11 |
|
||
|
Про индексы
|
|||
|---|---|---|---|
|
#18+
можно по-хакерски - поменять в ts$ имя табл. пространства, очистить shared pool, прогнать скрипт и поменять обратно. НО ЭТО ОЧЕНЬ НЕ ХОРОШО!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2003, 16:59 |
|
||
|
Про индексы
|
|||
|---|---|---|---|
|
#18+
"очистить shared pool" to denim: А как быть с data buffer ? Послать на? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2003, 17:10 |
|
||
|
Про индексы
|
|||
|---|---|---|---|
|
#18+
to soft... а причём здесь data buffer? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2003, 17:18 |
|
||
|
Про индексы
|
|||
|---|---|---|---|
|
#18+
Данные в буфере данных связаны с определённой таб. областью. Как ты собираешься менять ts$ в этом случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2003, 17:31 |
|
||
|
Про индексы
|
|||
|---|---|---|---|
|
#18+
to soft... Так они же не по имени табл. пространств связаны, а по ID. А в ts$ нужно менять ТОЛЬКО поле NAME. А shared pool надо чистить, потому что там живёт словарь данных, в котором как раз прописано соответствие имени табл. пр-ва и его ID. Ты это... поробуй :) усё получится, проверено. Но править словать данных, как ты сам понимаешь... дело не благодарное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2003, 17:41 |
|
||
|
Про индексы
|
|||
|---|---|---|---|
|
#18+
"Ты это... поробуй :) " to denim: Нет, спасибо, как нибудь в следующий раз :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2003, 17:46 |
|
||
|
Про индексы
|
|||
|---|---|---|---|
|
#18+
вот небольшая программка на Perl, которую я использовал для похожего случая... не забудь поменять значения "$tbl_tbsp" (tablespace for tables) и "$ind_tbsp" (tablespace for indexes) для своего случая. пример использования: Код: plaintext 1. "точка" - "перелопатить" ВСЕ файлы начиная с текущей директории (рекурсивно) с расширением ".sql" Код: plaintext 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. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. проверял на ActivePerl от ActiveState не забудь сохранить перед этим исходные файлы! и еще - не стоит ее запускать дважды - я такую проверку не делал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2003, 18:02 |
|
||
|
Про индексы
|
|||
|---|---|---|---|
|
#18+
А еще бывает пишут создание PRIMARY KEY или UNIQUE CONSTRANT вообще без указания индекса:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2003, 18:06 |
|
||
|
Про индексы
|
|||
|---|---|---|---|
|
#18+
я решал подобную проблему так: .. создаю таблицы в рабочем пространстве пользователя ALTER USER user_name DEFAULT TABLESPACE index_tablespace; .. создаю индексы ALTER USER user_name DEFAULT TABLESPACE user_tablespace; минус описанной схемы - надо знать таблеспэйс пользователя по-умолчанию, чтобы его потом задать. И обходится в принципе этот минус легко - перед запуском скрипта можно опросить, какой таблеспейс у него выставлен, в переменную, а там уже дело техники. Если за этим вопрос станет - подсоблю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2003, 21:09 |
|
||
|
Про индексы
|
|||
|---|---|---|---|
|
#18+
to Znich я решал подобную проблему так: .. создаю таблицы в рабочем пространстве пользователя ALTER USER user_name DEFAULT TABLESPACE index_tablespace; .. создаю индексы ALTER USER user_name DEFAULT TABLESPACE user_tablespace повторяю еще раз этот вариант не подходит Есть скрипт в котором создаются индексы без явного указания таблеспэйса и еще там создаются и модернизируются таблицы тоже без явного указания таблеспэйса. (так что изменение рабочего спэйся для юзера перед скриптом на нужный для индексов и замена его на обратный невозможно . править скрипт тоже не представляется возможным, потому что это не одноразово (новые скрипты приходят такимиже и как бы все таки лень постоянно их править)) to Denim можно по-хакерски - поменять в ts$ имя табл. пространства , очистить shared pool, прогнать скрипт и поменять обратно. НО ЭТО ОЧЕНЬ НЕ ХОРОШО!!! А чем собственно это отличается от выше сказанного??? to MaxU спасибо за исходник конечно. Но тема писать конвертор не совсем устраивает. Просто хотелось как-то все-таки по хорошому, а видно прейдется как всегда. ВСЕМ СПАСИБО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2003, 08:01 |
|
||
|
Про индексы
|
|||
|---|---|---|---|
|
#18+
to Animal А если создать "левого" пользователя с правильными ts, а потом раздать гранты, насоздавать синонимов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2003, 10:01 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=2779&tid=1990597]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
68ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 400ms |

| 0 / 0 |
