powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / Informix [игнор отключен] [закрыт для гостей] / Вопрос про фрагментирование таблицы.
18 сообщений из 18, страница 1 из 1
Вопрос про фрагментирование таблицы.
    #39502398
Сергей Б
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, господа. Нужен совет.
Есть таблица. В ней около 2 млрд. строк и размером около 2 Тб (без индексов). Таблица фрагментирована round-robin (60 dbspace под данные и 8 под индексы). В нее ежедневно заливаются данные и ежеквартально чистятся примерно 10 % строк (данные льются и чистятся по полю с типом datetime). Есть задача перенести данные на новый сервер перезаливкой в течении 2-3 недель
Возникает вопрос, а не изменить ли тип фрагментирования с round-robin на фрагментирование по выражению на поле с типом datetime. С одной стороны «хлопотно» каждый год создавать новые dbspace, но с другой стороны легко удалять уже не используемые фрагменты

В книге Carlton Doe "IBM Informix Dynamic Server 11" автор не советует применять фрагментирование по полям с типом данных serial, data, datetime.
Можете посоветовать как поступить?
И еще вопрос. Применяя
Код: sql
1.
EXECUTE FUNCTION task("table compress table…").

Данная функция будет применятся к только добавленным строкам или она будет «молотить» по всей таблице.

Версия 11.70.FC6
...
Рейтинг: 0 / 0
Вопрос про фрагментирование таблицы.
    #39502427
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
Сергей Б,

ИМХО если есть возможность провести адекватное нагрузочное тестирование, то его результат стоит намного больше абстрактных советов.
Кроме того не забывайте про очень важный момент - расфазировка данных. Для меня например выбор круговой фрагментации был решающим из-за того что невозможно было смириться с незаполненностью одних пространств и риском получить ошибку из=за переполненности других.
...
Рейтинг: 0 / 0
Вопрос про фрагментирование таблицы.
    #39502532
Сергей Б
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cpr,

Спасибо за ответ.
Для тестирования нет времени, да и долго очень. Недавно обсуждалась тема про оптимизации таблиц
http://www.sql.ru/forum/1255054/optimizaciya-tablicy
Я на тестовой среде на таком же объеме данных "зарядил"
Код: plsql
1.
execute function task('table repack shrink'...) 


Месяц работало, дальше не выдержал, прибил сессию. А вот архив логов создалось на 290 Гб.
...
Рейтинг: 0 / 0
Вопрос про фрагментирование таблицы.
    #39502558
яфшуеі
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"хлопотно" - почему?
ведь можно создать partition в одном пространстве.
Т.е. можно добавлять partition

В случае перевода на фрагментирование по выражению по полю с datetime вы сразу привязываете размер фрагмента
к количеству записей за указанный период.
А если количество будет больше и будет превышение лимита на размер?
...
Рейтинг: 0 / 0
Вопрос про фрагментирование таблицы.
    #39502624
Сергей Б
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
яфшуеі,

В книге Carlton Doe "IBM Informix Dynamic Server 11" автор не советует применять фрагментирование по полям с типом данных serial, data, datetime.

Вот я и спрашиваю, может кто-то может опровергнуть или посоветовать обходной вариант?

Код: plaintext
1.
2.
В случае перевода на фрагментирование по выражению по полю с datetime вы сразу привязываете размер фрагмента 
к количеству записей за указанный период.
А если количество будет больше и будет превышение лимита на размер?

У меня все dbspace авторасширяемые. Так, что превышение лимита не будет. К тому же БД создана со страницей 16 К
...
Рейтинг: 0 / 0
Вопрос про фрагментирование таблицы.
    #39502803
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
Сергей Бяфшуеі,

У меня все dbspace авторасширяемые. Так, что превышение лимита не будет. К тому же БД создана со страницей 16 К

Лимит есть всегда, для 16K страниц насколько я понимаю будет ограничение 128ГБ на размер фрагмента
...
Рейтинг: 0 / 0
Вопрос про фрагментирование таблицы.
    #39503732
Если по полю даты идёт основной поток выборок для анализа, то фрагментация по нему позволит автоматически пользоваться пропуском при сканировании тех пространств где по условиям выбора данных заведомо нет.

И это может быть очень большим плюсом перед round-robin.

С другой стороны, сейчас у вас вставка идёт считайте в 8 раз параллельнее - конкуренция за индекс меньше в 8 раз из-за 8 пространств.

При фрагментации по дате этого не будет.

В зависимости от соотношения SELECT/INSERT/DELETE и глубины времени во WHERE можно сделать квартальную или даже месячную разбивку.

Только не забывайте EXEC_DLL=1 для ALTER FRAGMENT при добавлении нового куска и учитыайте время работы ALTER. Впрочем при добавке куска который по диапазону заведомо не перекрывается с имеющимися требуется анализ только REMINDER. А там должно быть скорее всего пусто.
...
Рейтинг: 0 / 0
Вопрос про фрагментирование таблицы.
    #39504177
Сергей Б
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яковлев Павел,
Большущее спасибо!!!

А что это за "зверь" EXEC_DLL . Поиск в ГУГЛе ничего не выдает. Ссылку не выложите?

И еще, Вы можете прислать мне на адрес sesvjudi@yandex.ru свой e-mail. Хотелось бы пообщаться.
...
Рейтинг: 0 / 0
Вопрос про фрагментирование таблицы.
    #39505295
