На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Akina
  
> Oracle ументшить размер базы , Oracle 8.1
    Всем привет
    Есть уже огромная БД Оракла
    и одна табли весит больше 1 ГГб
    Необходимо её уменьшить
    ExpandedWrap disabled
      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
    Размер не уменьшается
    Что делать???
      Кол-во записей в таблице у тебя модет быть и стало меньше, а вот размер физического файла данных (где эта таблица хранится) не изменился, его размер можно уменьшить через alter database <имя_бд> datafile '<имя_файла>' resize... (для Oracle 9i Release 1 это работает более ранние версии не знаю), но не факт что это получится (т.к. данные в datafile'е могут быть фрагментированы т.е. все зависит от физического местоположения данных в datafile'е)
        Универсальный способ уменьшения размера БД:
        Выгружаешь структуру, данные и все остальное в виде SQL-кода( или как тебе удобнее ).
        Затем создаешь новую базу и вкачиваешь все тудыть.
          Цитата Gunnar @
          Затем создаешь новую базу и вкачиваешь все тудыть.

          Может ничего и не дать.
          Все зависти от настройки tablespace'ов (initial extent и next extent) в которых хранятся таблицы.
            Посмотри так же pstfree, по моему так называется, Свободное место в блоке, отведенное под увеличение "веса" строки путем update. Но екстенды перестраивать все равно придется. Есть понятие дифрагментации блоков таблицы. Вообщем с точки зрени админа базы попробуй комплексное решение. Может и добьешься успеха. А реально, на такой объем таблицы сколько строк приходится

            Добавлено
            Описание таблицы предоставь, плиз.
            1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0284 ]   [ 14 queries used ]   [ Generated: 16.06.25, 20:10 GMT ]