Гость
Map
Форумы / Informix [игнор отключен] [закрыт для гостей] / не получается вставить строку в таблицу.Помогите разобраться плиз / 25 сообщений из 32, страница 1 из 2
13.01.2012, 15:41
    #37613312
LudeV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
Добрый день,

помогите плиз разобраться с легчайшим вопросом,не могу вставить строку в таблицу,вылазит ошибка error -271 could not insert new row into the table.

захожу в описание таблицы:

create table *.* (
...................)
extent size 16777216 next size 16777216
lock mode page;

create index * on *.*
(
....
)
in indxdbs;

эта таблица находится в tablespace archive,в котором я добавил 5чанков по 16Гб,т.е. экстенты выделить себе он может.

место для индекса тоже есть,также добавил чанков.


куда еще можно копнуть?я не понимаю,что случилось-то?помогите плиз
...
Рейтинг: 0 / 0
13.01.2012, 15:56
    #37613356
LudeV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
LudeV,

говорит,что не может выделить новый экстент,но ведь место в табл. пространстве есть и достаточно.
...
Рейтинг: 0 / 0
13.01.2012, 16:08
    #37613393
Тан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
LudeV,

есть ограничение на количество extents в таблице
...
Рейтинг: 0 / 0
13.01.2012, 16:12
    #37613408
aist-psk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
порядка 200
...
Рейтинг: 0 / 0
13.01.2012, 16:43
    #37613511
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
ТанLudeV,
есть ограничение на количество extents в таблице

Можно заранее легко проверить и для других таблиц, чтобы не быть застигнутым внезапной проблемой, которые случаются , обычно, в самый не подходящий момент:

Код: plsql
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.
-----------------------------------------------------------
-- Extents left in the fragment until ceiling
-- сколько еще можно добавить экстентов для фрагмента таблицы или индекса
--  (только 40 с наименьшим количеством для всех БД)
--      IDS 7.31+  9.3+
--
-- V.Shulzhenko  DBA Tools (by Stefan Weideneder, CDI)  2007-04
-----------------------------------------------------------
set isolation to dirty read;
select {+ ordered, index(a, syspaghdridx) } -- necessary
        first 40
         c.dbsname[1,18]        dbname18        -- the database
        ,c.tabname[1,18]        tablespace18    -- the table or index
--        ,b.name[1,18]           dbspace18       -- the dbspace
--        ,c.partnum                              -- necesary to get the count and sum right
        ,trunc(a.pg_frcnt / 8)  free_ext        -- extents left in the fragment until ceiling
        ,' '||substr(round(count(*)),1,3) exts  -- num of extents allocated in this fragment
        ,sum(pe_size)           total_size_pg   -- total size of the extents in the fragment
from   sysdbspaces b,
       syspaghdr a,
       systabnames c,
       sysptnext d
where  a.pg_partnum = partaddr(b.dbsnum, 1)
        and bitval(a.pg_flags, 2) = 1
        and a.pg_nslots = 5
        and c.partnum = partaddr(b.dbsnum, a.pg_pagenum)
        and c.partnum = d.pe_partnum
group by 1,2,3
order by 3,5




Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
----------------------------------------------
-- list top 40 Tablespaces only with Extents 50+ 
--  (number extents and total size pages)
--  from all db
--  (real fragmented tables included)
--
-- V.Shulzhenko  DBA_Tools
----------------------------------------------
set isolation to dirty read;
select first 40
        dbsname[1,18]           db_name
       ,tabname[1,18]           tablespace
       ,count(*)                num_extends
       ,substr(ti_nextsiz,1,7)          next_pg
       ,substr(sum(pe_size),1,8)        size_pg
from systabnames,sysptnext,systabinfo
where partnum = pe_partnum 
      and partnum = ti_partnum
group by 1,2,4
having count(*) > 49
order by 3 desc,1,2
...
Рейтинг: 0 / 0
13.01.2012, 17:06
    #37613558
LudeV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
vasilis,

этой таблице все было выделено 2 экстента по 16Гб,а третий он не может себе выделить
...
Рейтинг: 0 / 0
13.01.2012, 17:09
    #37613562
LudeV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
vasilis,

dbname18 tablespace18 free_ext exts total_size_pg
archive * 223 2 16777215

второй запрос не вернул ничего
...
Рейтинг: 0 / 0
13.01.2012, 20:30
    #37613946
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
Эх, сколько уже раз повторялось...
...отсюда http://www.sql.ru/forum/actualthread.aspx?tid=229806
-------------
2. Помните, что это форум информиксоидов, а не телепатов, поэтому предоставьте максимально точную и полную информацию об ошибке и вашей среде.
3. ОБЯЗАТЕЛЬНО укажите точную версию IDS и используемую платформу.
4. Подробно опишите ситуацию, при которой происходит ошибка.
ОБЯЗАТЕЛЬНО скопируйте сообщение об ошибке, а не пересказывайте его своими словами
-------------
...
Рейтинг: 0 / 0
16.01.2012, 09:29
    #37615739
