Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 REORG TABLE, Как свести к минимуму время для проведения реорганизации таблиц и индексов.  [new]
Chumakov_JA
Member

Откуда:
Сообщений: 203
Добрый день.
Имеем DB 2 9.7.* ESE, Сервер Windows 24 ядер 65-128 гб озу находится на WMVare.
Диск D где расположенна база, это дисковый массив подключенный по оптике.
общий объем базы 930 гб.
GET DB CFG
+

------------------------------ Введенные команды ------------------------------
GET DB CFG;
------------------------------------------------------------------------------
GET DB CFG

Конфигурация базы данных

Выпуск конфигурации базы данных = 0x0d00
Выпуск базы данных = 0x0d00

Территория базы данных = RU
Кодовая страница базы данных = 1251
Кодовый набор базы данных = 1251
Код страны/региона базы данных = 7
Последовательность упорядочивания базы данных = UNIQUE
Альтернативная последовательность слияния (ALT_COLLATE) =
Совместимость чисел = OFF
Совместимость с Varchar2 = OFF
Совместимость данных = OFF
Размер страницы базы данных = 4096

Управление динамическими запросами SQL (DYN_QUERY_MGMT) = DISABLE

Концентратор операторов (STMT_CONC) = OFF

Поддержка поиска для базы данных (DISCOVER_DB) = ENABLE

Ограниченный доступ = NO
Класс оптимизации запросов по умолчанию (DFT_QUERYOPT) = 5
Уровень параллелизма (DFT_DEGREE) = 1
Продолжение при арифметических ошибках(DFT_SQLMATHWARN) = NO
Интервал обновления по умолчанию (DFT_REFRESH_AGE) = 0
Типы обсл. таблиц по умолчанию для опт.(DFT_MTTB_TYPES) = SYSTEM
Число хранящихся частых значений (NUM_FREQVALUES) = 10
Число хранимых квантилей (NUM_QUANTILES) = 20

Режим округления для десятичных с плавающей точкой (DECFLT_ROUNDING) = ROUND_HALF_EVEN

Отложено резервных копирований = NO

Все принятые транзакции записаны на диск = NO
Повторов отложено = NO
Восстановлений отложено = NO

Многостраничное размещение файлов разрешено = YES

Состояние сохранения в журнале для восстановления = NO
Состояние обработчика пользователя для регистрации = NO

Самонастраивающаяся память (SELF_TUNING_MEM) = OFF
Размер совм.памяти базы данных(4 Кбайт)(DATABASE_MEMORY)= AUTOMATIC(8549072)
Порог памяти базы данных (DB_MEM_THRESH) = 10
Макс. память списка блокировок (4 Кбайт) (LOCKLIST) = AUTOMATIC(4904200)
Процент списков блокировки на программу (MAXLOCKS) = AUTOMATIC(98)
Размер кэша пакета (4 Кбайт) (PCKCACHESZ) = AUTOMATIC((MAXAPPLS*8))
Порог куч совмест. сортировок (4 Кбайт)(SHEAPTHRES_SHR) = AUTOMATIC(500000)
Размер кучи списка сортировки (4 Кбайт) (SORTHEAP) = AUTOMATIC(65000)

Размер кучи базы данных (4 Кбайт) (DBHEAP) = AUTOMATIC(55000)
Размер кэша каталога (4 Кбайта) (CATALOGCACHE_SZ) = 772
Размер буфера журнала (4 Кбайт) (LOGBUFSZ) = 40960
Размер кучи утилит (4 Кбайт) (UTIL_HEAP_SZ) = 524288
Размер пула буферов (страниц) (BUFFPAGE) = 250
Размер кучи оператора SQL (4 Кбайт) (STMTHEAP) = AUTOMATIC(12192)
Размер кучи программы по умолчанию (4 Кбайт)(APPLHEAPSZ)= AUTOMATIC(60000)
Размер памяти прикладных программ (4 Кбайта) (APPL_MEMORY) = AUTOMATIC(40016)
Размер кучи статистики (4 Кбайт) (STAT_HEAP_SZ) = AUTOMATIC(12384)

Интервал проверки тупиковых ситуаций (мс) (DLCHKTIME) = 20000
Время ожидание блокировки (сек) (LOCKTIMEOUT) = -1

Предельная доля измененных страниц (CHNGPGS_THRESH) = 60
Число асинхронных чистильщиков страниц (NUM_IOCLEANERS) = AUTOMATIC(11)
Число серверов ввода-вывода (NUM_IOSERVERS) = AUTOMATIC(3)
Флаг сортировки индекса (INDEXSORT) = YES
Флаг обнаружения последовательного чтения (SEQDETECT) = YES
Предварит.выборка по умолч. (страниц) (DFT_PREFETCH_SZ) = AUTOMATIC

