БЭСМ не пошел в мир из-за тупости чиновников.
В 74 году партия решила закупать зарубежные ЭВМ не веря в родные. Лебедев в момент принятия этого решения был с воспалением легких и за 70 лет. Он лично пошел уговаривать чинуш, но те его даже высшушать не пожелали. А Лебедев умер.
Я ответил на Ваш вопрос почему БЭСМ не продавалась не весь мир?
PS Томилин Александр Николаевич читал у меня курс лекций. Он знал Лебедева лично и работал с ним. История с его слов.
В 86 году мне было 3 годика — не помню.
В 88 тоже не очень помню. В вот в 90году, когда я пошел в школу цветной телевизор у меня был. Даже два. У бабушки с дедушкой и мамы с папой.
Размер блока 8K
Т.е. вначале было 105968 блоков, но сразу все сожрать нельзя.
А после выделения 105600 остается 112 и 256 блоков. И их уже можно до полного заполнения.
Ну и alter table SAPSR3.TESTTABLE allocate extent(size ...); разумеется тоже не проходит. Жаль, очень бы быстро отрабатывало.
SELECT bytes/1024 from DBA_FREE_SPACE where TABLESPACE_NAME = 'PSAPSR3USR';
896
2048
И вот с этими размерами уже можно создать две таблицы и они реально покроют всю TS.
Покопаться в dba_extents пока не получилось. Обращение долгое, а мне пора бежать… Завтра продолжу.
Что и как дампнуть не понял.:(
Да, ладно зачем уходить в приват. Я столько полезностей вычитал из подобных обсуждений:)
Не получается.:( А очень жаль.
Т.е. написал прогу которая по max(bytes) создает с таким начальным екстентом табличку — и для 100G свободных шикарно отработало за несколько секунд.
Но получилось не универсально.
Вот для другого TS со свободным размером чуть меньше гига вручную повторил:
alter system set DEFERRED_SEGMENT_CREATION=false;
system SET altered.
SELECT max(bytes) from DBA_FREE_SPACE where TABLESPACE_NAME = 'PSAPSR3USR';
Не проходит. И, разумеется, большие размеры, которые ближе к максимальному, тоже не катят.
Жалуется на ORA-01659(Failed to find sufficient contiguous space to allocate MINEXTENTS for the segment being created.)
Вот размер 10500M создать можно.
А сидеть и подбирать этот размер на который оно таки может создаться — мне видится глупым.
Надо было, конечно, все свои опыты в статье отобразить. А то я сразу туда написал решение к которому пришел.
И вот как сверху советовали alter table allocate extent (size… ); я тоже попробовал.
Проблема та же. Муторно подбирать размер который оно проглотит. А писать прогу которая сначало будет вычислять максимальный размер на который можно расшириться, а потом постепенно понижать — глупо как то…
Сложность и размер скрипта сильно возрастет, а что мы выйграем? 45 секунд из 150?
А в случае чего легко можно будет перенести на другой хост.
Отлично! :)
В 74 году партия решила закупать зарубежные ЭВМ не веря в родные. Лебедев в момент принятия этого решения был с воспалением легких и за 70 лет. Он лично пошел уговаривать чинуш, но те его даже высшушать не пожелали. А Лебедев умер.
Я ответил на Ваш вопрос почему БЭСМ не продавалась не весь мир?
PS Томилин Александр Николаевич читал у меня курс лекций. Он знал Лебедева лично и работал с ним. История с его слов.
В 88 тоже не очень помню. В вот в 90году, когда я пошел в школу цветной телевизор у меня был. Даже два. У бабушки с дедушкой и мамы с папой.
Про ЭВМ погуглите кто такой Лебедев и про БЭСМ.
Т.е. вначале было 105968 блоков, но сразу все сожрать нельзя.
А после выделения 105600 остается 112 и 256 блоков. И их уже можно до полного заполнения.
Ну и alter table SAPSR3.TESTTABLE allocate extent(size ...); разумеется тоже не проходит. Жаль, очень бы быстро отрабатывало.
После создания таблички 844800К делаем:
896
2048
И вот с этими размерами уже можно создать две таблицы и они реально покроют всю TS.
Покопаться в dba_extents пока не получилось. Обращение долгое, а мне пора бежать… Завтра продолжу.
Что и как дампнуть не понял.:(
Да, ладно зачем уходить в приват. Я столько полезностей вычитал из подобных обсуждений:)
847744
И максимальное количество килобайт с которым таблица создалась: 844800
Пришлось отступить на 368 блоков…
Т.е. написал прогу которая по max(bytes) создает с таким начальным екстентом табличку — и для 100G свободных шикарно отработало за несколько секунд.
Но получилось не универсально.
Вот для другого TS со свободным размером чуть меньше гига вручную повторил:
system SET altered.
868089856
И уппс: ORA-01659: не могу выделить MINEXTENTS выше 19 в разделе PSAPSR3USR
Пока думаю с чем такое может быть связано. Свободный кусок есть… но не совсем свободный.
Затем:
Результат: 10668,75
И после этого:
Не проходит. И, разумеется, большие размеры, которые ближе к максимальному, тоже не катят.
Жалуется на ORA-01659(Failed to find sufficient contiguous space to allocate MINEXTENTS for the segment being created.)
Вот размер 10500M создать можно.
А сидеть и подбирать этот размер на который оно таки может создаться — мне видится глупым.
Или я не так все таки понял?
Надо было, конечно, все свои опыты в статье отобразить. А то я сразу туда написал решение к которому пришел.
И вот как сверху советовали alter table allocate extent (size… ); я тоже попробовал.
Проблема та же. Муторно подбирать размер который оно проглотит. А писать прогу которая сначало будет вычислять максимальный размер на который можно расшириться, а потом постепенно понижать — глупо как то…
Сложность и размер скрипта сильно возрастет, а что мы выйграем? 45 секунд из 150?
TS у меня ASSM по умолчанию. Их так создает SAP.
CTAS я тоже пробовал. На том же оборудовании, той же базе — таблички надувались в течении почти часа для почти 100гигов.
Как то стал писать execute совместно с commit — так и повелось.
Я пробовал играться с параметрами создания таблицы, но оракл их воспринимает как рекомендации и все равно делает как хочет.