powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Можно ли обойти ограничение по количеству экстентов
13 сообщений из 13, страница 1 из 1
Можно ли обойти ограничение по количеству экстентов
    #36550268
KyRo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день .
Выполнял импорт базы данных в один спейс, без флага -ss , на загрузке одной из таблиц , которая была ранее фрагментирована по спейсам , импорт выдал ошибку

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
create table "cap".originaltrxns
  (
    trxnserno integer not null constraint "cap".originaltrxnsnl01,
    fragmentindicator smallint
        default  1  not null constraint "cap".originaltrxnssnl04,
    seqno smallint not null constraint "cap".originaltrxnsnl02,
    fieldno smallint
        default  0  not null constraint "cap".originaltrxnsnl03,
    format char( 4 ),
    row1 varchar( 250 ),
    row2 varchar( 250 ),
    row3 varchar( 250 ),
    row4 varchar( 250 ),
    row5 varchar( 250 )
  );
*** put loadcur
 271  - Could not insert new row into the table.
 136  - ISAM error: no more extents


При проверке утилитой oncheck показывает что утилита dbimport правильно показывает размеры экстентов и в данной таблице их всего 3

Код: 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.
[root@prime_test informix_chunk2]# oncheck -pt prime20:originaltrxns


TBLspace Report for prime20:cap.originaltrxns

    Physical Address                8 : 10499637 
    Creation date                   03 / 29 / 2010   22 : 23 : 05 
    TBLspace Flags                  901         Page Locking
                                              TBLspace contains VARCHARS
                                              TBLspace use  4  bit bit-maps
    Maximum row size                1269 
    Number of special columns       5 
    Number of keys                  0 
    Number of extents               3 
    Current serial value            1 
    First extent size               1810212 
    Next extent size                181021 
    Number of pages allocated       16777215 
    Number of pages used            16777215 
    Number of data pages            16773053 
    Number of rows                  49492301 
    Partition partnum               5243196 
    Partition lockid                5243196 

    Extents
         Logical Page     Physical Page        Size
                     0           9 : 5565736       4887569 
               4887569                10 : 3      10499218 
              15386787                11 : 3       1390428 



То есть , я правильно понимаю что проблема не в экстентах , а в максимальном размере таблицы ?

Подскажите можно ли как то обойти данную ошибку или все таки придется эту таблицу фрагментировать ?
...
Рейтинг: 0 / 0
Можно ли обойти ограничение по количеству экстентов
    #36550536
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, придётся фрагментировать.
Если IDS 11.50 - можно фрагментировать в один dbspace...
...
Рейтинг: 0 / 0
Можно ли обойти ограничение по количеству экстентов
    #36550571
KyRo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет ids 9.4 . Так в нем я не помню такой возможности (
...
Рейтинг: 0 / 0
Можно ли обойти ограничение по количеству экстентов
    #36550825
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нельзя фрагментировать в одном dbspace. В несколько можно.
...
Рейтинг: 0 / 0
Можно ли обойти ограничение по количеству экстентов
    #36550933
klepa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LIMITS IN IBM INFORMIX DYNAMIC SERVER

Data pages per fragment | 16,775,134
...
Рейтинг: 0 / 0
Можно ли обойти ограничение по количеству экстентов
    #36551505
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KyRo
row1 varchar(250),
row2 varchar(250),
row3 varchar(250),
row4 varchar(250),
row5 varchar(250)

С экстентами и максимальным размером разобрались, но меня вот что умиляет - что этот максимальный размер превышен всего при 50 млн.строк (т.е. всего по 3(три) строки на страницу), а всему виной странная, (если не сказать сильнее) структура таблица с varchar. Если уж взяли такой тип данных то на кой резервировать минимальный размер в 250 и, в итоге, 5*250=1250 пустых байт ?
Ведь это не lvarchar и не char, а именно varchar и его максимальный размер только 255. Так какой смысл использовать здесь этот тип данных и резервировать почти максимальный размер ? Что можно сэкономить на этом типе при таких параметрах - 5 байт ? Уже судя по этому можно видеть квалификацию проектировщика БД и архитектора системы....
Если проанализировать прикладные данные и увидеть, _например_, что row1-5 в среднем заполнены только на четверть, то при более правильном указании (хотя бы varchar(50) ) на страницу в среднем будет помещаться уже в 5 раз больше строк, а значит скорость чтения данных с диска будет выше и общее кол-во операций вв/выв будет на порядок меньше. Я уж не говорю об экономии дискового пространства и возникшей проблемы с фрагментированием.
...
Рейтинг: 0 / 0
Можно ли обойти ограничение по количеству экстентов
    #36551589
Чемберлен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vasilis,

Я, конечно, извиняюсь, но мне кажется, что столбец varchar(250) реально занимает на диске один байт (длина строки) плюс сама строка как она есть. Если пустая - то ноль байт строки. Поэтому так ли критично, 250 там, 255 или 200, если строки в основном короткие? Ну, а если они по 250 байтов длиной - так тому и быть...

Вобщем, суть предыдущего сообщения от меня ускользает почему-то...
...
Рейтинг: 0 / 0
Можно ли обойти ограничение по количеству экстентов
    #36551659
GVF112GVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DaugavaНельзя фрагментировать в одном dbspace. В несколько можно.

Можно, но только на уровне tablespace для IDS 10.x, IDS 11.x ... :)
Для IDS 9.40, действительно, нельзя.

