|
|
|
Сегменты БД и свободное пространство в БД. ASE 12.5
|
|||
|---|---|---|---|
|
#18+
Для более четкого представления особенностей распределения свободного места в БД перечитал документацию по созданию и распределению сегментов + поэкспериментировал. Укажите на неверные предположения: (Рассматривается БД с сегментами по умолчанию - system, default, logsegment) 1) Сообщение: ... because 'default' segment is full/has no free extents... Нет места для вставки данных в таблицу. Необходимо расширить только устройство(а), которые выделены для default сегмента (если нет смешивания с logsement) 2) Сообщение: ... because 'logsegment' is full/has no free extents... Нет места для лога транзакций . Необходимо расширить только устройство(а), которые выделены для logsegment (если нет смешивания с default) 3) Если БД создана с использованием 'with override' и на устройствах закончилось свободное место, то может выскочить любая из ошибок 1,2 (вероятнее 2) 4) Создавать/расширять 'боевую' БД с использованием 'with override' крайне нежелательно (исключение tempdb). 5) Свободное место для данных достаточно точно можно определить выполнив скрипт sp_helpdb database_name и просуммировав все значения столбца free kbytes для строк c usage = data only . (БД без override). 6) sp_spaceused database_name - не лучший способ определения наличия свободного пространства в БД. 7) Сервер с page size = 2K. Таблица с размером строки > 1Кб (например, 6 полей char(200)). Предполагаю, что 1 страница - 1 строка. Нужно вставить 100 000 строк = 200 000 Кб. Есть 2 устройства (оба data only - system + default): на одном свободно 100+80=180Mб на 2-м 50Мб. Гарантировано ли, что вставка пройдёт успешно (logsegment очищен и занимает 300Мб)? 8) Если не используется дампирование лога транзакций, то полезно устанавливать опции БД: trunc log on chkpt - без существенных ограничений и abort tran on log full - не получаем зависших процессов. (если обрыв транзакций с соотв. сообщением не критичен.) Спасибо за помощь в структурировании накопленных опытом знаний! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2008, 13:23 |
|
||
|
Сегменты БД и свободное пространство в БД. ASE 12.5
|
|||
|---|---|---|---|
|
#18+
_makSimДля более четкого представления особенностей распределения свободного места в БД перечитал документацию по созданию и распределению сегментов + поэкспериментировал. Укажите на неверные предположения: (Рассматривается БД с сегментами по умолчанию - system, default, logsegment) 1) Сообщение: ... because 'default' segment is full/has no free extents... Нет места для вставки данных в таблицу. Необходимо расширить только устройство(а), которые выделены для default сегмента (если нет смешивания с logsement) да, либо добавить новый девайс и расширить на него БД (default & system сегменты) _makSim 2) Сообщение: ... because 'logsegment' is full/has no free extents... Нет места для лога транзакций . Необходимо расширить только устройство(а), которые выделены для logsegment (если нет смешивания с default) забекапить лог либо расширить/(добавить новый) девайс и расширить на него БД (default & system сегменты) _makSim 3) Если БД создана с использованием 'with override' и на устройствах закончилось свободное место, то может выскочить любая из ошибок 1,2 (вероятнее 2) да, но вероятность неочевидна _makSim 4) Создавать/расширять 'боевую' БД с использованием 'with override' крайне нежелательно (исключение tempdb). да _makSim 5) Свободное место для данных достаточно точно можно определить выполнив скрипт sp_helpdb database_name и просуммировав все значения столбца free kbytes для строк c usage = data only . (БД без override). Код: plaintext _makSim 6) sp_spaceused database_name - не лучший способ определения наличия свободного пространства в БД. статистику держите актуальной и будет нормальный способ sp_spaceused database_name - так это не сработает, имя бд указывать не надо _makSim 7) Сервер с page size = 2K. Таблица с размером строки > 1Кб (например, 6 полей char(200)). Предполагаю, что 1 страница - 1 строка. Нужно вставить 100 000 строк = 200 000 Кб. Есть 2 устройства (оба data only - system + default): на одном свободно 100+80=180Mб на 2-м 50Мб. Гарантировано ли, что вставка пройдёт успешно (logsegment очищен и занимает 300Мб)? это как вставлять будете - одним батчем или многими если одним, то возможно лога не хватит, т.е. надо пробовать по размеру таблицы - sp_estspace вам в помощь _makSim 8) Если не используется дампирование лога транзакций, то полезно устанавливать опции БД: trunc log on chkpt - без существенных ограничений и abort tran on log full - не получаем зависших процессов. (если обрыв транзакций с соотв. сообщением не критичен.) да, полезно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2008, 14:28 |
|
||
|
|

start [/forum/topic.php?fid=55&gotonew=1&tid=2011243]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
10ms |
get first new msg: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 486ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...