Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
dvp:db:structure [2013/04/10 15:21]
serge
dvp:db:structure [2016/11/03 19:39] (текущий)
kos
Строка 1: Строка 1:
-===== Рекомендуемая структура БД АБС ​QBIS.Bank =====+====== Рекомендуемая структура БД QBIS.Bank ​======
  
-Структура БД описывается в файле bisquit.st. Формат st-файла:​+Структура БД описывается в файле ​''​bisquit.st''​. Формат st-файла:​
    <​тип>​ "​код области":<#​ области>,​RPB;​BPC <​размещение>​    <​тип>​ "​код области":<#​ области>,​RPB;​BPC <​размещение>​
    ​где:​    ​где:​
       RPB - records per block - максимальное количество записей в блоке       RPB - records per block - максимальное количество записей в блоке
       BPC - blocks per cluster - количество блоков в одном кластере       BPC - blocks per cluster - количество блоков в одном кластере
-В данной статье пойдет речь только об областях типа "​d",​ содержащих данные.+В данной статье пойдет речь только об областях типа "​d",​ содержащие данные.
  
-==Параметр RPB== рекомендуется выбирать исходя из среднего размера записи для всех таблиц в области данных. Для размера блока 8 КБ оптимальны следующие значения этого параметра:​+Параметр ​**RPB** рекомендуется выбирать исходя из среднего размера записи для всех таблиц в области данных. Для размера блока 8 КБ оптимальны следующие значения этого параметра:​
   * 32 - большой размер записи (от 227 байт)   * 32 - большой размер записи (от 227 байт)
   * 64 - средний размер записи (до 227 байт)   * 64 - средний размер записи (до 227 байт)
Строка 14: Строка 14:
   * 256 - сверхмалый размер записи (до 42 байт)   * 256 - сверхмалый размер записи (до 42 байт)
  
-Параметр BPC рекомендуется выбирать исходя из скорости роста области данных. Если область данных большая и растет очень быстро,​ то желательно,​ чтобы и размер кластера был большим. Возможные значения - 8, 64, 256.+Параметр ​**BPC** рекомендуется выбирать исходя из скорости роста области данных. Если область данных большая и растет очень быстро,​ то желательно,​ чтобы и размер кластера был большим. Возможные значения - 8, 64, 512.
  
-Рекомендуемая структура в файле bisquit.st основана на анализе нескольких клиентских баз данных,​ работающих в однофилиальном режиме. В конкретном Банке ситуация может отличаться. ​+===== Рекомендуемый файл bisquit.st ===== 
 + 
 +Рекомендуемая структура в файле ​''​bisquit.st'' ​основана на анализе нескольких клиентских баз данных,​ работающих в многофилиальном режиме. В конкретном Банке ​характер данных может отличаться от проанализированных,​ поэтому значения RPB необходимо подбирать индивидуально (например,​ для однофилиального режима размер записей в области "​pos"​ меньше,​ поэтому значение RPB для этой области можно установить равным 256). 
 +  # Описание области Before Image 
 +  b . 
 +  # Служебная область (добавление таблиц в эту область запрещено) 
 +  d "​Schema Area":​6,​64;​1 ​. 
 +  #
   # Транзакционные данные (быстрый рост, средний размер записи)   # Транзакционные данные (быстрый рост, средний размер записи)
   d "​op":​7,​128;​512 .   d "​op":​7,​128;​512 .
Строка 60: Строка 67:
   d "​mart":​17,​64;​512 ​ .   d "​mart":​17,​64;​512 ​ .
   d "​mart-i":​37,​1;​8 .   d "​mart-i":​37,​1;​8 .
- 
 При анализе учитывались следующие требования:​ При анализе учитывались следующие требования:​
