18.04.2008 09:21
undos
 
Есть tablespaces users1.dbf,users2.dbf по 2 гига, так вот один занят на 940 метров, второй на 1600, оптимайзер говорит, что не хватает места в юзерсах, так вопрос, 1.почему так происходит и 2.можно ли каким образом дефрагментировать что-ли это пространство, место же есть свободное...
18.04.2008 09:38
akonev
 
табличное users у тебя одно. просто оно живет в двух файлах.
оптимизатор при работе, кроме всего прочего, собирает фрагментированные объекты, распиханные по разным углам табличного и складывает их непрерывными кусками на свободное место.
прямая аналогия - дефрагментация жесткого диска.
то есть для работы оптимайзера надо много свободного места. больше, чем для обычной работы базы.
чтобы он не ругался, тебе придется добавить еще минимум один такой же двухгиговый файл. ну или старые увеличить (только иметь в виду, что на файлах больше 2Г не будет работать dbv - штатный оракловый проверяльщик файлов)
18.04.2008 12:45
undos
 
это я и так все понимаю. возникла просто ситуация: не стали формироваться отчеты по реализации, покапались в результате все таки создали еще один файлик 2-х гиговый и все стало работать нормально, значит места не хватало, хотя оно было 1ГБ в одном и 400МБ во втором. Вот и спрашиваеться почему не хватило места, когда оно было ?
18.04.2008 12:56
kadr
 
потому что есть параметры расширения таблиц, в которых прописано минимальное непрерывное место в ТП, необходимое для последующего расширения таблицы, ты хоть 100Гб имей кусочками по 10Мб, если таблице требуется для расширения кусок в 10,5Мб она не сможет расшириться
22.04.2008 10:12
undos
 
kadr, а если поставить автоинкремент размера таблиц?
22.04.2008 10:31
OlegON
 
Цитата:
undos kadr, а если поставить автоинкремент размера таблиц?
А оно у тебя и есть. Просто таблица не может вырасти. Растет кусками и следующий кусок не влазит. И кусок, на который может вырасти ТП за раз тоже не настолько велик, чтобы вместить следующий кусок таблицы.
22.04.2008 13:45
kadr
 
Цитата:
undos kadr, а если поставить автоинкремент размера таблиц?
Я не сторонник использования авторасширения на табличных пространствах. Иначе при описаной мной ситуации можем получить крах при попытке расширить ТС, в то время как места в ТС навалом и его лишь надо немножко объединить
24.04.2008 09:01
undos
 
Цитата:
kadr .... в то время как места в ТС навалом и его лишь надо немножко объединить
понятно, тогда последнее: как объединить ?
24.04.2008 09:13
kadr
 
я пользуюсь методом двойного переноса
создать ТС для временных нужд
Код:
alter table <таблицы из исходного ТС> move tablespace <временное ТС>;
alter table <таблицы из временного ТС> move tablespace <исходное ТС>;
между этими переносами, в зависимости от ситуации, работы над исходным ТС (изменения размеров, параметров хранения, перераспределение по дискам)
после этого полная переиндексация, тоже обычно в другое ТС, чтобы и индексы ровненько лежали

Насколько знаю optimizer от Олега умеет собирать свободное место и дефрагментировать данные
24.04.2008 09:19
reddevil
 
Цитата:
undos понятно, тогда последнее: как объединить ?
За 5 дней забыл об чем топик :) http://www.olegon.ru/showpost.php?p=30815&postcount=2
Часовой пояс GMT +3, время: 12:27.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.