На этот раз подборка вопросов составлена по курсу Ускорение и оптимизация систем на 1С:Предприятие 8.3 + подготовка на 1С:Эксперт. Будут рассмотрены вопросы по индексам, оборудованию, блокировкам СУБД. Для всех, кто работает с высоконагруженными информационными системами, указанные темы будут актуальны. Если вы занимаетесь или планируете заняться администрированием серверов 1С, администрированием СУБД, то подборка может быть вам полезна.
Вопрос №1: Какой порядок у ключей кластерного индекса таблицы остатков?
Ответ
В запросе получаются актуальные остатки, то есть это запрос к таблице итогов РН, по которой кластерный индекс имеет ключ: [Разделитель]+Период+Измерение1+Измерение2+…, но в данном случае разделителей нет, актуальные остатки – всегда остатки на дату 01.11.3999, измерения Склад и Товар, поэтому ключевое выражение принимает вид: 01.11.3999+Склад+Товар (т.е. период фиксированный).
Уточнение к вопросу
Ответ
Для получения остатков используется таблица остатков на начало периода (если актуальных, то есть с учетом всех операций – остатки на дату 01.11.3999, для индексов у которых в начале стоит дата – значение этой даты получается заведомо известно для актуальных остатков и ключевое выражение индекса вырождается/упрощается). Для получения остатков на даты внутри периода будет использована таблица остатков на последний рассчитанный период меньший требуемой даты + таблица движений с записями, у которых даты больше этой последней рассчитанной даты, но меньше даты, на которую требуется получить остатки (именно поэтому после начала работы в очередном периоде важно, чтобы были рассчитаны остатки на него), то есть остатки внутри периода работают с теми же данными, что и на границе периода + физическая таблица движений.
Вопрос №2: Что такое перезапись дисков в контексте падения их производительности?
Ответ
Речь про падение скорости записи на твердотельных накопителях (SSD) при многократной перезаписи данных. То есть после какого-то количества циклов записи конкретные ячейки микросхем памяти всё ещё работоспособны, но их показатели (время записи, например) падают. Проблема на последних моделях частично решена, особенно на дорогих профессиональных дисках (но не полностью).
Уточнение к вопросу
Ответ
Именно как на графике, когда контроллер доступа решает, что параметры пора подкорректировать – возникает такая (или поменьше) ступенька. Алгоритмы у каждого производителя свои, только не спрашивайте про них, потому как производители исходниками ни с кем не делятся.
Вопрос №3: Что означает критерий выбора памяти для сервера СУБД “Чем ближе к объему базы, тем лучше”?
Ответ
800Гб памяти – это идеально, но не “это желательно”. В реальных условиях обычно 96 Гб хватает (зависит от структуры базы, наполнения, запросов к базе и количества пользователей). Тот случай, когда размер базы примерно равен размеру памяти для СУБД, позволяет загрузить всю базу в память и не выполнять чтение в принципе, а только иногда записывать обновление/новые данные на диск/массив дисков.
Вопрос №4: Можно ли воспроизвести ожидания на блокировках СУБД в управляемом режиме?
Ответ
Для получения того же результата на той же базе требуется перевести конфигурацию в автоматический режим управления блокировками. В режиме управляемых блокировок получить блокировку СУБД сложнее (если делать в лоб – блокировка будет отловлена сервером 1С (речь не только про этот случай, а вообще).
Получить блокировку СУБД в управляемом режиме можно, например, блокировав в большой таблице одним сеансом так много строк (в одной транзакции), что сервер СУБД посчитает более эффективным перейти к блокировке всей таблицы, а другим сеансом попробовать заблокировать те записи, которые не заблокировал первый сеанс (сервер 1С увидит, что данные не пересекаются и пропустит, про увеличение грануляции блокировки сервер СУБД ему не докладывает, так что он про это не в курсе, а на сервере СУБД возникнет блокировка). Или можно еще так: какие-то строки блокируются сторонним сеансом (не 1С) и те же данные блокируются из 1С. Про первые сервер 1С ничего не знает и пропустит, а на сервере СУБД возникнет блокировка.
В обоих случаях будет блокировка СУБД. Далее или один сеанс подождёт и в последствии отработает, или прервется по таймауту.
Ускорение и оптимизация систем на 1С:Предприятие 8.3 + подготовка на 1С:Эксперт.