-  * таблицы и индексы располагаются ​ в разных областях,​ это необходимо для указания меньших значений BPC для областей с индексами,​ чтобы минимизировать размер малозаполненных таблиц,​ а также удобства администрирования;​+  * таблицы и индексы располагаются ​ в разных областях,​ это необходимо для указания меньших значений BPC для областей с индексами,​ чтобы минимизировать размер малозаполненных таблиц,​ а также ​для ​удобства администрирования;​
   * области olap, history, op, signs, msg, mart растут быстрее остальных;​   * области olap, history, op, signs, msg, mart растут быстрее остальных;​
   * в областях msg, text и mart средний размер записи значительно превосходит средний средний размер записей в БД, а область perm содержит записи с наименьшей длиной.   * в областях msg, text и mart средний размер записи значительно превосходит средний средний размер записей в БД, а область perm содержит записи с наименьшей длиной.
  
-Информацию ​о структуре БД использует утилита ​genscript.p, которая создаёт скрипт переноса таблиц ​между областямиДля своей работы она использует файл ​table.cfg, содержащий ​информацию о размещении таблиц ​по областям. Этот файл регулярно обновляется ​ и выходит в составе патчей. ​+===== Перенос данных между ​областями ===== 
 +Одним из параметров БД, влияющих на производительность, является размещение таблиц БД по областям. Для эффективного доступа к данным таблица должна быть размещена в той области, которая ​больше всего ей подходит как по величине среднего размера записи, ​так и по скорости роста объемов данных. 
 +Для ​переноса таблиц ​и индексов из одной ​области в другую есть несколько способов:​ 
 +  * Использование [[unix:​progress:​dump-load|методики двоичного dump/load]] для передампливания всей БД целиком либо по частям. Эту технологию эффективно выполнять вместе с переходом на новую структуру хранения данных Type Area II, которая значительно увеличивает производительность БД. 
 +  * Использование штатной утилиты [[http://​documentation.progress.com/​output/​OpenEdge112/​oe112html/​Data%20Management/​wwhelp/​wwhimpl/​common/​html/​wwhelp.htm#​href=Database%20Administration/​30dmadmch22.041.67.html&​single=true|PROUTIL TABLEMOVE]] 
 +Для автоматизации процесса переноса таблиц между областями можно воспользоваться процедурой ''​genscript.p'',​ которая создаёт скрипт переноса ​таблиц ​и индексов, находящихся не в "​своих" ​областях. Она использует информацию о структуре из текущей БД и специальный файл ''​table.cfg''​. Этот файл ​конфигурации имеет следующую структуру:​ 
 +   <​area-name>:<​table-name1>,<​table-name2>,​... 
 +   ... 
 +Файл ''​table.cfg'' ​регулярно обновляется ​ и выходит в составе патчей. 
 + 
 +Процедура ''​genscript.p''​ создает скрипт ''​movetable''​ для переноса таблиц в новые области данных. Таблицы,​ не включенные в конфигурационный файл, будут помещены в область ''​other''​. Если в текущей базе данных существует область с наименованием ''<​area name>​-i'',​ то индексы будут автоматически перенесены в эту область,​ в противном случае индексы будут перенесены в одну область с данными. 
 + 
 +Вызов:​ 
 +   bq41d -p genscript.p -param "​table.cfg,​movetable"​ 
 + 
 +Учтите,​ что штатная утилита PROUTIL TABLEMOVE осуществляет перенос данных в рамках одной транзакции. Записи одна за одной читаются в исходной таблице,​ копируются в новую таблицу,​ а затем исходные записи удаляются. Поэтому размер BI-файла может вырасти до 10 раз от размера самой таблицы. 
 +===== Дополнительная информация ===== 
 + 
 +  * Progress Knowledgebase:​ [[http://​knowledgebase.progress.com/​articles/​Article/​P77017|How to move tables faster with tablemove?​]] 
 +  * OpenEdge Database Administration Guide: [[http://​documentation.progress.com/​output/​OpenEdge112/​oe112html/​Data%20Management/​wwhelp/​wwhimpl/​common/​html/​wwhelp.htm#​href=Database%20Administration/​22dmadmch15.033.10.html&​single=true|Maintaining indexes and tables]]
  
-=== Дополнительная информация === +{{tag>progress ​prodb}}
-  * [[unix:progress:​dump-load|о технологии dump/​load]] +
-  * об утилите genscript.p -  в заявке 0164026 (4.1D79)+