powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Таблицы с большим количеством экстентов
20 сообщений из 20, страница 1 из 1
Таблицы с большим количеством экстентов
    #34869693
KyRo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите можно ли запросом из системных таблиц получить список таблиц базы данных с большим количеством экстентов (больше 5 -и) ? Если можно подскажите из какой таблицы и в каких полях смотреть инофо ?

Знаю что можно oncheck -pt primus:table_name
таким образом . Но у меня очень много таблиц и это займет много времени
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34869725
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.sql.ru/faq/faq_topic.aspx?fid=924

Пока экстентов меньше сотен это не должно быть проблемой
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34869821
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT dbsname[ 1 ,  18 ] AS database,
       tabname[ 1 ,  64 ] AS table,
       COUNT(*) AS Extents_Count,
       ROUND(AVG(size),  2 ) AS AvgSize
  FROM sysmaster:sysextents
  GROUP BY  1 ,  2 
  HAVING COUNT(*) >  5 
  ORDER BY  3  DESC,  1 ,  2 ;
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34870005
KyRo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо . Так намного легче , чем просматривать по одной таблице.
ps. Второй вариант как то по понятнее.
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34870146
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев ДенисПока экстентов меньше сотен это не должно быть проблемой
Эээ
Вроде нижняя граница по формуле была 50-52. Нужно доку смотреть...
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34870212
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KyRoПодскажите можно ли запросом из системных таблиц получить список таблиц базы данных с большим количеством экстентов (больше 5 -и) ?
Для одной БД и для всех tablespaces в ней:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
----------------------------------------------
-- The number of extents allocated
--  in each of the tables in current (open) db
--  (include system tables and real fragmented tables)
--  sorted by number extents
--
-- V.Shulzhenko     DBA_Tools
----------------------------------------------
select  tabname[ 1 , 18 ]   tablespace
        ,count(*)       extents
        ,round(sum(size*v.sh_pagesize/ 1024 )) size_kb
        ,round(sum(size)) size_pg
from sysmaster:sysextents,sysmaster:sysshmvals v
where dbsname=
        (select odb_dbname from sysmaster:sysopendb
         where odb_sessionid=dbinfo('sessionid') and odb_iscurrent='Y')
group by  1 
having count(*) >  5 
order by  2  desc,  3  desc, 1 

Для всех баз данных (включая 'sysmaster') с размером добавляемого эксттента и общим размером.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
----------------------------------------------
-- PROBLEM ISSUE
--  List all big 'segmented' tables
-- (number extents and total size pages)
--  from all db
--  (50 and more extents) (real fragmented tables included)
--
-- V.Shulzhenko  DBA_Tools
----------------------------------------------
set isolation to dirty read;
select 
        dbsname[ 1 , 18 ]           db_name
       ,tabname[ 1 , 18 ]           tablespace
       ,count(*)                num_extends
--       ,' '||substr(ti_fextsiz,1,6)     first
       ,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
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34870223
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой Журавлев ДенисПока экстентов меньше сотен это не должно быть проблемой
Эээ
Вроде нижняя граница по формуле была 50-52. Нужно доку смотреть...
Это была рекомендация, т.е. то же, что и Денис говорит, но количеством в 50.
Для многих пользователей (админов) даже 200 "не является проблемой", т.к. они о ней не знают и спят спокойно :)
И когда, в конце концов, получают 136-ю ошибку, то жутко удивляются.
Избежать очень просто:
- при проектировании и, затем, создании таблицы заложить правильный размер экстента
- перезагрузить базу целиком (dbexport - dbimport). Если не указывать -ss утилиты сами сделают нужные размеры экстентов
- изменить nextsize и перезаписать таблицу (сделать alter fragment...)
- периодически (хотя бы раз в 3-4 месяца) мониторить количество экстентов и упреждать ошибку
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34880855
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
vasilis АнатоЛой Журавлев ДенисПока экстентов меньше сотен это не должно быть проблемой
Эээ
Вроде нижняя граница по формуле была 50-52. Нужно доку смотреть...
Это была рекомендация, т.е. то же, что и Денис говорит, но количеством в 50.
Для многих пользователей (админов) даже 200 "не является проблемой", т.к. они о ней не знают и спят спокойно :)
И когда, в конце концов, получают 136-ю ошибку, то жутко удивляются.
Избежать очень просто:
- при проектировании и, затем, создании таблицы заложить правильный размер экстента
- перезагрузить базу целиком (dbexport - dbimport). Если не указывать -ss утилиты сами сделают нужные размеры экстентов
- изменить nextsize и перезаписать таблицу (сделать alter fragment...)
- периодически (хотя бы раз в 3-4 месяца) мониторить количество экстентов и упреждать ошибку

По поводу раз в 4 месяца - это сильно зависит от специфики и количества экземпляров.
У нас ежедневно репорты собираются с алертом на 185 экстентов.
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34881850
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой Журавлев ДенисПока экстентов меньше сотен это не должно быть проблемой
Эээ
Вроде нижняя граница по формуле была 50-52. Нужно доку смотреть...