С уважением,
Вадим.
...
Рейтинг: 0 / 0
Можно ли обойти ограничение по количеству экстентов
    #36551668
GVF112GVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KyRo,

Читай структуру страницы tablespace tablespace. Поскольку длина слота зависит от длины других слотов, то соответственно макс. число экстендов зависит от числа индексов, их структуры, и числа спец. полей.

Более детально см. FAQ - http://www.sql.ru/faq/faq_topic.aspx?fid=924

Обратите Ваше внимание на следующий документ - http://www.iiug.org/library/ids_11/UpgradetoIDS1150.pdf
... сравнение IDS 9.40 и IDS 11.x.

С уважением,
Вадим Головский.
...
Рейтинг: 0 / 0
Можно ли обойти ограничение по количеству экстентов
    #36551824
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilisKyRo
row1 varchar(250),
row2 varchar(250),
row3 varchar(250),
row4 varchar(250),
row5 varchar(250)

С экстентами и максимальным размером разобрались, но меня вот что умиляет - что этот максимальный размер превышен всего при 50 млн.строк (т.е. всего по 3(три) строки на страницу), а всему виной странная, (если не сказать сильнее) структура таблица с varchar. Если уж взяли такой тип данных то на кой резервировать минимальный размер в 250 и, в итоге, 5*250=1250 пустых байт ?
Ведь это не lvarchar и не char, а именно varchar и его максимальный размер только 255. Так какой смысл использовать здесь этот тип данных и резервировать почти максимальный размер ? Что можно сэкономить на этом типе при таких параметрах - 5 байт ? Уже судя по этому можно видеть квалификацию проектировщика БД и архитектора системы....
Если проанализировать прикладные данные и увидеть, _например_, что row1-5 в среднем заполнены только на четверть, то при более правильном указании (хотя бы varchar(50) ) на страницу в среднем будет помещаться уже в 5 раз больше строк, а значит скорость чтения данных с диска будет выше и общее кол-во операций вв/выв будет на порядок меньше. Я уж не говорю об экономии дискового пространства и возникшей проблемы с фрагментированием.

По дефолту, то есть когда второй параметр опущен, резервируется 0 байт :

Specifying the minimum reserved space (r) parameter is optional. This value can range from 0 to 255 bytes but must be less than the maximum size (m) of the VARCHAR column. If you do not specify any minimum value, it defaults to 0.

Так что varchar(250) эквивалентно varchar(250, 0), а не varchar(250, 250).
...
Рейтинг: 0 / 0
Можно ли обойти ограничение по количеству экстентов
    #36553197
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЧемберленЯ, конечно, извиняюсь,
Да чего там извиняться, это мне надо извинится перед ТС и сообществом.
Тормознул, не посмотрел в синтаксис, сбило то, что на странице всего по 3 строки в среднем (значит эти поля таки заполняются).
Чемберлен
Вобщем, суть предыдущего сообщения от меня ускользает почему-то...
А если бы было написано
row1 varchar(255,250),
row2 varchar(255,250),
row3 varchar(255,250),
row4 varchar(255,250),
row5 varchar(255,250)
тогда смысл написанного мною был бы понятен ?
Если нет - снова извинюсь :)
...
Рейтинг: 0 / 0
Можно ли обойти ограничение по количеству экстентов
    #36553208
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВыбегаллоТак что varchar(250) эквивалентно varchar(250, 0), а не varchar(250, 250).
Да, спасибо, уже разобрался и, испытывая чувство стыда, ухожу работать...
...
Рейтинг: 0 / 0
Можно ли обойти ограничение по количеству экстентов
    #36555788
KyRo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответы . Значит будем фрагментировать.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Можно ли обойти ограничение по количеству экстентов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]