Отслеживать измененные страницы (TRACKMOD) = NO

Число контейнеров по умолчанию = 1
Экстент табл.простр.по умолч. (страниц) (DFT_EXTENT_SZ) = 32

Максимальное число активных программ (MAXAPPLS) = 100
Среднее число активных программ (AVG_APPLS) = AUTOMATIC(1)
Максим.число открытых файлов БД на программу (MAXFILOP) = 65535

Размер файла журнала (4 Кбайт) (LOGFILSIZ) = 32000
Число первичных файлов журнала (LOGPRIMARY) = 80
Число вторичных файлов журнала (LOGSECOND) = 45
Измененных путей к файлам журналов (NEWLOGPATH) =
Путь к файлам журнала = D:\DBLOG\NODE0000\
Путь журналов переполнения (OVERFLOWLOGPATH) =
Путь журналов зеркальной копии (MIRRORLOGPATH) =
Первый активный файл журнала =
Блокировать журнал при переполн.диска (BLK_LOG_DSK_FUL) = NO
Блокировать операции, не занесенные в журнал (BLOCKNONLOGGED) = NO
Процент макс.перв.простр.журнала у транзакции(MAX_LOG) = 0
Число акт.файлов журнала на актив.ед.раб. (NUM_LOG_SPAN)= 0

Счетчик принятий для группы (MINCOMMIT) = 1
Процент исправ.файла журнала до мягк.контр.тчк (SOFTMAX)= 100
Сохранение в журнале для восстанов.включено (LOGRETAIN) = OFF
Обработчик пользов. для регистрации включен (USEREXIT) = OFF

Роль базы данных HADR = STANDARD
Имя локального хоста HADR (HADR_LOCAL_HOST) =
Имя локальной службы HADR (HADR_LOCAL_SVC) =
Имя удаленного хоста HADR (HADR_REMOTE_HOST) =
Имя удаленной службы HADR (HADR_REMOTE_SVC) =
Имя экземпляра HADR на удал. сервере (HADR_REMOTE_INST) =
Срок ожидания HADR (HADR_TIMEOUT) = 120
Режим синхронизации записи в журнал HADR (HADR_SYNCMODE) = NEARSYNC
Длительность окна для равноправного HADR (с) (HADR_PEER_WINDOW) = 0

Первый метод архивирования журнала (LOGARCHMETH1) = OFF
Опции для logarchmeth1 (LOGARCHOPT1) =
Второй метод архивирования журнала (LOGARCHMETH2) = OFF
Опции для logarchmeth2 (LOGARCHOPT2) =
Путь архива журналов при отказе (FAILARCHPATH) =
Число попыток архив.перед решен.об ошибке(NUMARCHRETRY) = 5
Задержка попыток архивирования журнала (с)(ARCHRETRYDELAY) = 20
Опции поставщика (VENDOROPT) =

Автоматический перезапуск разрешен (AUTORESTART) = ON
Время воссоздания и построение пересоздания индекса (INDEXREC) = RESTART
Страниц журнала при построении индекса (LOGINDEXBUILD) = OFF
Число сеансов loadrec по умолчанию (DFT_LOADREC_SES) = 1
Число резервных копий баз данных (NUM_DB_BACKUPS) = 14
Хранение хронологии для восстанов.(дни)(REC_HIS_RETENTN)= 14
Автоудаление объектов восстановления (AUTO_DEL_REC_OBJ) = ON

Класс управления TSM (TSM_MGMTCLASS) = DB2TAPE
Имя узла TSM (TSM_NODENAME) =
Владелец TSM (TSM_OWNER) =
Пароль TSM (TSM_PASSWORD) =

Автоматическое обслуживание (AUTO_MAINT) = ON
Автоматическое резервное копирование базы данных (AUTO_DB_BACKUP) = OFF
Автоматическое обслуживание таблиц (AUTO_TBL_MAINT) = ON
Автоматический запуск runstats (AUTO_RUNSTATS) = OFF
Автоматическая статистика оператора (AUTO_STATS_PROF) = OFF
Автоматическое профилирование статистики (AUTO_STATS_PROF) = OFF
Автоматическое изменение профиля (AUTO_PROF_UPD) = OFF
Автоматическая реорганизация (AUTO_REORG) = OFF

