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

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

Пока экстентов меньше сотен это не должно быть проблемой
...
Рейтинг: 0 / 0
15.10.2007, 17:32
    #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
15.10.2007, 18:26
    #34870005
KyRo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы с большим количеством экстентов
Спасибо . Так намного легче , чем просматривать по одной таблице.
ps. Второй вариант как то по понятнее.
...
Рейтинг: 0 / 0
15.10.2007, 19:30
    #34870146
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы с большим количеством экстентов
Журавлев ДенисПока экстентов меньше сотен это не должно быть проблемой
Эээ
Вроде нижняя граница по формуле была 50-52. Нужно доку смотреть...
...
Рейтинг: 0 / 0
15.10.2007, 20:15
    #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
15.10.2007, 20:28
    #34870223
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы с большим количеством экстентов
АнатоЛой Журавлев ДенисПока экстентов меньше сотен это не должно быть проблемой
Эээ
Вроде нижняя граница по формуле была 50-52. Нужно доку смотреть...
Это была рекомендация, т.е. то же, что и Денис говорит, но количеством в 50.
Для многих пользователей (админов) даже 200 "не является проблемой", т.к. они о ней не знают и спят спокойно :)
И когда, в конце концов, получают 136-ю ошибку, то жутко удивляются.
Избежать очень просто:
- при проектировании и, затем, создании таблицы заложить правильный размер экстента
- перезагрузить базу целиком (dbexport - dbimport). Если не указывать -ss утилиты сами сделают нужные размеры экстентов
- изменить nextsize и перезаписать таблицу (сделать alter fragment...)
- периодически (хотя бы раз в 3-4 месяца) мониторить количество экстентов и упреждать ошибку
...
Рейтинг: 0 / 0
19.10.2007, 13:36
    #34880855
cpr
cpr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы с большим количеством экстентов
vasilis АнатоЛой Журавлев ДенисПока экстентов меньше сотен это не должно быть проблемой
Эээ
Вроде нижняя граница по формуле была 50-52. Нужно доку смотреть...
Это была рекомендация, т.е. то же, что и Денис говорит, но количеством в 50.
Для многих пользователей (админов) даже 200 "не является проблемой", т.к. они о ней не знают и спят спокойно :)
И когда, в конце концов, получают 136-ю ошибку, то жутко удивляются.
Избежать очень просто:
- при проектировании и, затем, создании таблицы заложить правильный размер экстента
- перезагрузить базу целиком (dbexport - dbimport). Если не указывать -ss утилиты сами сделают нужные размеры экстентов
- изменить nextsize и перезаписать таблицу (сделать alter fragment...)
- периодически (хотя бы раз в 3-4 месяца) мониторить количество экстентов и упреждать ошибку

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

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

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

Обленился, лень смотреть структуру страницы tablespace tablespace стало...старею, видать
...
Рейтинг: 0 / 0
21.10.2007, 13:16
    #34883038
Igor Zaiets
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы с большим количеством экстентов
По поводу 50-52.(pagesize 2k)
Есть такая бяка и связаная с описанными выше параметрами + с совместным хранением индексов и данных (7.хх), все это описано в faq.
Тоже, мониторил где больше 100, а одна таблица вылезла на 67.
Начали разбираться,а оказалось что индексы и данные хранятся вместе - последствия миграции на 9.21 + переменная DEFAULT_ATTACH.
Если хранятся вместе - не спешите алтерить всю таблицу, достаточно вынести часть индексов.
Кстати, у меня почему-то посчитать с точностью 100% кол-во экстентов не получилось - все время получалось меньше, чем оказывалось реально, хотя в этом и есть некий плюс.
...
Рейтинг: 0 / 0
23.10.2007, 16:10
    #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
23.10.2007, 16:30
    #34888572
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы с большим количеством экстентов
bdvГлавная проблема не 136 ошибка, а понижение производительности, чем меньше экстентов - тем лучше (идеальный вариант - 1)
скорость сексканов никого не интересует.
...
Рейтинг: 0 / 0
23.10.2007, 21:04
    #34889369
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы с большим количеством экстентов
Журавлев Денис[quot bdv]Главная проблема не 136 ошибка, а понижение производительности, чем меньше экстентов - тем лучше (идеальный вариант - 1)
Проблема производительности значительно меньше, чем появление ошибки - в первом случае система все таки работает, а вот во втором - останавливается.
Журавлев Денисскорость сексканов никого не интересует.
Иногда интересует тех, у кого они есть, да еще и в больших количествах :)
...
Рейтинг: 0 / 0
23.10.2007, 23:23
    #34889524
GVF112GVF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы с большим количеством экстентов
Народ,
по всей видимости в новой версии Cheetah2 .. появиться онлайновая реорганизация таблиц
(на подобие как в DB2 и т.д.).

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

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

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

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


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