Оптимистические уровни изоляции в MS SQL Server

Публикация № 708848

Администрирование - Администрирование данных 1С

MS SQL Server блокировки уровни изоляции

Оптимистические уровни изоляции транзакций были введены в SQL Server 2005 как новый способ борьбы с проблемами блокировок и согласованности данных. В отличие от пессимистических уровней изоляции, при использовании оптимистических уровней запросы не могут считать данные, которые были изменены другими транзакциями, но еще не были зафиксированы (читаются "старые" данные). При этом не происходит конфликта совмещаемых (S) и монопольных (X) блокировок.

Введение в управление версиями строк

Когда происходит обновление, то при использовании оптимистических уровней изоляции SQL Server сохраняет старые версии строк в специальной области базы tempdb, которое называется хранилище версий. Для исходной строки в базе данных добавляется 14-ти байтный указатель, который ссылается на старую версию этой строки (в зависимости от ситуации, может быть несколько версий). Рисунок 1 иллюстрирует это поведение.


Рисунок 1. Хранилище версий

Теперь, когда операция чтения (иногда записи) обратится к строке, для которой установлена монопольная (X) блокировка, то конфликта блокировки не произойдет, а будет считана старая версия строки из хранилища версий, как показано на рисунке 2.


Рисунок 2. Операции чтения и хранилище версий

Как вы уже догадались, оптимистические уровни изоляции помогают уменьшить влияние блокировок, но есть несколько нюансов. Наиболее значительный из них это то, что создается дополнительная нагрузка на базу tempdb. Использование оптимистических уровней изоляции на системах с большим количеством изменений данных может привести к интенсивному использованию базы tempdb и значительному ее увеличению в объеме. Этот момент будет рассмотрен позже в этой статье.

Также появляются дополнительные накладные расходы при изменении данных и их извлечении. SQL Server приходится копировать данные в базу tempdb и поддерживать связанный список версий записей, а при чтении данных нужно этот список обойти. Это добавляет дополнительную нагрузку на процессор и систему ввода/вывода.

Наконец, использование оптимистических уровней изоляции увеличивает фрагментации индексов. При изменении строки SQL Server увеличивает размер строки на 14 байт, чтобы хранить указатель на версию. Если страница полностью заполнена, и измененная строка не помещается на страницу, то страница разбивается, что приводит к фрагментации. Эти 14 байт будут занимать место, до тех пор, пока индекс не перестроится.

Совет. При использовании оптимистических уровней изоляции рекомендуется устанавливать параметр FILLFACTOR меньше 100, чтобы оставалось свободное место на страницах индекса. Это уменьшит разбиение страниц, когда добавляется указатель на версию и увеличивается размер строки.

Оптимистические уровни изоляции транзакций

Есть два оптимистических уровня изоляции транзакций: READ COMMITTED SNAPSHOT и SNAPSHOT. Если быть точнее, то SNAPSHOT это полноценный уровень изоляции, в то время как READ COMMITTED SNAPSHOT это параметр базы даных, который влияет на поведение операций чтения с уровнем изоляции READ COMMITTED.

Рассмотрим эти уровнее подробнее.

Уровень изоляции READ COMMITTED SNAPSHOT

Оба оптимистических уровня изоляции включаются на уровне базы данных. READ COMMITTED SNAPSHOT (RCSI) включается командой ALTER DATABASE SET READ_COMMITTED_SNAPSHOT ON.

Примечание. Изменение этого параметра требует монопольного доступа к базе. Команда не выполнится, если есть другие подключения к базе. Вы можете переключить базу данных в однопользовательский режим или использовать команду ALTER DATABASE SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK AFTER X SECONDS. При этом откатятся все активные транзакции и завершаться все подключения к базе.

Как уже говорилось, RCSI изменяет поведение операций чтения с уровнем изоляции READ COMMITTED. Но при этом не влияет на операции записи.

Как видно из рисунка 3, вместо установки совмещаемой (S) блокировки, которая привела бы к конфликту с монопольной (X) блокировкой, происходит чтение старой версии данных из хранилища версий. Операции записи устанавливают монопольные (X) блокировки и блокировки обновления (U) в пессиместических уровнях изоляции, поэтому они могут блокировать друг друга. Но при этом они уже не блокируют операции чтения, как это происходит с уровнем изоляции READ UNCOMMITTED.


Рисунок 3. Поведение уровня изоляции Read Committed Snapshot