Это я по памяти криво написал

Зверь отгоняет нафиг всех от таблицы что бы не ждать когда её изволят освободить

Вот кусок из документации

Informix Guid to SQL: SyntaxThe ALTER FRAGMENT operation requires exclusive access and exclusive locks on
all of the tables involved in the operation. If you enable the FORCE_DDL_EXEC
session environment option, you can force out other transactions that have opened
a table involved in an ALTER FRAGMENT ON TABLE operation, or that have
placed locks on any of those tables. If the server is unable to get exclusive access
and exclusive locks on the table, the server starts rolling back the transactions that
are open or that have locks on the table, until the value specified with the
FORCE_DDL_EXEC option is reached.
...
Рейтинг: 0 / 0
Вопрос про фрагментирование таблицы.
    #39505807
Сергей Б
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое Павел.

Помогите пожалуйста с фрагментированием индексов. Никак не получается что-то придумать.

Есть фрагментированная таблица

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create table paym (
id serial8,
reg_date datetime,
mod_date datetime,
param_1 varchar(50)
)
partition by expression 
partition p201206 (mod_date < datetime(2012-07-01 00:00:00) year to second ) in pm_12_6, 
partition p201207 (mod_date < datetime(2012-08-01 00:00:00) year to second ) in pm_12_7, 
partition p201208 (mod_date < datetime(2012-09-01 00:00:00) year to second ) in pm_12_8;

CREATE INDEX paym_ix_mod_date ON paym(mod_date)
PARTITION by EXPRESSION
PARTITION p201206 (mod_date < DATETIME(2012-07-01 00:00:00) YEAR TO SECOND) IN pm_12_6,
PARTITION p201207 (mod_date < DATETIME(2012-08-01 00:00:00) YEAR TO SECOND) IN pm_12_7,
PARTITION p201208 (mod_date < DATETIME(2012-09-01 00:00:00) YEAR TO SECOND) IN pm_12_8;



Как сделать, чтобы создание индексов по столбцам id , param_1 и reg_date тоже разместить в dbspace (pm_12_6 - pm_12_8), учитывая что reg_date - mod_date может быть от 0 секунд до 3 лет.
...
Рейтинг: 0 / 0
Вопрос про фрагментирование таблицы.
    #39505980
Ну так в самостоятельно пробовали ?

Создайте фрагметированную таблицу, потом индекс не по стоблцу фрагментации и посмотрите схему индекса.
...
Рейтинг: 0 / 0
Вопрос про фрагментирование таблицы.
    #39525857
oleg ruban
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть программа Samrt Defrag я через нее делаю дефрагментацию
...
Рейтинг: 0 / 0
Вопрос про фрагментирование таблицы.
    #39525912
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень смешно
...
Рейтинг: 0 / 0
Вопрос про фрагментирование таблицы.
    #39526656
Сергей Б
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может кому интересно.
Создавал таблицы с разным типом фрагментации и заливал данные около 1 млн.
1. фрагментирование по выражению + первичный ключ по двум полям
2. фрагментирование по выражению первичный ключ в отдельном dbspace
3. фрагментирование по интервалу + первичный ключ по двум полям
4. round robin

Что получилось. (размер таблицы Гб с индексами и Время заливки HH:MM:SS)
1. 14,6 39:26:10
2. 13,4 46:00:07
3. 14,1 41:48:26
4. 12,7 37:31:05

Выбрал все-таки пункт 1 (легче избавляться от старых данных. detach > выгрузка на ленту > drop)
Заливал данные в таблицу без индексов, теперь при одновременном создании (из разных сессий) индексов, получаю ошибку

-242 SQL error: Could not open database table
-106 ISAM error: non-exclusive access

Можно ли вообще создавать одновременно несколько индексов?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Вопрос про фрагментирование таблицы.
    #39833114
Фотография aist-psk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подскажите что не так сделал :
разбил большую таблицу по фрагментам через FRAGMENT BY ROUND ROBIN

тестовые запрос выдаёт разные значения

IDS 11.50

$ echo "select first 10 vmb_key from new_vendor_matrix_books where vmb_key < 420 " |dbaccess base

Database selected.



vmb_key

410
412
414
416
418
409
411
413
415
417

10 row(s) retrieved.



Database closed.


-----------------------------------------------
echo "select first 10 vmb_key from new_vendor_matrix_books " |dbaccess base

Database selected.



vmb_key

410
412
414
416
418
420
422
424
426
428

10 row(s) retrieved.



Database closed.

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

для FRAGMENT BY ROUND ROBIN использовал два дополнительных пространства.
во втором случае выдаёт только чётные значения
...
Рейтинг: 0 / 0
Вопрос про фрагментирование таблицы.
    #39833399
Фотография aist-psk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сам разобрался , всем спасибо.
...
Рейтинг: 0 / 0
Вопрос про фрагментирование таблицы.
    #39833565
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aist-pskсам разобрался , всем спасибо.Так поделитесь, в чем был прикол, пожалуйста
...
Рейтинг: 0 / 0
Вопрос про фрагментирование таблицы.
    #39833587
Фотография aist-psk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запись идёт с чередованием : порция в один dbspace , другая порция в другой

выборка select first 10 - выдаёт в том порядке , что было зиписано - если дать большую выборку например 1000 :
увидим секции четных значений , потом нечётных значений.
короче это нормально.

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


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