Зависит от а) размера страницы (4K на Win/AIX, 2K на остальных) и б) наличия "спецколонок" (BLOB и какие-то еще) в таблице. При 4K странице вполне влезет >150 экстентов.
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34882065
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВыбегаллоПри 4K странице вполне влезет >150 экстентов.
При 4К странице на Windows вполне влезет и >400 экстентов, а при простой структуре и >480.
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34882933
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilis ВыбегаллоПри 4K странице вполне влезет >150 экстентов.
При 4К странице на Windows вполне влезет и >400 экстентов, а при простой структуре и >480.

Ну это же больше 150ти экстендов, верно ? :-)

Обленился, лень смотреть структуру страницы tablespace tablespace стало...старею, видать
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34883038
Igor Zaiets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По поводу 50-52.(pagesize 2k)
Есть такая бяка и связаная с описанными выше параметрами + с совместным хранением индексов и данных (7.хх), все это описано в faq.
Тоже, мониторил где больше 100, а одна таблица вылезла на 67.
Начали разбираться,а оказалось что индексы и данные хранятся вместе - последствия миграции на 9.21 + переменная DEFAULT_ATTACH.
Если хранятся вместе - не спешите алтерить всю таблицу, достаточно вынести часть индексов.
Кстати, у меня почему-то посчитать с точностью 100% кол-во экстентов не получилось - все время получалось меньше, чем оказывалось реально, хотя в этом и есть некий плюс.
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34888508
bdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bdv
Гость
vasilis АнатоЛой Журавлев ДенисПока экстентов меньше сотен это не должно быть проблемой
Эээ
Вроде нижняя граница по формуле была 50-52. Нужно доку смотреть...
Это была рекомендация, т.е. то же, что и Денис говорит, но количеством в 50.
Для многих пользователей (админов) даже 200 "не является проблемой", т.к. они о ней не знают и спят спокойно :)
И когда, в конце концов, получают 136-ю ошибку, то жутко удивляются.


Главная проблема не 136 ошибка, а понижение производительности, чем меньше экстентов - тем лучше (идеальный вариант - 1)

* If a table has more than one extent, there is no guarantee that those extents are contiguous; extents may be scattered throughout the dbspace where the table resides. Contiguity of physical disk pages is important to performance. When pages of data are contiguous, the time used to access data on disk is minimized and the database can read rows sequentially. If tables have too many extents, it is very likely that those extents are interleaved. This harms performance a great deal, because when you retrieve data for a certain table, the disk head needs to seek multiple, noncontiguous extents belonging to this table instead of one large extent with contiguous physical pages. This slows down disk-seeking speed rather significantly.
* Another reason is to avoid an automatic allocation of extents for tables, which is a very expensive operation and will use a lot of system resources, such as CPU and memory.

To implement the Informix documentation recommendations, you need to specify extent size when you create tables so that the Informix server won't use the default extent size, which is 16 KB. The EXTENT SIZE and NEXT SIZE clause in the CREATE TABLE statement allows you to specify the first and second extent size that the Informix server will allocate for every table created.

http://www.ibm.com/developerworks/db2/library/techarticle/dm-0501fan/
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34888572
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bdvГлавная проблема не 136 ошибка, а понижение производительности, чем меньше экстентов - тем лучше (идеальный вариант - 1)
скорость сексканов никого не интересует.
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34889369
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис[quot bdv]Главная проблема не 136 ошибка, а понижение производительности, чем меньше экстентов - тем лучше (идеальный вариант - 1)
Проблема производительности значительно меньше, чем появление ошибки - в первом случае система все таки работает, а вот во втором - останавливается.
Журавлев Денисскорость сексканов никого не интересует.
Иногда интересует тех, у кого они есть, да еще и в больших количествах :)
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34889524
GVF112GVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ,
по всей видимости в новой версии Cheetah2 .. появиться онлайновая реорганизация таблиц
(на подобие как в DB2 и т.д.).

С уважением,
Вадим.
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34890148
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если фрагментировать таблицу то максимальное число возможных экстентов в ней будет в n раз больше ??? чем в такой же нефрагментированной. В 10 версии все фрагменты можно класть в один dbspace.
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34890158
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к пред.посту: n это число фрагментов
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34894687
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
AndronЕсли фрагментировать таблицу то максимальное число возможных экстентов в ней будет в n раз больше ??? чем в такой же нефрагментированной. В 10 версии все фрагменты можно класть в один dbspace.

Разве цель увеличения фрагментов имеет смысл?
А вот цель увеличения возможного количества страниц точно имеет смысл.
...
Рейтинг: 0 / 0
Таблицы с большим количеством экстентов
    #34894693
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
cpr AndronЕсли фрагментировать таблицу то максимальное число возможных экстентов в ней будет в n раз больше ??? чем в такой же нефрагментированной. В 10 версии все фрагменты можно класть в один dbspace.

Разве цель увеличения фрагментов имеет смысл?
А вот цель увеличения возможного количества страниц точно имеет смысл.

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


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