Однако, существует большая разница между уровнями изоляции READ UNCOMMITTED и READ COMMITTED SNAPSHOT. Уровень изоляции READ UNCOMMITTED не устанавливает совмещаемые (S) блокировки, при этом возможны разные проблемы несогласованности данных (грязное чтение, неповторяющееся чтение и др.). С другой стороны, уровень изоляции READ COMMITTED SNAPSHOT дает нам полную согласованность данных на уровне команды (операции). В этом случае невозможно чтение незафиксированных данных, а также данных, которые изменялись с момента начала транзакции.

Совет. Переключение базы данных в режим использования уровня изоляции READ COMMITTED SNAPSHOT может быть экстренным выходом из ситуации, когда в системе много проблем с блокировками данных. Это позволит избежать блокировок для операций чтения/записи, если чтение происходит с уровнем изоляции READ COMMITTED. Но вы должны понимать, что лишь временная мера. Необходимо обнаружить и устранить причину возникновения таких блокировок.

Уровень изоляции SNAPSHOT

SNAPSHOT является отдельным уровнем изоляции. Он должен быть явно задан в коде с помощью команды SET TRANSACTION ISOLATION LEVEL SNAPSHOT или с помощью табличного указания WITH (SNAPSHOT).

По умолчанию, использование уровня изоляции SNAPSHOT запрещено. Его необходимо включить с помощью команды ALTER DATABASE SET ALLOW_SNAPSHOT_ISOLATION ON. Эта команда не требует монопольного доступа к базе и ее можно выполнять когда есть активные пользователи.

Уровень изоляции SNAPSHOT обеспечивает согласованность данных на уровне транзакции. Транзакции будут работать с версией данными, зафиксированной на начало транзакции вне зависимости от того, сколько транзакция активна и какие изменения происходили с данными в других транзакциях в это время.

В примере, показанном на рисунке 4, Сессия 1 начинает транзакцию и читает строку в момент времени T1. В момент времени T2 Сессия 2 изменяет строку в неявной транзакции. При этом старая (оригинальная) версия строки помещается во временное хранилище базы tempdb.


Рисунок 4. Уровень изоляции Snapshot и операции чтения

Следующим этапом появляется Сессия 3, которая начинает еще одну транзакцию и читает ту же строку в момент T3. Она читает версию строки зафиксированную Сессией 2 (в момент времени T2). Сессия 4 снова меняет строку в неявной транзакции в момент времени T4. В итоге в хранилище окажутся две версии строки - одна, которая была записана между моментами T2 и T4, и другая, что была записана до момента T2. Теперь, если Сессия 3 опять прочитает те же самые данные, то будет считана версия строки из хранилища, которая была записана между моментами T2 и T4, т.к. эта версия была создана при начале транзакции Сессии 3. Аналогично, Сессия 1 будет использовать версию строки, которая существовала до момента T2. После фиксации транзакций в Сессии 1 и Сессии 3 хранилище версий запустит задачу по удалению обеих версий строк, конечно, если эти данные не нужны другим транзакциям.

Уровень изоляции SNAPSHOT предоставляет аналогичную согласованность данных, что и уровень SERIALIZABLE, но без установки блокировок, хотя может генерировать огромное количество данных в базе tempdb. Если у вас есть сессия, которая удаляет миллионы строк из таблиц, то все они будут скопированы в хранилище версий. Даже если сама инструкция выполняется с пессиместическим уровнем изоляции. Данные будут сохраняться для возможных транзакций, использующий уровень изоляции snapshot  или RCSI.

Теперь рассмотри поведение операций записи.Предположим, что Сессия 1 начинает транзакцию и обновляет одну из строк. Эта сессия удерживает монопольную (X) блокировку, как показано на рисунке 5.


Рисунок 5. Уровень изоляции snapshot и операции записи (1)

Сессия 2 хочет обновить все строки, у которых колонка Cancelled = 1. Она начинает сканирование таблицы, и когда должны быть считаться данные с orderid = 10, то читаются строки из хранилища версий, то есть последней зафиксированной версии до  начала транзакции Сессии 2. Это оригинальная версия строки (не обновленная), у нее значение колонки Cancelled = 0, поэтому Сессия 2 не обновляет ее. Сессия 2 продолжает сканирование таблицы, не устанавливая на эту строку блокировки обновления (U) и монопольные (X) блокировки.