Автоматическая повторная проверка (AUTO_REVAL) = DISABLED
Текущее принятие (CUR_COMMIT) = DISABLED
Вывод CHAR при вводе DECIMAL (DEC_TO_CHAR_FMT) = V95
Символьные операции XML включены (ENABLE_XMLCHAR) = YES
Интервал сбора WLM (минут) (WLM_COLLECT_INT) = 0
Параметры сбора монитора
Показатели требования (MON_REQ_METRICS) = NONE
Показатели активности (MON_ACT_METRICS) = NONE
Показатели объектов (MON_OBJ_METRICS) = NONE
События единиц работы (MON_UOW_DATA) = NONE
События истечения сроков блокировок (MON_LOCKTIMEOUT) = NONE
События тупиковых ситуаций (MON_DEADLOCK) = NONE
События ожидания блокировок (MON_LOCKWAIT) = NONE
Порог событий ожидания блокировок (MON_LW_THRESH) = 4294967295
Число записей в списке пакетов (MON_PKGLIST_SZ) = 32
Уровень предупреждений о блокировках (MON_LCK_MSG_LVL) = 1

SMTP-сервер (SMTP_SERVER) =
Флаги условной компиляции SQL (SQL_CCFLAGS) =
Актуальные параметры сеанса (SECTION_ACTUALS) = NONE
Процедура соединения (CONNECT_PROC) =

есть таблицы с количеством записей 308000000

DDl данной таблицы
+
TABLE "COMMON "."UPD_ELECTRONIC_OBJECT" (
"ELECTRONIC_OBJECT_ID" BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY (
START WITH +1
INCREMENT BY +1
MINVALUE +1
MAXVALUE +9223372036854775807
NO CYCLE
CACHE 20
NO ORDER ) ,
"STORAGE_ID" BIGINT ,
"CREATION_TIME" TIMESTAMP NOT NULL WITH DEFAULT CURRENT TIMESTAMP ,
"FILE_NAME" VARCHAR(1000) ,
"OBJECT_DATA" BLOB(100000) LOGGED NOT COMPACT ,
"OBJECT_SIZE" INTEGER )
IN "USERSPACE1" ;
CREATE INDEX "COMMON "."Index_elObj_crTime" ON "COMMON "."UPD_ELECTRONIC_OBJECT"
("CREATION_TIME" ASC)

COMPRESS NO ALLOW REVERSE SCANS;

-- Операторы DDL для индексов таблицы "COMMON "."UPD_ELECTRONIC_OBJECT"

CREATE INDEX "COMMON "."Index_elObj_storId" ON "COMMON "."UPD_ELECTRONIC_OBJECT"
("STORAGE_ID" ASC)

COMPRESS NO DISALLOW REVERSE SCANS;

ALTER TABLE "COMMON "."UPD_ELECTRONIC_OBJECT" ALTER COLUMN "ELECTRONIC_OBJECT_ID" RESTART WITH 314064021;

-- Операторы DDL для внешних ключей таблицы "COMMON "."UPD_ELECTRONIC_OBJECT"

ALTER TABLE "COMMON "."UPD_ELECTRONIC_OBJECT"
ADD CONSTRAINT "F_REF_ELECTRONICOB" FOREIGN KEY
("STORAGE_ID")
REFERENCES "COMMON "."UPD_STORAGE"
("STORAGE_ID")
ON DELETE RESTRICT
ON UPDATE RESTRICT
ENFORCED
ENABLE QUERY OPTIMIZATION;






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



что нужно сделать чтобы данная таблица и её индексы реорганизовывались за 5 минут (мечта)
в момент проведения реоганизации сервер просто отдыхает.
27 июн 17, 16:00    [20594279]     Ответить | Цитировать Сообщить модератору
 Re: REORG TABLE, Как свести к минимуму время для проведения реорганизации таблиц и индексов.  [new]
Chumakov_JA
Member

Откуда:
Сообщений: 203
в дополнение реорганизацию запускаю
REORG TABLE COMMON.UPD_ELECTRONIC_OBJECT INPLACE ALLOW READ ACCESS
27 июн 17, 16:02    [20594291]     Ответить | Цитировать Сообщить модератору
 Re: REORG TABLE, Как свести к минимуму время для проведения реорганизации таблиц и индексов.  [new]
Chumakov_JA
Member

Откуда:
Сообщений: 203
Chumakov_JA,

вот элементарный пример, время скриншота 17:33

Картинка с другого сайта.

К сообщению приложен файл. Размер - 135Kb
27 июн 17, 17:40    [20594663]     Ответить | Цитировать Сообщить модератору
 Re: REORG TABLE, Как свести к минимуму время для проведения реорганизации таблиц и индексов.  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4640
Chumakov_JA,

Добрый день.

Что выдает:

db2 "reorgchk current statistics on table COMMON.UPD_ELECTRONIC_OBJECT"
27 июн 17, 18:35    [20594793]     Ответить | Цитировать Сообщить модератору
 Re: REORG TABLE, Как свести к минимуму время для проведения реорганизации таблиц и индексов.  [new]
Chumakov_JA
Member

Откуда:
Сообщений: 203
reorgchk current statistics on table COMMON.UPD_ELECTRONIC_OBJECT;
------------------------------------------------------------------------------
reorgchk current statistics on table COMMON.UPD_ELECTRONIC_OBJECT

