[ Разбор вопросов ] Вопросы ускорения и оптимизации систем 1С

На этот раз подборка вопросов составлена по курсу Ускорение и оптимизация систем на 1С:Предприятие 8.3 + подготовка на 1С:Эксперт. Будут рассмотрены вопросы по индексам, оборудованию, блокировкам СУБД. Для всех, кто работает с высоконагруженными информационными системами, указанные темы будут актуальны. Если вы занимаетесь или планируете заняться администрированием серверов 1С, администрированием СУБД, то подборка может быть вам полезна.
 

Вопрос №1: Какой порядок у ключей кластерного индекса таблицы остатков?

В решении к одному заданию курса упомянута фраза “…так как будет использоваться кластерный индекс «Склад+Товар»…“. Но ведь в кластерном индексе таблицы остатков на первом месте находится Период. Или Период находится на первом месте в индексе таблицы итогов, а не виртуальной таблицы остатков?

Ответ

В запросе получаются актуальные остатки, то есть это запрос к таблице итогов РН, по которой кластерный индекс имеет ключ: [Разделитель]+Период+Измерение1+Измерение2+…, но в данном случае разделителей нет, актуальные остатки – всегда остатки на дату 01.11.3999, измерения Склад и Товар, поэтому ключевое выражение принимает вид: 01.11.3999+Склад+Товар (т.е. период фиксированный).

Уточнение к вопросу

Спасибо. Верно ли я понимаю, что эта информация будет актуальна для остатков на начало любого месяца в пределах периода рассчитанных итогов? А в случае получения остатков на иные даты индекс задействован не будет?

Ответ

Для получения остатков используется таблица остатков на начало периода (если актуальных, то есть с учетом всех операций – остатки на дату 01.11.3999, для индексов у которых в начале стоит дата – значение этой даты получается заведомо известно для актуальных остатков и ключевое выражение индекса вырождается/упрощается). Для получения остатков на даты внутри периода будет использована таблица остатков на последний рассчитанный период меньший требуемой даты + таблица движений с записями, у которых даты больше этой последней рассчитанной даты, но меньше даты, на которую требуется получить остатки (именно поэтому после начала работы в очередном периоде важно, чтобы были рассчитаны остатки на него), то есть остатки внутри периода работают с теми же данными, что и на границе периода + физическая таблица движений.

 

Вопрос №2: Что такое перезапись дисков в контексте падения их производительности?

В видео уроке “Критерии выбора оборудования. Диски” говорится о падении производительности дисков после перезаписи (во вложении пример). Что такое перезапись диска?

 

Критерии выбора оборудования. Диски

Ответ

Речь про падение скорости записи на твердотельных накопителях (SSD) при многократной перезаписи данных. То есть после какого-то количества циклов записи конкретные ячейки микросхем памяти всё ещё работоспособны, но их показатели (время записи, например) падают. Проблема на последних моделях частично решена, особенно на дорогих профессиональных дисках (но не полностью).

Уточнение к вопросу

Тогда мне график не понятен, если речь идет именно о перезаписи, то есть такое падение должно произойти, когда по оси записано в Гбайт > 256 Гбайт, а по графику падение показано где-то на 140 Гбайт, объем же диска 256 Гбайт. Или я неправильно понял?

Ответ

Именно как на графике, когда контроллер доступа решает, что параметры пора подкорректировать – возникает такая (или поменьше) ступенька. Алгоритмы у каждого производителя свои, только не спрашивайте про них, потому как производители исходниками ни с кем не делятся.

 

Вопрос №3: Что означает критерий выбора памяти для сервера СУБД “Чем ближе к объему базы, тем лучше”?

В видео уроке по подбору оборудования говорится, что критерий выбора памяти для сервера СУБД – “чем ближе к объему базы, тем лучше” (см. скриншот). Получается, если база на 800 Гб, то память желательно взять на 800 Гб?

 

Критерии выбора оборудования. Память

Ответ

800Гб памяти – это идеально, но не “это желательно”. В реальных условиях обычно 96 Гб хватает (зависит от структуры базы, наполнения, запросов к базе и количества пользователей). Тот случай, когда размер базы примерно равен размеру памяти для СУБД, позволяет загрузить всю базу в память и не выполнять чтение в принципе, а только иногда записывать обновление/новые данные на диск/массив дисков.

 

Вопрос №4: Можно ли воспроизвести ожидания на блокировках СУБД в управляемом режиме?

Для демонстрации ожиданий на блокировках на уровне СУБД автор переводит конфигурацию в автоматический режим блокировок. Можно ли воспроизвести ожидания на блокировках СУБД в управляемом режиме?

Ответ

Для получения того же результата на той же базе требуется перевести конфигурацию в автоматический режим управления блокировками. В режиме управляемых блокировок получить блокировку СУБД сложнее (если делать в лоб – блокировка будет отловлена сервером 1С (речь не только про этот случай, а вообще).

Получить блокировку СУБД в управляемом режиме можно, например, блокировав в большой таблице одним сеансом так много строк (в одной транзакции), что сервер СУБД посчитает более эффективным перейти к блокировке всей таблицы, а другим сеансом попробовать заблокировать те записи, которые не заблокировал первый сеанс (сервер 1С увидит, что данные не пересекаются и пропустит, про увеличение грануляции блокировки сервер СУБД ему не докладывает, так что он про это не в курсе, а на сервере СУБД возникнет блокировка). Или можно еще так: какие-то строки блокируются сторонним сеансом (не 1С) и те же данные блокируются из 1С. Про первые сервер 1С ничего не знает и пропустит, а на сервере СУБД возникнет блокировка.

В обоих случаях будет блокировка СУБД. Далее или один сеанс подождёт и в последствии отработает, или прервется по таймауту.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

Я подтверждаю, что ознакомлен(а) с Пользовательским соглашением, принимаю его условия и даю свое согласие на обработку моих персональных данных.

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.