Аналогично, Сессия 3 хочет обновить все строки, у которых Amount = 29.95. Когда она читает версию строки из хранилища версий, то определяет, что строка должна быть обновлена. При этом неважно, что Сессия 1 в это время меняет колонку Amount. "Новая версия" строки еще не зафиксирована, и ее не видят другие сессии. Сессия 3 хочет обновить строку в базе данных, пытается установить монопольную (X) блокировку, но получает отказ, потому что Сессия 1 уже установила на этой строке аналогичную блокировку.

Однако, возможен еще один случай. Давайте рассмотрим сценарий, в котором подразумевается, что согласованность данных обеспечивается уровнем изоляции snapshot.

В примере, показанном на рисунке 6, Сессия 1 начинает транзакцию и меняет одну из строк. Следующим шагом Сессия 2 начинает другую транзакцию. На самом деле, не так уж и важно, что сессия начинается раньше транзакции, при условии, что новая версия строки с OrderId = 10 не фиксируется.


Рисунок 6. Уровень изоляции snapshot и операции записи (2)

В любом случае Сессия 1 завершит транзакцию. В этот момент монопольная (X) блокировка строки снимается. Если Сессия 2 попытается прочитать эту строку, то по прежнему будет получать версию из хранилища версий, потому что это последняя зафиксированная версия при начале транзакции Сессией 2. Но если транзакция попытается изменить эту версию, то получит ошибку 3960 и транзакция откатится. Пример ошибки показан на рисунке 7.


Рисунок 7. Ошибка 3960

Совет. Ошибку 3960 можно обрабатывать с помощью операторов TRY/CATCH.

Не нужно забывать об этой проблеме, когда вы обновляете данные с уровнем изоляции SNAPSHOT в системе, в которой данные часто меняются. Один из возможных обходных путей, это использовать READCOMMITTED или другой пессиместический уровень изоляции с помощью табличных указаний операции обновления, как показано в листинге 1.

Листинг 1. Предотвращение ошибки 3960 с помощью табличного указания READCOMMITTED

set transaction isolation level snapshot
	begin tran
	select count(*) from Delivery.Drivers
	update Delivery.Orders with (readcommitted)
	set Cancelled = 1
	where OrderId = 10
rollback

Уровень изоляции SNAPSHOT  может изменить поведение системы. Предположим, мы имеем таблицу dbo.Colors, в которой две строки: Black и White. Код создания таблицы приведен в листинге 2.

Листинг 2. Поведение операции обновления с уровнем изоляции SNAPSHOT: Создание таблицы

create table dbo.Colors
(
	Id int not null,
	Color char(5) not null
)
go
insert into dbo.Colors(Id, Color) values(1,'Black'),(2,'White')

Теперь запустим две сессии одновременно. В первой сессии мы запустим обновление, которое установит в колонке Color цвет White для строк, в которых текущее значение равно Black. Код показан в листинге 3.

Листинг 3. Поведение операции обновления с уровнем изоляции SNAPSHOT: Код Сессии 1

begin tran
	update dbo.Colors
	set Color = 'White'
	where Color = 'Black'
commit

Во второй сессии, выполним противоположные операции, как показано в листинге 4.

Листинг 4. Поведение операции обновления с уровнем изоляции SNAPSHOT: Код Сессии 2

begin tran
	update dbo.Colors
	set Color = 'Black'
	where Color = 'White'
commit

Давайте запустим обе сессии одновременно с уровнем изоляции READ COMMITTED или любым другим пессиместическим уровнем. На первом шаге, как показано на рисунке 8, у нас есть конкуренция за ресурс. Одна из сессий установит монопольную (X) блокировку на строку и обновит ее. В тоже время другая сессия не сможет установить блокировку обновления (U) на эту же строку.


Рисунок 8. Пессимистические уровни изоляции: Шаг 1

Когда первая сессия зафиксирует транзакцию, то снимет монопольную (X) блокировку. В таблице окажутся две записи с одинаковым значением в колонке Color, потому что первая сессия уже произвела изменения (как показано на рисунке 9). В итоге в таблице всегда окажутся две одинаковые строки (Black или White), в зависимости от того, какая сессия первой успеет установить блокировку.


Рисунок 9. Пессимистические уровни изоляции: Шаг 2

С уровнем изоляции snapshot все работает немного по-другому (рисунок 10). Когда сессия обновит строку, то она помещает старую версию в хранилище версий. Вторая сессия при этом будет считывать строки из хранилища. В результате цвета поменяются местами.


Рисунок 10. Уровень изоляции snapshot

Вы должны быть в курсе, как работают уровни изоляции RSCI и SNASPSHOT, особенно если имеется код, который работает с блокировками. Например, имеется триггер, реализующий ссылочную целостность. Это может быть триггер ON DELETE, удаляющий данные из связанных таблиц. Этот триггер использует операцию select, чтобы проверить, имеются ли строки, связанные с удаляемой строкой. Используя оптимистические уровни изоляции можно пропустить строки, которые были изменены после начала транзакции. В этом случае правильнее использовать пессиместические уровни изоляции, например, READCOMMITTED.

Примечание. SQL Server использует уровень изоляции READ COMMITTED при проверке ограничения внешнего ключа. Это означает, что вы можете получить блокировку между операциями записи и чтения даже с оптимистическими уровнями изоляции, особенно если нет индексов ссылающихся столбцов, что приводит к сканированию таблицы.

Хранилище версий

Как уже говорилось ранее, необходимо следить за тем, как оптимистические уровни изоляции влияют на систему. Для примера, выполните следующий код, который удаляет все строки из таблицы Delivery.Orders (листинг 5).

Листинг 5. Удаление всех заказов из таблицы

set transaction isolation level read uncommitted
begin tran
	delete from Delivery.Orders
commit

Стоит отметить, что сессия запущена в режиме READ UNCOMMITTED. Даже если нет других транзакций, использующих оптимистические уровни изоляции, есть вероятность, что они возникнут перед фиксированием транзакции. В результате SQL Server должен поддерживать хранилище версий в не зависимости от того, запущены ли другие транзакции, использующие оптимистические уровни изоляции, или нет.

На рисунке 11 показано свободное место tempdb и размер хранилища версий. Видно, что после начала операции удаления размер хранилища версий растет, занимая все пространство tempdb.


Рисунок 11. Свободное место tempdb и размер хранилища версий

На рисунке 12 можно увидеть показатели формирования записей в хранилище версий и его очистки.

По умолчанию задача очистки выполняется раз в минуту, а также перед автоматическим увеличением размера базы tempdb.


Рисунок 12. Свободное место tempdb и размер хранилища версий

Есть еще 3 счетчика производительности, связанных с оптимистическими уровнями изоляции:

  1. Snapshot Transactions. Счетчик показывает количество активных транзакций, использующих уровень изоляции snapshot.
  2. Update Conflict Ratio. Показывает соотношение количества конфликтов обновления к общему количеству операций обновления с уровней изоляции snapshot.
  3. Longest Transaction Running Time. Показывает длительность в секундах самой старой активной транзакции, использующей версии строк.

Существует несколько динамических представлений (Dynamic Management Views - DMVs), которые могут быть полезны при решении вопросов, связанных с хранилищем версий и транзакций в целом. Подробнее на http://technet.microsoft.com/en-us/library/ms178621.aspx (Transaction Related Dynamic Management Views and Functions section).

Резюме

SQL Server в оптимистических уровнях изоляции использует версионирование строк. Транзакции не блокируются из-за несовместимости разделяемых (S) блокировок с блокировками обновления (U) и монопольными (X) блокировками, а используют "старые", зафиксированные ранее версии строк. Существуют два оптимистических уровня изоляции транзакции: READ COMMITTED SNAPSHOT и SNAPSHOT.

READ COMMITTED SNAPSHOT - это параметр базы данных, который влияет на поведение операций чтения, использующих режим READ COMMITTED. При этом он не влияет на операции записи - по прежнему сохраняются несовместимости блокировок (U)/(U) и (U)/(X). READ COMMITTED SNAPSHOT не требует изменений в код и может быть использован как "волшебная палочка", если в системе наблюдаются конфликты блокировок.

READ COMMITTED SNAPSHOT обеспечивает согласованность данных на момент выполнения операции, т.е. запрос читает данные, которые были зафиксированы на момент, когда запрос начался.

Уровень изоляции SNAPSHOT - отдельный уровень изоляции транзакций, который нужно явно указывать в коде. Этот уровень обеспечивать согласованность данных на уровне транзакции. Это значит, что запрос обращается к версии данных, которая была зафиксирована на момент начала транзакции.

При использовании уровня изоляции SNAPSHOT операции записи не блокируют друг друга, за исключением тех случаев, когда они меняют одни и те же строки. Это приводит либо к блокировке, либо к ошибке 3960.