Статистика таблиц:

F1: 100 * OVERFLOW / CARD < 5
F2: 100 * (Эффективное использование пространства страниц данных) > 70
F3: 100 * (Требуемые страницы / Общее число страниц) > 80

SCHEMA.NAME CARD OV NP FP ACTBLK TSIZE F1 F2 F3 REORG
----------------------------------------------------------------------------------------
Таблица: COMMON.UPD_ELECTRONIC_OBJECT
3,1e+08 0 9e+06 9e+06 - 3,45e+10 0 98 100 ---
----------------------------------------------------------------------------------------

Статистика индексов:

F4: CLUSTERRATIO или нормализованный CLUSTERFACTOR > 80
F5: 100 * (пространство, использованное конечными страницами / пространство, доступное для непустых конечных страниц) > MIN(50, (100 - PCTFREE))
F6: (100 - PCTFREE) * (пространство, доступное в индексе на единицу меньшего уровня / пространство, необходимое для всех ключей) < 100
F7: 100 * (число псевдоудаленных RID / общее число RID) < 20
F8: 100 * (число псевдоудаленных конечных страниц / общее число конечных страниц) < 20

SCHEMA.NAME INDCARD LEAF ELEAF LVLS NDEL KEYS LEAF_RECSIZE NLEAF_RECSIZE LEAF_PAGE_OVERHEAD NLEAF_PAGE_OVERHEAD PCT_PAGES_SAVED F4 F5 F6 F7 F8 REORG
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Таблица: COMMON.UPD_ELECTRONIC_OBJECT
Индекс: COMMON.Index_elObj_crTime
3,1e+08 1e+06 0 4 0 2,5e+08 10 10 566 566 0 100 96 1 0 0 -----
Индекс: COMMON.Index_elObj_storId
3,1e+08 5e+05 0 4 0 20 9 9 596 596 0 97 91 4 0 0 -----
Индекс: SYSIBM.SQL101201131230170
3,1e+08 1e+06 0 4 0 3,1e+08 8 8 628 628 0 100 97 1 0 0 -----
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

CLUSTERRATIO или нормализованный CLUSTERFACTOR (F4) показывают, что для
индексов, которые по последовательности не соответствуют базовой таблице,
необходима операция REORG. Если для таблицы определено несколько индексов,
один или несколько могут быть помечены, как требующие операции REORG. Укажите
самый важный индекс для применения операции REORG.

У таблиц, определенных с условием ORGANIZE BY, и соответствующих индексов
размерностей к именам добавляется суффикс '*'. Мощность индекса размерности
равна статистике активных блоков таблицы.

Mark Barinstein,
27 июн 17, 19:59    [20594956]     Ответить | Цитировать Сообщить модератору
 Re: Первое знакомство с DB2  [new]
mustaccio
Member

Откуда: Москва -> Торонто
Сообщений: 491
А зачем её всё время реорганизовывать, тем более с RESETDICTIONARY?
28 июн 17, 02:12    [20595527]     Ответить | Цитировать Сообщить модератору
 Re: REORG TABLE, Как свести к минимуму время для проведения реорганизации таблиц и индексов.  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4640
Chumakov_JA,

В данном случае ни одна из формул не показывает даже близко необходимость реорганизации.
Вы перед реорганизацией каждой таблицы запускаете эту команду или ее аналог из пары процедур для проверки, оно вообще надо или нет?
28 июн 17, 09:52    [20595722]     Ответить | Цитировать Сообщить модератору
 Re: REORG TABLE, Как свести к минимуму время для проведения реорганизации таблиц и индексов.  [new]
Jawakharlal
Member

Откуда: Махачкала
Сообщений: 30
Mark Barinstein,

нет, не запускает =)
мы все используем скрипт, который нам выдал разработчик программы
28 авг 17, 08:33    [20752679]     Ответить | Цитировать Сообщить модератору
 Re: REORG TABLE, Как свести к минимуму время для проведения реорганизации таблиц и индексов.  [new]
aserdjuk
Member

Откуда:
Сообщений: 29
А разве партиционирование таблицы не параллелит reorg ?
Хотя, с таким количеством записей поздновато.
4 окт 17, 07:57    [20840773]     Ответить | Цитировать Сообщить модератору
 Re: REORG TABLE, Как свести к минимуму время для проведения реорганизации таблиц и индексов.  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4640
aserdjuk
А разве партиционирование таблицы не параллелит reorg ?
Range partitioned таблицы - нет.
Оно будет реорганизовывать секции последовательно, потом перестроит все индексы.
Если нет глобальных индексов, то можно вручную запускать параллельно несколько reorg с 'ON DATA PARTITION' на разные секции одной и той же таблицы.
4 окт 17, 11:16    [20841365]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить