powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / Informix [игнор отключен] [закрыт для гостей] / Свободное место в TBLSPACE TBLSPACE
14 сообщений из 14, страница 1 из 1
Свободное место в TBLSPACE TBLSPACE
    #39754251
Здраствуйте товарищи !

Что-то не могу найти как определить остаток места TBLSPACE TBLSPACE

oncheck -pt/-pT - выделение экстентов показвает, размер одной строки показывает, всё показывает как для обычной таблицы, но занято строк - 0

oncheck -p/-P - пусто

И как жить ?
...
Рейтинг: 0 / 0
Свободное место в TBLSPACE TBLSPACE
    #39754627
Igor Zaiets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яковлев Павел,

А в чем проблема?
Внутрення структура, при необходимости расширяется.
...
Рейтинг: 0 / 0
Свободное место в TBLSPACE TBLSPACE
    #39754755
Ага, расширяется. Только у неё есть лимит по количеству страниц 1048575 и по количеству записей 2^20.

Вот в этом проблема

Код: sql
1.
01/01/01 01:01:01  partition 'xxx:informix.TBLSpace': no more pages



А когда TBLSPACE TBLSPACE заполнено, то в dbspace больше ни одной таблицы не создать, ни индекса, ни фрагментацию таблицы/индекса поменять.

Ни чего не сделать что требует создания нового tblspace.

Сколько бы при этом не было свободного места в dbspace

И хочется заранее знать как близок зверёк. А не по факту.
...
Рейтинг: 0 / 0
Свободное место в TBLSPACE TBLSPACE
    #39754822
Igor Zaiets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яковлев ПавелАга, расширяется. Только у неё есть лимит по количеству страниц 1048575 и по количеству записей 2^20.

Вот в этом проблема

Код: sql
1.
01/01/01 01:01:01  partition 'xxx:informix.TBLSpace': no more pages



Однако, затейники у вас разаработчики.

И хочется заранее знать как близок зверёк. А не по факту.

Дак тоже как бы не проблема.
Чекаете дбспейс и считаете страницы.

либо:
select
t.dbsname
,t.tabname
,h.nptotal
,h.npused
,h.nrows
from
sysmaster:systabnames t
, sysmaster:sysptnhdr h
where
t.tabname= 'TBLSpace'
and t.partnum = h.partnum
...
Рейтинг: 0 / 0
Свободное место в TBLSPACE TBLSPACE
    #39755071
Ответ на вопрос "сколько выделено страниц" мне известен - написал же в начале, что "oncheck -pt/-pT - выделение экстентов показвает, размер одной строки показывает, всё показывает как для обычной таблицы, но занято строк - 0".

Да и dbspace сразу заранее создаёт с максимально возможным размером TBLSPACE TBLSPACE.

И до 2^20 дело явно не доходит.

А зверёк приходит из-за того, что не создать запись про новый tblspace - места под новую запись нет и экстент новый не приделать.

И вот это-то выпытать и не получается - сколько записей уже есть в TBLSPACE TBLSPACE.
...
Рейтинг: 0 / 0
Свободное место в TBLSPACE TBLSPACE
    #39755584
vvt1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яковлев Павел. . .
"oncheck -pt/-pT - выделение экстентов показвает . . .
. . .
И вот это-то выпытать и не получается - сколько записей уже есть в TBLSPACE TBLSPACE.


Я правильно Вас понял, что вы хотите предсказать число экстентов таблицы, дабы отследить когда её лимитами удушит?
Может об этом запросе речь?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
select {+ ordered, index(a, syspaghdridx) } -- necessary
        c.dbsname,                    -- the database
        c.tabname,                    -- the table or index
        b.name,                       -- the dbspace
        c.partnum,                    -- necesary to get the count and sum right
        trunc(a.pg_frcnt / 8) frext,  -- extents left in the fragment until ceiling
        count(*) num_of_extents,      -- num of extents allocated in this fragment
        sum( pe_size ) total_size     -- total size of the extents in the fragment
from   sysmaster:sysdbspaces b,
        sysmaster:syspaghdr a,
        sysmaster:systabnames c,
        sysmaster:sysptnext d
where  a.pg_partnum = sysmaster:partaddr(b.dbsnum, 1)
and    sysmaster:bitval(a.pg_flags, 2) = 1
and    a.pg_nslots = 5
and    c.partnum = sysmaster:partaddr(b.dbsnum, a.pg_pagenum)
and    c.partnum = d.pe_partnum
--and    c.dbsname = "your_database"    -- use these 2 in case you want to
--and    c.tabname = "your_table"       -- filter them, but would not recommend
group by 1,2,3,4,5
order by 4;



dbaccess sysmaster extents.sql > extents.log
и анализируете вывод по параметру frext , который показывает сколько там ещё экстентов осталось таблице до заморозки.
...
Рейтинг: 0 / 0
Свободное место в TBLSPACE TBLSPACE
    #39755597
vvt1Я правильно Вас понял, что вы хотите предсказать число экстентов таблицы, дабы отследить когда её лимитами удушит?
Может об этом запросе речь?


Спасибо, НЕТ.

Ещё раз - сколько в TBLSPACE TBLSPACE экстентов прекрасно показывает oncheck. (И ваш запрос тоже, я его знаю).

Ни откуда не достать сколько записей занято, а сколько свободно.
...
Рейтинг: 0 / 0
Свободное место в TBLSPACE TBLSPACE
    #39755884
vvt1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яковлев Павел,

посмотрите ещё раз этот запрос.
В нем есть TBLSPACE, представляемый как имя БД и TBLSPACE представляемое как имя таблицы.
frext - показывающий сколько ещё экстентов осталось до предела.

В принципе, возможно я не совсем понимаю, что Вы конкретно хотите увидеть.
...
Рейтинг: 0 / 0
Свободное место в TBLSPACE TBLSPACE
    #39756259
vvt1Яковлев Павел,

посмотрите ещё раз этот запрос.
В нем есть TBLSPACE, представляемый как имя БД и TBLSPACE представляемое как имя таблицы.
frext - показывающий сколько ещё экстентов осталось до предела.

В принципе, возможно я не совсем понимаю, что Вы конкретно хотите увидеть.

Блин, ну я просто не знаю как ещё раз - уже в третий раз - написать что бы доходчиво было - количество экстентов прекрасно видно и в oncheck и в вашем запросе, но дело не в экстентах .

Дело в том, что не определить когда будут заняты все записи в выделенном под TBLSPACE TBLSPACE пространстве (да к этому моменту все возможные экстенты будут выделены. и фиг с ними).
...
Рейтинг: 0 / 0
Свободное место в TBLSPACE TBLSPACE
    #39756320
vvt1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яковлев Павел,

Могли бы Вы привести пример, для ясности, что видите, что хотите увидеть? Не абстрактно.

Дело в том, что, как я помню по курсам ещё IDS 7.31 в каждом DBSPACE есть структура, табличная, TBLspace TBLspace которая содержит в себе информацию о таблицах, индексах. Из этой структуры TBLspace TBLspace берет информацию о таблицах и индексах через запросы onstat -pt ; onstat -pT .

Саму структуру TBLspace TBLspace, по-моему, нельзя прочитать через прямой SQL-запрос.

Вообще, если память мне не изменяет, информацию о TBLspace TBLspace показывает только oncheck -pe . Но там при активном пользовании DBSPACE считать много приходится, например:
Код: 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.
DBspace Usage Report: maindbs_15          Owner: informix  Created: 06/12/2015


 Chunk Pathname                             Pagesize(k)  Size(p)  Used(p)  Free(p)
   112 /opt/informix/lnk/chunk_maindbs_15             4  8388608     4803  8383805

 Description                                                   Offset(p)  Size(p)
 ------------------------------------------------------------- -------- --------
 RESERVED PAGES                                                       0        2
 CHUNK FREELIST PAGE                                                  2        1
 maindbs_15:'informix'.TBLSpace                                       3       50
 FREE                                                                53      252
 maindbs_15:'informix'.TBLSpace                                     305       50
 FREE                                                               355      832
 maindbs_15:'informix'.TBLSpace                                    1187      100
 FREE                                                              1287    19211
 maindbs_15:'informix'.TBLSpace                                   20498      200
 FREE                                                             20698  1080260
 maindbs_15:'informix'.TBLSpace                                 1100958      200
 FREE                                                           1101158      814
 maindbs_15:'informix'.TBLSpace                                 1101972      200
 FREE                                                           1102172      672
 maindbs_15:'informix'.TBLSpace                                 1102844      200

. . . (и так далее)


--------------------

Однако, может такой вывод информации Вас устроит, он показывает как бы размер TBLSpace:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Это rootdbs (урезан вывод, т.к. не представляет интерес вся информация в нем):
----------+------------------+--------------------+----------+---+------
  DBSpace |    Data Base     |     Table name     | Size Kb  |Ext|PgSize
----------+------------------+--------------------+----------+---+------
   rootdbs|rootdbs           |TBLSpace            |      1200|  4| 2048
   rootdbs|sysadmin          |mon_users           |     16328| 16| 2048
   rootdbs|sysadmin          |command_history     |     10240| 23| 2048
   rootdbs|sysadmin          |mon_chunk           |     10048| 24| 2048
   rootdbs|sysadmin          |mon_page_usage      |      6656| 21| 2048
. . .

Это пустое пространство, без таблиц ещё
----------+------------------+--------------------+----------+---+------
  DBSpace |    Data Base     |     Table name     | Size Kb  |Ext|PgSize
----------+------------------+--------------------+----------+---+------
maindbs_15|maindbs_15        |TBLSpace            |     19200| 20| 4096
----------+------------------+--------------------+----------+---+------

Эти данные я беру следующим запросом, у меня он обернут через Perl для парсинга:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SELECT dbinfo("DBSPACE", t1.pe_partnum) db_space, 
       t3.pagesize pagesize, 
       t2.dbsname db_name, 
       t2.tabname tab_name, 
       round(SUM(t1.pe_size) * t3.pagesize/1024,0) tab_size_kb, 
       COUNT(t1.pe_size) tab_extents 
 
FROM   sysmaster:sysptnext t1, 
       OUTER sysmaster:systabnames t2, 
       OUTER sysmaster:sysptnhdr t3 
 
WHERE  t1.pe_partnum = t2.partnum 
       AND t1.pe_partnum = t3.partnum 
       AND dbinfo("DBSPACE", t1.pe_partnum) = "$DBSpaceName" 
 
GROUP BY 1,2,3,4     
ORDER BY 3,5 DESC,4; 
...
Рейтинг: 0 / 0
Свободное место в TBLSPACE TBLSPACE
    #39756322
vvt1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно не onstat -pt; onstat -pT .
А oncheck -pt ; oncheck -pT .
...
Рейтинг: 0 / 0
Свободное место в TBLSPACE TBLSPACE
    #39756419
В каком виде я хочу это видеть ?

В очень простом - хотя бы сколько строк уже использовано в TBLSPACE TBLSPACE и тогда, основываясь на Maximum row size, можно уже фантазировать сколько ещё доступно.

НО , oncheck -pt/-pT именно этого и не показывает. Всё прочее - показывает, а это - Number of rows - нет.

Код: sql
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.
31.
32.
33.
>oncheck -pT 0x100001

TBLspace Report for Unknown:Unknown.100001

ISAM error:  no record found.

    Physical Address               1:14
    TBLspace Flags                 2801       Page Locking
                                              TBLspace use 4 bit bit-maps
                                              Permanent System TBLspace

    Maximum row size                   104
    Number of special columns          0
    Number of keys                            0
    Number of extents                     16
    Current serial value                      1
    Current SERIAL8 value                 1
    Current BIGSERIAL value              1
    Current REFID value                     1
    Pagesize (k)                                   2
    First extent size                          250
    Next extent size                         200
    Number of pages allocated      1350
    Number of pages used             1255
    Number of data pages                   0 
    Number of rows                             0  <---------- вот тут всегда 0 для TBLSPACE TBLSPACE
    Partition partnum               1048577
    Partition lockid                   1048577

    Extents
         Logical Page     Physical Page        Size Physical Pages
                    0              1:13         250        250
          ............... ну и далее список экстентов




А попытки считать через onstat -T количество таблиц и индексов в dbspace разумного числа не дают - сииильно меньше получается.
...
Рейтинг: 0 / 0
Свободное место в TBLSPACE TBLSPACE
    #39756672
Igor Zaiets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яковлев ПавелВ каком виде я хочу это видеть ?

А попытки считать через onstat -T количество таблиц и индексов в dbspace разумного числа не дают - сииильно меньше получается.

В моем случае (onstat -T) цифры более-менее ровные, разница (count(*) sysptnhdr и onstat -T | grep total) через временные таблицы.

Если не верите onstat - смотрите например по sysptnhdr
select dbinfo('dbspace',partnum),count(*) from sysptnhdr group by 1
...
Рейтинг: 0 / 0
Свободное место в TBLSPACE TBLSPACE
    #39756882
Igor ZaietsВ моем случае (onstat -T) цифры более-менее ровные, разница (count(*) sysptnhdr и onstat -T | grep total) через временные таблицы.

Если не верите onstat - смотрите например по sysptnhdr
select dbinfo('dbspace',partnum),count(*) from sysptnhdr group by 1

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


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