Оптимистические уровни изоляции позволяют уменьшить блокировки, но при этом они могут значительно увеличить нагрузку на базу tempdb. Особенно в OLTP-системах, где данные постоянно меняются. Необходимо принять во внимание все возможные варианты их использования на стадии реализации, провести оптимизацию tempdb, и провести мониторинг системы, чтобы убедить, что нет лишнего и ненужного обращения к хранилищу версий.

--------------------------------
При написании статьи использовались материалы из книги Дмитрия Короткевича «Pro SQL Server Internals» (2014 г.)

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Darklight 21 01.12.17 12:14 Сейчас в теме
Хороший цикл статей, в конце статьи не хватает ссылок на другие статьи цикла.
И хорошо бы раскрыть аналогичные темы (цикла статей), но для PostrgreSQL
pragmatic; +1 Ответить
2. Dach 292 04.12.19 11:33 Сейчас в теме
"При использовании уровня изоляции SNAPSHOT операции записи не блокируют друг друга, за исключением тех случаев, когда они меняют одни и те же строки. Это приводит либо к блокировке, либо к ошибке 3960"

Странная фраза. Непересекающиеся наборы строк и так друг друга не блокируют.

Я из Вашей статьи про SNAPSHOT понял следующее: убирается несовместимость Х-блокировок. То есть, если запись какого-то набора строк привела к наложению Х-блокировки в одном сеансе, в другом сеансе другие строки смогут записаться, если они отличны от первых.

Не поленился и провел эксперимент. Включил в своей базе снапшот. Также у меня в базе включен RCSI. Затем в первом сеансе в транзакции записываю большой набор строк (600 тыс). Это привело к наложению Х-блокировки на всю таблицу (у меня периодический регистр сведений, цены номенклатуры). Во втором сеансе пытаюсь записать другой набор строк с другим периодом, то есть первый и второй наборы точно не пересекаются. Транзакция второго сеанса отваливается с ошибкой ожидания на транзакционной блокировке. Точно также, как это происходит в чистом RCSI.

Таким образом, непонятно, что Вы имеет ввиду, когда говорите что в снапшот "записи друг друга не блокируют".

Расшифруйте подробнее, плз. Какой натурный тест можно выполнить, чтобы воспроизвести ваши слова?

Кстати, с точки зрения чтения, при включении снапшота дополнительно к RCSI - ничего не поменялось. Запрос внутри транзакции по прежнему получает данные на момент выполнения самого запроса, а не на момент начала транзакции, как в "чистом" снапшот.
Оставьте свое сообщение

См. также

Сказ о том, как online_analyze INSERT "удлинял"

Статья Системный администратор Нет файла PostgreSQL Бесплатно (free) Статистика базы данных Администрирование СУБД

Немного о тонкостях работы модуля online_analyze для PostgreSQL. Опус для тех, у кого, как и у меня, не всегда хватает времени на то, чтобы разобраться, как это работает, и поэтому бывает так, что следуешь рекомендациям из сети и пользуешься методом "копипаста", пока не прижмет.

10.02.2020    507    Sloth    0       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Ошибка Frontol 5, 6 при работе с базой (internal gds software consistency check)

Статья Системный администратор Нет файла Розничная и сетевая торговля (FMCG) Windows Бесплатно (free) Тестирование и исправление

При продаже товара выскакивает критическая ошибка "Ошибка работы с базой! Internal gds software consistency check (can't continue after bugcheck)" и работа базы прекращается, любые повторные попытки войти в базу приводят к огромным количествам не понятных ошибок, сбоев, зависаний и вообще может выдать что база не обнаружена (перемещена или удалена). При попытка остановить/перезапустить службу Frontol она вообще зависала и помогала только перезагрузка терминала

23.01.2020    809    ClickUp    2       

Организация резервного копирования файлов с использованием rclone

Статья Системный администратор Нет файла Россия Бесплатно (free) Архивирование (backup)

Описание использования достаточно универсальной утилиты по синхронизации файлов.

21.01.2020    1350    malikov_pro    0       

Базовый курс по управлению ИТ-проектами. Курс проходит с 26 февраля по 22 апреля 2020 года. Промо

