
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.75] |
![]() |
|
![]() | Данный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
Сообщ.
#1
,
|
|
|
Всем привет
Есть уже огромная БД Оракла и одна табли весит больше 1 ГГб Необходимо её уменьшить ![]() ![]() declare iTemp Number; cursor curLoadedFiles is select * from TMS_LOADED_FILES where file_name between 'cr040401.cr' and 'cr040801.cr'; begin for recLoadedFiles in curLoadedFiles loop iTemp := recLoadedFiles.Id; delete from TMS_CR where LOADED_FILES_ID = iTemp; delete from TMS_LOADED_FILES where ID = iTemp; DBMS_OutPut.Put_Line(recLoadedFiles.FILE_NAME||' - Completed'); end loop; end; после завершения делаю команду COMMIT Размер не уменьшается Что делать??? |
Сообщ.
#2
,
|
|
|
Кол-во записей в таблице у тебя модет быть и стало меньше, а вот размер физического файла данных (где эта таблица хранится) не изменился, его размер можно уменьшить через alter database <имя_бд> datafile '<имя_файла>' resize... (для Oracle 9i Release 1 это работает более ранние версии не знаю), но не факт что это получится (т.к. данные в datafile'е могут быть фрагментированы т.е. все зависит от физического местоположения данных в datafile'е)
|
Сообщ.
#3
,
|
|
|
Универсальный способ уменьшения размера БД:
Выгружаешь структуру, данные и все остальное в виде SQL-кода( или как тебе удобнее ). Затем создаешь новую базу и вкачиваешь все тудыть. |
![]() |
Сообщ.
#4
,
|
|
Цитата Gunnar @ Затем создаешь новую базу и вкачиваешь все тудыть. Может ничего и не дать. Все зависти от настройки tablespace'ов (initial extent и next extent) в которых хранятся таблицы. |
Сообщ.
#5
,
|
|
|
Посмотри так же pstfree, по моему так называется, Свободное место в блоке, отведенное под увеличение "веса" строки путем update. Но екстенды перестраивать все равно придется. Есть понятие дифрагментации блоков таблицы. Вообщем с точки зрени админа базы попробуй комплексное решение. Может и добьешься успеха. А реально, на такой объем таблицы сколько строк приходится
Добавлено Описание таблицы предоставь, плиз. |