LudeV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
vasilis,

IBM Informix Dynamic Server Version 11.50.FC6
платформа Red Hat Enterprise Linux Server release 6.1 (Santiago)

ошибка возникает при вставке в таблице любой записи,даже 1 строки,ошибку прикрепил ниже

Помогите плиз
...
Рейтинг: 0 / 0
16.01.2012, 09:34
    #37615744
LudeV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
Во всех табличных пространствах место добавил, еще прикладываю картинку, которую показывает server studio про storage этой таблицы. Он видит,что еще много свободного места,но не выделяет себе экстент,непонятно почему((


IBM Informix Dynamic Server Version 11.50.FC6 -- On-Line -- Up 192 days 18:16:11 -- 15987492 Kbytes

Dbspaces
address number flags fchunk nchunks pgsize flags owner name
395a13028 1 0x40001 1 1 2048 N B informix rootdbs
397cc2da8 2 0x42001 2 1 2048 N TB informix tempdbs1
397cc3028 3 0x42001 3 1 2048 N TB informix tempdbs2
397cc31c0 4 0x42001 4 1 2048 N TB informix tempdbs3
397cc3358 5 0x40001 5 16 2048 N B informix archive
397cc34f0 6 0x40001 16 4 2048 N B informix logdbs
397cc3688 7 0x40001 19 3 2048 N B informix indxdbs
7 active, 2047 maximum

Chunks
address chunk/dbs offset size free bpages flags pathname
395a131c0 1 1 0 1000000 966085 PO-B- /usr/informix/data/rootdbs
397cc3820 2 2 0 4194736 4194683 PO-B- /usr/informix/data/tempdbs1
397cc3a10 3 3 0 4194736 4194683 PO-B- /usr/informix/data/tempdbs2
397cc3c00 4 4 0 4194736 4194683 PO-B- /usr/informix/data/tempdbs3
397cc3df0 5 5 0 8389040 785273 PO-B- /usr/informix/data/archive/archive.000
397cc7028 6 5 0 8389040 429 PO-B- /usr/informix/data/archive/archive.001
397cc7218 7 5 0 8389040 429 PO-B- /usr/informix/data/archive/archive.002
397cc7408 8 5 0 8389040 429 PO-B- /usr/informix/data/archive/archive.003
397cc75f8 9 5 0 8389040 429 PO-B- /usr/informix/data/archive/archive.004
397cc77e8 10 5 0 8389040 429 PO-B- /usr/informix/data/archive/archive.005
397cc79d8 11 5 0 8389040 429 PO-B- /usr/informix/data/archive/archive.006
397cc7bc8 12 5 0 8389040 429 PO-B- /usr/informix/data/archive/archive.007
397cc7db8 13 5 0 8389040 430 PO-B- /usr/informix/data/archive/archive.008
397cc9028 14 5 0 8389040 430 PO-B- /usr/informix/data/archive/archive.009
397cc9218 15 5 0 8389040 430 PO-B- /usr/informix/data/archive/archive.010
397cc9408 16 6 0 8389040 379 PO-B- /usr/informix/data/logdbs/logdbs.000
397cc95f8 17 6 0 8389040 429 PO-B- /usr/informix/data/logdbs/logdbs.001
397cc97e8 18 6 0 8389040 429 PO-B- /usr/informix/data/logdbs/logdbs.002
397cc99d8 19 7 0 8389040 18220 PO-B- /usr/informix/data/indxdbs/indxdbs.000
397cc9bc8 20 7 0 8389040 5261197 PO-B- /usr/informix/data/indxdbs/indxdbs.001
397cc9db8 21 7 0 8389040 8389037 PO-B- /usr/informix/data/indxdbs/indxdbs.002
397ccc028 22 5 0 8389040 8389037 PO-B- /usr/informix/data/archive/archive.011
399a5aab8 23 6 0 8389040 8389037 PO-B- /usr/informix/data/logdbs/logdbs.003
39a5696f8 24 5 0 8389040 8389037 PO-B- /usr/informix/data/archive/archive.012
39a692d10 25 5 0 8389040 8389037 PO-B- /usr/informix/data/archive/archive.013
39a527ce8 26 5 0 8389040 8389037 PO-B- /usr/informix/data/archive/archive.014
399bb8028 27 5 0 8389040 8389037 PO-B- /usr/informix/data/archive/archive.015
...
Рейтинг: 0 / 0
16.01.2012, 09:54
    #37615765
Тан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
LudeV,

ISAM error: no more extents.
The database server needs to add an extent to a table but cannot do so. Either not enough disk space is available in the dbspace, or the table has been given the maximum number of extents that is allowed, or the maximum number of pages has been reached.

Раз экстентов 2, значит уперлись в страницы.
...
Рейтинг: 0 / 0
16.01.2012, 10:33
    #37615796
DrGonzo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
ТанLudeV,

Раз экстентов 2, значит уперлись в страницы.

Именно так .

Проблему можно решить фрагментировав таблицу.
...
Рейтинг: 0 / 0
16.01.2012, 10:46
    #37615809
яфшуеі
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
Как заметила Тан, вы уперлись в ограничение на количество страниц таблицы/партиции в одном пространстве.
Ограничение на количество страниц - 16 775 134

Если вы недобрали до этого количества - измените некст сайз и возможно немного добавится.
Но выход очевиден:
или фрагментирование таблицы (ограничение относится к partition - т.е. partition м.б. в одном пространстве)
или перенос данных в пространство с большим размером страниц.

У вас, насколько я понимаю, это архивные данные.
Как 1 из вариантов, чтобы не останавливать работу, можно поступить так:
1. переименовать старую таблицу
2. создать новую таблицу с нужной схемой хранения
3. в новую таблицу вставлять новые данные
4. в "фоновом" режиме подливать данные со старой таблицы
5. после переноса удалить старую таблицу.

Если возможен останов, то все эти действия можно выполнить в нетранзакционном состоянии - будет чуток быстрее. правда нужно делать потом архив.

Воможны и другие варианты, но там меняется только техника выполнения.
Да, и с индексами после переноса данных нужно поступить соответственно.
...
Рейтинг: 0 / 0
16.01.2012, 12:31
    #37616004
LudeV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
яфшуеі,

ведь ничего же страшного не произойдет,если я с таблицы с размером страниц 2Кб буду перекидывать данные в таблицу с размером страниц 16Кб?

это всего лишь размер страниц для хранения данных или я ошибаюсь и так нельзя?


спасибо большое за помощь всем
...
Рейтинг: 0 / 0
16.01.2012, 12:52
    #37616046
klepa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
LudeVяфшуеі,

ведь ничего же страшного не произойдет,если я с таблицы с размером страниц 2Кб буду перекидывать данные в таблицу с размером страниц 16Кб?



Можете. В 8 раз больше строк поместится. (В идеале).
...
Рейтинг: 0 / 0
16.01.2012, 12:53
    #37616049
LudeV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
klepa,

спасибо большое!


а подскажите, пожалуйста, как переименовать таблицу?в доке не нашел,искал вот тут и не нашел

http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.sqls.doc/sqls107.htm
...
Рейтинг: 0 / 0
16.01.2012, 13:11
    #37616091
LudeV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
LudeV,

нашел,спасибо.

вопрос закрыт
...
Рейтинг: 0 / 0
18.01.2012, 12:14
    #37619644
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
LudeV,

Если будете использовать dbspace с размером страниц не по умолчанию, надо будет сконфигурировать для таких страниц отдельный буферный пул.
...
Рейтинг: 0 / 0
18.01.2012, 12:49
    #37619753
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
AndronЕсли будете использовать dbspace с размером страниц не по умолчанию, надо будет сконфигурировать для таких страниц отдельный буферный пул.
Даже для архивной таблицы, используемой только для единичной записи каждой страницы ?
...
Рейтинг: 0 / 0
18.01.2012, 13:46
    #37619925
klepa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
ИМХО он сам создастся отсюда:

Код: sql
1.
BUFFERPOOL      default,buffers=1000000,lrus=8,lru_min_dirty=50.000000,lru_max_dirty=60.500000


Не факт, что он будет оптимален, но поправить всегда можно.
...
Рейтинг: 0 / 0
18.01.2012, 15:01
    #37620201
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
klepaИМХО он сам создастся отсюда:

Код: sql
1.
BUFFERPOOL      default,buffers=1000000,lrus=8,lru_min_dirty=50.000000,lru_max_dirty=60.500000



Поясните, пожалуйста.
И сколько , по вашему, default ?
...
Рейтинг: 0 / 0
18.01.2012, 15:32
    #37620301
klepa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
Код: sql
1.
2.
3.
4.
5.
BUFFERPOOL default,buffers=10000,lrus=8,lru_min_dirty=50.00,lru_max_dirty=60.50
BUFFERPOOL size=2k,buffers=50000,lrus=8,lru_min_dirty=50,lru_max_dirty=60
The top line specifies the default values that are used if you create a dbspace with
a page size which does not already have a corresponding buffer pool created at
start up.


Скока скажете. Тут 10 тыщ страниц.
...
Рейтинг: 0 / 0
18.01.2012, 16:54
    #37620563
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
vasilis,

Для любой таблицы с размером страницы отличным от размера страницы по умолчанию
...
Рейтинг: 0 / 0
18.01.2012, 16:56
    #37620570
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
При этом размер страницы по умолчанию определен для каждой платформы: AIX и Windows 4K, Linux 2K
...
Рейтинг: 0 / 0
18.01.2012, 16:58
    #37620573
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не получается вставить строку в таблицу.Помогите разобраться плиз
Andronvasilis,

Для любой таблицы dbspace с размером страницы отличным от размера страницы по умолчанию

Т.е. для dbspace с размером страницы отличным от размера страницы по умолчанию надо сконфигурировать соотв. буферный пул с таким же размером страницы.
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / не получается вставить строку в таблицу.Помогите разобраться плиз / 25 сообщений из 32, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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