Отличительная черта курса - органичное сочетание трех вещей: 1.Теория проектного управления (PMI®+Agile Alliance+Российские ГОСТ+Методологии от 1С); 2. Опыт внедрения продуктов 1С (опыт франчайзи и успешных компаний + тренды Infostart Event и Agile Days); 3. Разбор реальных проблем и рекомендации экспертов по проектам слушателей. Мы будем фиксироваться на тех инструментах, которые реально оказываются полезными в практике руководителей проектов внедрения. Ведущая курса - Мария Темчина.

от 11000 рублей

Самые распространенные заблуждения об индексах в мире 1С

Статья Системный администратор Программист Нет файла Бесплатно (free) Администрирование данных 1С Администрирование СУБД

"Магия" индексов привела к множеству заблуждений об их работе. Попробуем развеять некоторые из них в контексте 1С.

28.11.2019    12234    YPermitin    44       

INFOSTART MEETUP Kazan. 13 марта 2020 г. Промо

Инфостарт продолжает путешествие по России. Следующая остановка - Казань. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Ждем всех: докладчиков и участников! Стоимость участия - 5 500 рублей. Цена действительна до 30.01.2020

5 500

Установка 1С Сервера взаимодействия на Linux

Статья Системный администратор Нет файла Россия Linux Бесплатно (free) Администрирование данных 1С

В статье описан пошаговый процесс установки Сервера взаимодействия 1C на Linux CentOS 7.6.

06.09.2019    4571    KlSergey    14       

1С + PostgreSQL + SSD: Куда уходит ресурс хост-записей?

Статья Системный администратор Нет файла Россия Windows Бесплатно (free) Администрирование данных 1С

Работа PostgreSQL на SSD начиная с 10 версии, резко увеличивает нагрузку на ресурс SSD, даже когда к базе нет коннектов.

06.09.2019    5709    2tvad    6       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

О Unit-тестах замолвите слово.Часть 1

Статья Программист Нет файла Бесплатно (free) Тестирование и исправление

Последнее время в контексте 1С очень много говорят о функциональном тестировании, BDD. А Unit-тестирование обходят стороной. Попробуем разобраться, для чего Unit-тестирование применять стоит.

22.07.2019    4160    Сурикат    27       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Обновление PostgreSQL на Windows

Статья Системный администратор Нет файла Windows Бесплатно (free) Администрирование данных 1С

Указана последовательность действий при обновлении PostgreSQL на примере Windows. Также описаны некоторые особенности.

11.06.2019    8888    extalionos    4       

Сдача регламентированной отчетности из программ 1С Промо

Сдача регламентированной отчетности из программ "1С" во все контролирующие органы без выгрузок и загрузок в другие программы. Для групп компаний действуют специальные предложения.

от 1500 руб.

Регулярная перезагрузка Сервера 1С с чисткой кэша

Статья Системный администратор Нет файла Windows Бесплатно (free) Администрирование данных 1С Стартеры 1С

Батник для перезагрузки агента сервера 1С и чистки серверного кэша и сеансовых данных. Для регулярной перезагрузки вставляем в планировщик заданий Windows.

17.05.2019    7872    alfir70    19       

Способы проверки доступности TCP-портов

Статья Системный администратор Нет файла Windows Бесплатно (free) Администрирование данных 1С

Как проверить доступен ли порт сервера? Или внешний веб-сервис? Приведены несколько способов для использования на Windows-системах.

12.05.2019    14585    -vito-    9       

Открыто голосование за доклады на INFOSTART MEETUP Krasnodar Промо

Выбирайте и голосуйте за самые интересные доклады, лучшие из них попадут в окончательную программу митапа. Голосование продлится до 30 января 2020 года.

PID процесса в сборщиках PerfMon

Статья Системный администратор Нет файла Россия Windows Бесплатно (free) Администрирование данных 1С

Одним из неудобств при работе с PerfMon является то, что одноименные процессы именуются по-порядку, с добавлением суффикса #n к имени процесса. Описана настройка, позволяющая устранить этот недостаток.

06.04.2019    3433    -vito-    9       

Введение в лицензирование ПО Microsoft

Статья Системный администратор Пользователь Нет файла Россия Бесплатно (free) Администрирование данных 1С

Поговорим о принципах лицензирования программных продуктов Microsoft.

19.03.2019    14190    accounting_cons    37       

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

Данный онлайн-курс предусматривает углубленное изучение языка запросов и возможностей системы компоновки данных, которые понадобятся при разработке отчетов, работающих на платформе “1С:Предприятие” в рамках различных прикладных решений. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей различных прикладных решений, которые используют в своей работе отчеты разного назначения.

6500 рублей

Управление ИТ-проектами. Модуль 2: продвинутый онлайн-курс по классическим методам управления проектами. Вебинары проходят с 12 марта по 11 июня 2020 года. Промо

Продвинутый онлайн-курс по классическому управлению ИТ-проектами позволит слушателям освоить инструменты из PMBoK® и 1С:Технологии корпоративного внедрения и научиться их применять для проектов любого масштаба. Курс включает в себя 12 вебинаров и 12 видеолекции, разбор кейсов и рекомендации экспертов по проектам слушателей. Ведущая курса - Мария Темчина.

от 13000 рублей

Собираем бюджетный игровой компьютер core i7 для Программиста 1С из всякого хлама за 20 тысяч рублей

Статья Системный администратор Программист Нет файла Бесплатно (free) Администрирование данных 1С

В продолжение статьи со сборкой бюджетного сервера так же решил написать про свой комп. С бюджетом 20 тыс. рублей.

29.01.2019    8650    ogidni    126       

​​​​​​​CorelDRAW Graphics Suite 2019 Промо

CorelDRAW – пакет профессиональных инструментов для редактирования фотографий, разработки дизайна, создания макетов страниц и векторных иллюстраций

Собираем бюджетный б/у сервер 1С:Предприятия 8.3 на 250+ Пользователей за 100 тыс. рублей

Статья Системный администратор Нет файла Бесплатно (free) Администрирование данных 1С

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

24.01.2019    15034    ogidni    137       

Установка Windows без загрузочной флэшки и загрузочного DVD-диска

Статья Системный администратор Нет файла Windows Бесплатно (free) Администрирование данных 1С

Что делать, если нужно установить Windows на ПЭВМ со старой системной платой, а под рукой нет dvd-привода, а с флэшки загрузка невозможна или идет очень медленно.

09.01.2019    5244    independ    5       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Семь рекомендуемых бесплатных курсов Microsoft для ИТ-администраторов

Статья Системный администратор Нет файла Бесплатно (free) Администрирование данных 1С

Образовательный портал «Нетология» предлагает вам пройти семь онлайн-курсов по облачным сервисам Microsoft бесплатно и получить сертификат об их завершении. Все курсы основаны на самых популярных сценариях использования облачных технологий в компаниях малого и среднего бизнеса. Разберемся, что же эти учебные программы предлагают.

28.12.2018    12545    VKuser24342747    1       

Ректальное администрирование: Основы для практикующих системных АДминистраторов

Статья Системный администратор Нет файла Бесплатно (free) Администрирование данных 1С

Одной из самых популярных и зарекомендовавших себя методологий системного администрирования является так называемое ректальное. Редкий случай сопровождения и обслуживания информационных систем, инфраструктуры организации обходится без его использования. Зачастую без знания данной методологии сисадминам даже бывает сложно найти работу в сфере ИТ, потому что работодатели, особенно всякие аутсорсинговые ИТ фирмы, в основном отдают предпочтение классическим, зарекомендовавшим себя методикам, а не новомодным заграничным веяниям: практикам ITIL, нормальным ITSM и прочей ерунде.

22.12.2018    12888    Jokemas    25       

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, обеспечивающих обмен данными между различными прикладными 1С-решениями и взаимодействие с другими информационными системами. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”.

5500 рублей

Исследование использования СУБД (MS SQL, PostgreSQL, Oracle, IBM DB2) с отраслевыми конфигурациями на платформе 1С:Предприятие

Исследование no Нет файла Россия Бесплатно (free) Администрирование данных 1С

Инфостарт подводит предварительные итоги третьего опроса по системам управления БД, которые используют участники Сообщества для автоматизации на платформе 1С, и анализирует тенденции рынка.

20.12.2018    8295    Kochergov    13       

1С Батл: PostgreSQL 9,10 vs MS SQL 2016

Статья Системный администратор Программист Нет файла Бесплатно (free) Администрирование данных 1С

PostgreSQL не так давно появился на российском рынке, поэтому у многих специалистов появляются сомнения, насколько удобно с ним работать, учитывая специфику 1С. Антон Дорошкевич, руководитель IT-отдела и направления оптимизации 1С компании «ИнфоСофт» (г. Новосибирск), рассказал о своем опыте применения этой СУБД. Тема его доклада звучала провокационно: «1С-батл между MS SQL 2016 и PostgreSQL версии 9 и версии 10».

18.12.2018    41928    a.doroshkevich    153