Sql в 1с что это
Перейти к содержимому

Sql в 1с что это

  • автор:

Когда переводить базу данных 1С на SQL?

Как известно программа 1С имеет две основных архитектурных реализации касательно хранения данных: файловая версия и версия на СУБД. Все знают, что файловая база подходит для работы нескольких пользователей малого предприятия, при условии что сама база также не большая, а для средних и крупных предприятий без СУБД не обойтись. Также очень типичны случаи, когда ведение учета начинается в небольшой файловой базе, а далее она начинает стремительно расти – увеличивается количество бизнес-процессов, которые автоматизируют данной программой, в следствии чего увеличивается количество пользователей, которые в ней работает, а также сама база. Со временем база начинает притормаживать и наступаем момент когда необходимо переходить на СУБД. Как же определить тот момент, когда стоит задуматься о переходе на SQL? Ведь сам переход и подготовка для него инфраструктуры требует немало времени, а также денежных затрат.

Предпосылки, которые заставляют задуматься о переходе на СУБД следующие:

  • Блокировки. Основной и самой важной предпосылкой перевода 1С на СУБД есть возникновение ошибок блокировки данных. Дело в том, что при работе с файловой базой таблицы с данными хранятся в файлах, и нет возможности параллельного доступа к ним нескольких пользователей в один момент времени.

Если несколько пользователей обратились к данным, хранящимся в одной таблице — то данные будут доступны только первому пользователю, а всем следующим будет выдано сообщение «Ошибка блокировки данных».

Если в базе работает от 1 до 5 пользователей, то данная проблема практически не заметна, так как вероятность того, что в один момент времени к одной и той же таблице обратятся несколько пользователей невелика, но с каждым дополнительным пользователем эта вероятность возрастет.

Это что касается симптомов, которые могут указать на необходимость перехода.

Теоретически момент перехода возможно просчитать заранее. Производительность 1С зависит от 3 ключевых факторов:

  • количества пользователей;
  • типа конфигурации;
  • объема базы.

Основным показателем, который влияет на производительность базы 1С является количество пользователей работающих с базой. Файловая база при количестве пользователей от 1 до 5 работает значительно быстрее чем СУБД и в таком случаи перевод на SQL повлечет не только дополнительные затраты, но и ухудшение работы системы.

При количестве пользователей порядка 5-10 работа файловой базы отличается от работы СУБД не значительно, после 10-15 пользователей производительность файловой базы очень сильно падает и если количество пользователей довести до 20-25 с базой практически не возможно будет работать по причине блокировок и очень сильному замедлению работы. Ниже приведены графики зависимости производительности 1С от количества пользователей для разных конфигураций.

Рисунок 1 — Схема работы с зашифрованной базой данных

Также весомой характеристикой базы есть ее размер, в случае, если файловая база занимает более 1 Гб данных, ее целесообразно перевести на СУБД.

Записки IT специалиста

Установка и настройка MS SQL Server для 1С:Предприятие

  • Автор: Уваров А.С.
  • 17.01.2014

1cv8-mssql-000.jpgТему установки MS SQL Server обычно обходят стороной. Действительно, трудно не установить эту СУБД, даже делая это в первый раз, столь же трудно не запустить в связке с ней Сервер 1С:Предприятия. Однако есть ряд неочевидных тонкостей, которые способны существенно отравить жизнь администратору, о чем мы сегодня и расскажем.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

MS SQL Server занимает первое место по количеству внедрений в связке с 1С:Предприятием, во многом это объясняется низким порогом вхождения, осилить данную связку вполне способен человек без опыта, сугубо по методу Next — Next — Finish. И, что самое интересное, все это будет работать. Скажем больше, в подавляющем большинстве случаев настройки SQL-сервера по умолчанию более чем достаточно для обеспечения производительной работы сервера 1С:Предприятия и трогать их не только не нужно, но даже вредно.

Однако есть другая категория настроек, которая отвечает за расположение и выделение физических ресурсов и которую обычно тоже никто не трогает до тех пор, пока не начнет испытывать проблемы с производительностью.

Прежде всего следует вспомнить про системную базу tempdb, которая активно используется 1С для хранения временных таблиц и промежуточных результатов. Причем она используется сразу всеми базами 1С, работающими на сервере. А так как по умолчанию она располагается в папке установки SQL-сервера, т.е. на системном диске, то при увеличении нагрузки именно tempdb становится бутылочным горлышком для всего сервера. Очень часто это приводит к ситуациям: купили быстрые HDD / SSD, дисковых ресурсов хватает, а 1С тормозит, что способно вызвать у начинающих администраторов серьезные затруднения.

Второй момент. Кодировка сравнения tempdb должна совпадать с кодировкой сравнения информационных баз, иначе это может в ряде случаев привести к неожиданным результатам, вплоть до серьезных ошибок в расчетах.

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

Подготовка к установке

Еще на стадии планирования следует уделить некоторое внимание дисковой подсистеме. Для хранения пользовательских баз данных и системной базы tempdb следует выделить отдельный раздел, а еще лучше дисковый массив из быстрых дисков или SSD. В нагруженных системах имеет смысл разнести базы данных и журналы транзакций по разным дисковым массивам. Также рекомендуется отформатировать эти разделы с размером кластера в 64 КБ.

1cv83-mssql-001.png

Установка MS SQL Server для работы с 1С:Предприятие

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

1cv83-mssql-002.png

На закладке Учетные записи служб обязательно установите флаг Предоставить право на выполнение задач обслуживания тома службе ядра СУБД SQL Server.

1cv83-mssql-005.png

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

1cv83-mssql-003.png

В Конфигурации сервера укажите Смешанный режим проверки подлинности и задайте пароль суперпользователю SQL — sa. Также укажите ниже администраторов данного экземпляра SQL-сервера, как минимум следует добавить текущего пользователя, но если администрировать данный экземпляр будут другие ваши коллеги, то имеет смысл сразу их указать.

1cv83-mssql-004.png

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

1cv83-mssql-006.png

Современные версии MS SQL содержат отдельную закладку TempDB, для настройки одноименной базы, в предыдущих версиях данных настроек нет и о том, как настроить данную базу будет рассказано ниже. Здесь же мы выставляем для базы: количество файлов — 4, начальный размер — от 1 ГБ до 10 ГБ, авторасширение — 512 МБ, аналогичный размер и авторасширение устанавливается для файла журнала. Также не забываем проконтролировать размещение TempDB на отдельном разделе/диске.

1cv83-mssql-007.png

Остальные настройки можно оставить по умолчанию и завершить установку.

Для управления сервером СУБД следует скачать и установить SQL Server Management Studio (SSMS), ее можно установить как на сервер, так и на компьютер администратора, чтобы управлять с него всеми доступными SQL-серверами. Никаких особенностей в установке SSMS нет.

Настройка операционной системы

Если у вас имеется уже установленный экземпляр MS SQL, либо вы не выполнили всех рекомендаций по установке, то следует проверить ряд настроек операционной системы. Запустим редактор локальной политики безопасности secpol.msc и перейдем в раздел Локальные политики — Назначение прав пользователя. Откроем политику Выполнение задач по обслуживанию томов и убедимся, что в списке пользователей присутствует учетная запись от имени которой работает SQL Server — NT SERVICE\MSSQLSERVER.

1cv83-mssql-008.png

Обратите внимание, что указанного пользователя нельзя выбрать из списка, поэтому просто введите указанное выше имя в соответствующем окне.

1cv83-mssql-009.png

Если ваш экземпляр MS SQL Server установлен отдельно от Сервера 1С:Предприятие, то выполните аналогичную настроку для политики Блокировка страниц в памяти.

Настройка MS SQL Server для работы с 1С:Предприятие

Если вы имеете дело с уже установленным экземпляром SQL-сервера, убедитесь, что кодировка сравнения Cyrillic_General_CI_AS, для этого откройте Managment Studio, выберите необходимый экземпляр SQL-сервера и щелкнув на нем правой кнопкой мыши перейдите к Свойствам:

1cv83-mssql-010.png

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

Затем перейдите к закладке Память, за основу для расчетов принимается объем выделенного SQL-серверу размера памяти (RAM). Обычно это объем памяти сервера за вычетом ОЗУ для ОС и иных служб, например, Сервера 1С:Предприятие. Для сервера с объемом ОЗУ в 32 ГБ мы будем исходить из доступного объема в 24 ГБ, выделив 8 ГБ для ОС и сервера 1С. Но данные соотношения не являются эталоном и в вашем случае это могут быть иные числа.

Для расчета минимального объема памяти применяется формула:

Для максимального применяется полный размер RAM, за вычетом 1 ГБ на каждые выделенные 16 ГБ ОЗУ (все объемы указываются в МБ):

1cv83-mssql-011.png

В разделе Параметры базы данных можно проконтролировать места хранения пользовательских баз и журналов, а также изменить их при необходимости. Все изменения будут применены только к вновь создаваемым базам данных, уже существующие БД потребуется перенести в новое расположение вручную (если в этом есть необходимость).

1cv83-mssql-012.png

В разделе Дополнительно — Параллелизм установите параметр:

1cv83-mssql-013.png

Следующая настройка будет связана с безопасностью. Для подключения 1С к серверу чаще всего используется учетная запись sa, что, мягко говоря, небезопасно, так как дает вошедшему под ней полный доступ к SQL-серверу. Учитывая, что администрированием баз 1С часто занимаются сторонние специалисты, то имеет смысл создать для них отдельную учетную запись.

Для этого раскройте Безопасность — Имена для входа и создайте новое имя (учетную запись), укажите проверку подлинности SQL-сервер и задайте пароль.

1cv83-mssql-014.png

Затем перейдите на закладку Роли сервера и разрешите dbcreator, processadmin и public.

1cv83-mssql-015.png

После чего используйте для подключения к SQL-серверу из 1С именно эту учетную запись.

Все создаваемые базы данных создаются на основе служебной базы model и к ним применяются все настройки этой БД, поэтому перейдем в Базы данных — Служебные базы данных и откроем свойства базы model. В разделе Файлы укажите значения начального размера базы от 1 ГБ до 10 ГБ, начальный размер журнала транзакций от 1 ГБ до 2 ГБ и авторасширение в 512 МБ. Выбирая начальный размер базы, нужно исходить из соображений чтобы размер файла превосходил загружаемый размер образа информационной базы 1С.

1cv83-mssql-016.png

В разделе Параметры укажите Модель восстановления в соответствии с применяемой политикой резервного копирования и установите параметр:

1cv83-mssql-017.png

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

После внесения всех изменений в конфигурацию службу SQL сервера потребуется перезапустить.

Настройка сетевых протоколов

Для настройки сетевых протоколов откроем Диспетчер конфигурации SQL Server и перейдем в раздел Сетевая конфигурация SQL Server — Сетевые протоколы для MSSQLSERVER, где MSSQLSERVER — имя вашего экземпляра, и установим следующие настройки:

1cv83-mssql-018.png

  • Общая память (Shared Memory) — Включено
  • Именованные каналы (Named pipes) — Отключен
  • TCP/IP — Включено

Настройка базы tempdb

В предыдущих версиях MS SQL Server нет возможности настроить параметры базы tempdb при установке, также вы могли выполнить установку со значениями по умолчанию, либо вам достался уже установленный экземпляр, в этих случаях нужно произвести дополнительную настройку. Откроем Managment Studio и перейдем в Базы данных — Служебные базы данных в свойства базы tempdb. В разделе Файлы разобьем базу на четыре файла данных и установим для них начальный размер от 1ГБ до 10 ГБ, но не менее текущего размера файла, авторасширение — 512 МБ. Аналогичные настройки установим и для файла журнала.

1cv83-mssql-019.png

Перенос базы tempdb

Довольно часто встречаются ситуации, когда tempdb требуется перенести в другое место. Например, сервер был установлен с параметрами по умолчанию и tempdb находится на системном разделе, или вы приобрели SSD и хотите перенести туда не только базы, но и tempdb (что является правильным решением). Также при большой нагрузке на tempdb его рекомендуется выносить на отдельный диск.

Для того, чтобы изменить место расположения файла tempdb откройте Managment Studio, выберите Создать запрос и в открывшемся окне введите следующий текст, где E:\NEW_FOLDER — новое расположение для базы:

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

Создав запрос нажмите Выполнить, после выполнения запроса перезапустите SQL-сервер, файлы базы и лога tempdb будут созданы в новом месте, файлы по старому расположению следует удалить вручную.

1cv83-mssql-020.png

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал

Micrsoft SQL Server для 1С

SQL Server для 1С Бухгалтерии

Почему 1C “тормозит” или что такое SQL сервер?

Введение
Данная статья поможет понять многим из разработчиков и пользователей, нужен ли им SQL-продукт или нет. И для чего собственно он нужен.

Итак, первое, что необходимо знать, понять и запомнить: SQL-системы не ускоряют выполнения выборок и печать отчетов. Если Вы рассчитываете, что после установки 1C-Торговли на SQL, Скорость работы системы врзрастет в разы, Вы глубоко заблуждаетесь. Быстрее она работать не станет. В связи с этим говорить о том, что “…SQL-Торговля — это тормозная система…” абсолютно не имеют смысла.

Теория

Несколько лет назад одно компьютерное издание провело сравнительный анализ (в частности и быстродействия) систем управления базами данных ( сокращенно СУБД), построенных на основе обычных файл серверов и с использованием клиент-серверных (SQL) систем. Естественно, условия испытаний по возможности были нивелированы, т.е. применялись одинаковые объемы баз данных, одинаковые их структуры, один и тот же компьютер в качестве сервера, одинаковое количество рабочих станций и т.д.

Если мне не изменяет память, из клиент-серверных систем были испытаны Oracle, Interbase, Informix, Gupta и самый дешевый в то время Watcom SQL Server. Во всех случаях, средняя скорость выполнения запросов в SQL-системах была ниже, чем у файл-серверной системы (сейчас об этом эффекте можно прочесть в любой серьезной книге по SQL ). Испытатели не были удивлены полученным эффектом, поскольку были людьми грамотными и понимали причину такого поведения SQL-систем при заданных условиях эксперимента. Ведь задачей эксперимента было сравнение быстродействия двух видов систем и поэтому были выбраны условия, позволяющие произвести это сравнение.

В частности для тестов использовались базы данных объемом 1.5 — 2 Гигабайта. Ведь если бы исследователи взялись проводить испытания, используя базы данных на порядок большего размера, то им просто не с чем было бы сравнивать SQL-варианты, поскольку обычная файл-серверная система на таких объемах информации просто заткнулась бы. Вот в этом то и состоит основное отличие и достоинство клиент-серверных систем: они будут работать со вполне приемлемой скоростью с базами данных такого объема, с которыми файл-серверная система работать просто не сможет (”не сможет” в том смысле, что ее функциональность, в том числе и быстродействие, станут неприемлемы для коммерческих приложений).

Сетевой вариант 1С программы, файл-серверная база SQL

Рассмотрим обычный сетевой вариант реализации Торговли 1С. Она работает на файл-серверном принципе, это значит что обработка данных производится вычислительными мощностями данной рабочей станции, а сервер является ничем ином как дисковое устройство с хранящимся на нем файлом базы данных. Объясню, что при выполнении задачи, например формирование отчета, фрагмент базы данных (из которого будут отбираться данные для этого отчета) по сети передается на рабочую станцию (запросившую формирование отчета) и обрабатывается непосредственно процессором этой рабочей станции.

Быстродействие такой системы напрямую зависит от скорости жесткого диска диска сервера, скорости передачи данных по сети (канал локальной сети 10 или 100 мегабит), тактовой частоты процессора рабочей станции, размера кеша данного процессора, объема оперативной памяти, в общем всех «железных» факторов от которых зависит производительность компьютера. Центральный процессор сервера в таком случае, играет уже роль второстепенную и просто обеспечивает передачу потока данных с диска в сетевой канал и обратно. Суть в том что, практически вся база данных перегоняется по сети на рабочую станцию где она и обрабатывается.

Если несколько пользователей запускают одновременно выполняют формирование отчетов, эти компьютеры начинают качать базу к себе через сеть, и сервер не успевает всем одновременно предоставить быструю передачу данных, это и становиться причиной притормаживания работы всей 1с системы в целом. Менее емкие операции, как например ввод нового документа, или просто просмотр ранее созданных документов, то объем передаваемых от сервера данных значительно ниже, хотя в реальности ввод нового документа сопровождается поиском клиента в справочнике, вычислением задолженности клиента и прочее, что также вызывает повышение передаваемого трафика от сервера к клиенту. Следует помнить о необходимости синхронизации доступа рабочих станций к данным.

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

Скорость работы системы файл-серверной базы, напрямую зависит от обрабатываемой базы данных. Заметное снижение скорости работы начинает проявляться, когда размер базы данных достигает 300 — 500 Мб, а за отметкой 1 Гигабайт работать уже практически невозможно. Цифры взяты приблизительные, и зависят от производительности рабочих станций, используемого программного обеспечения и формата базы данных. К примеру, при использовании формата таблиц базы данных Paradox замедление работы наступает значительно позже, чем при использовании формата DBase. Когда эти тормоза уже мешают нормально работать, пользователи системы идут на различные хитрости: закрывают старую базу и открывают новую каждый квартал, пытаются удалить старые данные (почистить базу) и прочее. Однако любой бухгалтер скажет Вам, что данные нужны ему не за квартал, а минимум за год и предпочтительно в динамике, а не в виде отдельных кусков. Ведь долги клиентов иногда тянутся годами.

Временным решением проблемы в такой ситуации может быть увеличение пропускной способности сети за счет установки 1 гигабитной сети вместо 100 мегабитной и интеллектуальных маршрутизаторов вместо тупых хабов. Однако, маршрутизаторы чрезвычайно дороги, а гигабитная сеть даст повышение пропускной способности лишь в 2.5 — 3 раза (а не в 10 раз, как этого бы хотелось). Да смысла увеличивать пропускную способность сети нет, когда жесткий диск сервера работает на пределе своей производительности?

Через пол-года Ваша база данных вырастет еще на 300-500Мб и система опять начнет задыхаться, пустив по ветру все вложенные в модернизацию денежки. Не следует забывать и еще об одной значительной детали. Это регулярное архивирование базы данных. Знаете ли вы, что за время пока будет архивироваться база данных объемом 1 — 1.5 Гб, пообедать, посмотреть кино и поругаться с начальником. А архивация должна производиться ежедневно. При этом во время архивирования базы, ни один из пользователей работать в программе не сможет. Как тут быть? Можно настроить резервирование по расписанию, средствами WIndows, или установить программу, которая будет делать архив по ночам, когда сервер простаивает, и в базе никто не работает. К примеру есть хорошая бесплатная программа архивации Cobian Backup.

Серверный вариант 1С базы (с использованием СУБД)

Теперь рассмотрим принцип работы с базой данных на SQL. Так называемую клиент-серверная систему. Если кто-то жалуется о том, что у него тормозит SQL, спросите какой у него сервер. Если он ответит, что-то вроде: Pentium 4.. то можете смело сказать ему, что он … мало знает о том как надо готовить SQL сервер.

Серверы для SQL-систем должны иметь высокие показатели производительности, и отказоустойчивотси. Pentium Core2Duo 2х ядерный, частотой от 2,5 Гигагерц, 4Гб ОЗУ, RAID массивом минимум из 2х жестких дисков SATA2 — это пожалуй минимум, на котором может НОРМАЛЬНО функционировать программное обеспечение MS SQL Server на 10-15 подключенных клиентов (пользователей базы данных).

При этом, сеть с пропускной способностью 100Мбит даже не обязательна. Дело в том, что при работе с SQL-сервером рабочая станция не качает базу данных к себе по сети. Она просто передает по сети компактный запрос на сервер, который выполняет заданную выборку, и передает результат запроса обратно на рабочую станцию. Таким образом, трафик по сети значительно ниже чем в случае файл-серверной базой.

Конечно, если при разработке клиентской части программного обеспечения будет допущена ошибка и будет сформирован запрос, результатом выполнения которого является вся база данных или большая ее часть, то вся информация будет качаться на рабочую станцию, создавшая такой запрос. Но это уже по большей части лежит на совести разработчиков прикладных задач, это применительно к программам 1С — и на совести тех, кто занимается настройками (и на совести разработчиков из “1С” — в части запрещения оптимизации таких запросов).

Схема работы SQL серверной связки 1С

Теперь рассмотрим, что происходит с сервером в SQL системе. Север сам обрабатывает полученный запрос, и легко представить себе, что если с SQL-системой работают 10 пользователей, то для сервера это практически то же самое, как если бы на нем были одновременно запущены 10 экземпляров программы, с которой работают пользователи (например 10 локальных копий 1С-Торговли). Попробуйте запустить локально на каком-нибудь Pentium 4 десять экземпляров 1C-Торговли и выполнить одновременно 10 отчетов об остатках на складе. Представив это, возможный результат Вы поймете, что всякие разговоры о тормозах SQL-системы без обсуждения параметров сервера не имеют никакого смысла.

SQL-системы очень требовательны к ресурсам процессора, и сервера в целом, то есть нужен очень мощный и многоядерный процессор, достаточно высокий обьем оперативной памяти (по сравнению с другими серверами, или рабочими станциями, где можно отделаться 1-2 гигбайтами). В идеале для таких систем следует использовать компьютеры с RISC процессорами в многопроцессорном варианте (например как в продукции SUN Microsystems). SQL — системы имеют существенное преимущество: даже при использовании сервера стоимостью 4 — 5 тыс. $ будут работать вполне приемлемо, с позволяя добиться хорошей скорости при работе с базами данных такого объема, который обычная файл-серверная система просто перестанут работать.

Причем, на SQL варианте, объем БД может достигать в несколько десятков ГИГАБАЙТ. А скорость доступа к данным останется на прежнем уровне, ведь — они расположены, на диске сервера и не требуют передачи по сети для последующей обработки. Все запросы поступают к серверу, так что кроме обычного файлового кэширования есть огромные возможности по оптимизации выполнения запросов, их распараллеливанию. Все эти эти возможности изначально заложены в программном обеспечении пакета MS SQL Server, фирмой 1С разработан сервер предприятия, который работает в связке с СУБД MS SQL.

Также возможно применение различных ухищрений, например в виде серверов-репликаторов (для разделения групп пользователей на тех, кто пользуется только отчетами, т.е работает в режиме “только чтение”, и тех, кто активно изменяет документы) или разделение баз данных по разным дисковым массивам. При перегрузке дисковой системы она легко модернизируется, например с помощью RAID-массива (не забывайте однако, что SQL-система — это вообще иная ценовая категория как в отношении программного обеспечения, так и по стоимости серверного железа)

Преимущества SQL базы данных для 1С

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

До сих пор мы говорили о принципиальных различиях файл-серверных систем от клиент-серверных. Теперь немного о дополнительных преимуществах клиент-сервера.

Надежность SQL варианта баз данных.

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

В клиент-серверной системе этот механизм (который реализуется программным обеспечением SQL-сервера — в нашем случае MS SQL Server 2005) значительно более сложен. Он позволяет получить “слепок” базы данных на момент начала транзакции без блокировки базы данных. И слепков таких может достаточно большое количество: для каждой рабочей станции — он будет свой. И в случае “зависания” рабочей станции, открывшей транзакцию, она (транзакция) может быть просто откачена (т.е. база данных будет восстановлена в том виде, в каком она была до начала инициации транзакции). Откат осуществляется либо по запросу рабочей станции (при сохранении ее работоспособности), либо при перезагрузке рабочей станции, либо администратором SQL сервера.

Таким образом, выход из строя рабочей станции не столь опасен для целостности всей базы данных. Кроме того, SQL-система записывает так называемый журнал транзакций. По сути база данных хранится в виде ее начального содержимого и ее модификаций записанных в журнал транзакций. Такой способ хранения позволяет производить архивирование базы данных во время работы всей системы: просто состояние базы данных фиксируется на момент начала архивирования, отсекаются незавершенные транзакции, а основная база и часть журнала транзакций, содержащая завершенные транзакции записываются в архив. Процесс архивирования легко поддается автоматизации, т.е. присутствие оператора необязательно — SQL-сервер имеет встроенные средства для этого.

Защита базы данных

В общем-то защищенность данных в значительной мере зависит от прикладной задачи, 1С Торговли или 1С Бухгалтерии, однако по сравнению с обычным вариантом, в котором любой начинающий хакер спокойно может срубить пароль, в клиент-серверном варианте защита данных опирается на средства, предоставляемые администрированием SQL сервера, что гораздо более надежно.

Гибкость применения СУБД

Системы на основе SQL-сервера позволяют выстраивать сложные сетевые конфигурации со многими десятками и даже сотнями пользователей. При этом разработчику предоставляются широкие возможности по оптимизации системы, ее разделению по группам сложности и способам доступа. Серверы-репликаторы, например, дают прекрасный механизм для организации системы учета в крупной организации с разветвленной системой удаленных офисов, складов и т.п. При этом, работа на такой системе может вестись в реальном режиме времени, без перерывов для переноса и синхронизации данных — достаточно лишь организовать постоянные каналы связи 32-128 Кбит, что вполне осуществимо на наших телефонных линиях и не слишком дорого (конечно, в масштабе крупной компании).

Теперь о недостатках. А их у SQL-систем много, крупных и мелких — тех же самых, которые присущи и файл-серверным системам. Однако есть два и весьма существенных.

Главный недостаток наглядно виден из прайса фирмы “1С” — это цена. Цена не только программного обеспечения, но и цена железа на котором оно может достойно функционировать и цена обслуживания. Ну, что же делать — SQL это продукт высоких технологий, но отличное решение для бизнеса, когда торговля, или производство напрямую зависят от всех расчетов бухгалтерии и финансовых операций. А продукт высоких технологий всегда на порядок выше, и эксплуатироваться должен грамотным, обученным персоналом, поэтому даже системный администратор, способный грамотно работать с SQL-системой обойдется дороже, чем аналогичный специалист для обычной файл-серверной системы.

Подведем некоторые итоги

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

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

Теги материала: SQL сервер для 1С,что такое SQL сервер,1С сервер, SQL сервер, 1С медленно работает, 1С тормозит, 1С зависает ,SQL для 1С

Sql в 1с что это

1С умеет работать в двух режимах – файловом и серверном. При серверном варианте база данных находится не в файле, а в СУБД на сервере.

СУБД (SQL) – это система управления базами данных. Устно часто называют как «эс-ку-эль» или «скуль» или «сиквел». С 1С используются такие СУБД как MS SQL, Postgre SQL, Oracle.

Подробнее про серверный вариант работы Вы можете прочитать в уроке про сервер 1С. А здесь мы обсудим использование 1С с SQL.

Что такое SQL 1С

База данных – это набор таблиц (каждая табличка как одна страничка в Excel), в которых можно хранить данные.

Язык SQL – это способ запроса данных из этих таблиц. Язык SQL стандартизирован и практически одинаков во всех современных СУБД. Язык запросов 1С также является одним из вариантов реализации языка SQL.

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

В файловом варианте база данных 1С хранится в файле на диске и для доступа к данным 1С использует свой собственный движок. Однако этот вариант работает только для небольших баз данных и небольшого количества пользователей.

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

Для запроса данных из SQL 1С используются запросы на языке 1С. Они могут быть использованы явно (программист написал в коде программы на языке 1С) или неявно (программист вызывает функцию платформы, которая генерит запрос или такая функция вызывается сама – в форме списка справочника/документа, например).

Сервер 1С транслирует запрос в язык SQL (соответствующую модификацию, поддерживаемую конкретным СУБД) и передает на выполнение в СУБД (SQL 1С).

Кратко о лицензировании различных СУБД

Краткая информация если Вам захочется посмотреть стоимость и в прайс-листах встретятся незнакомые слова:

  • Существуют лицензии различных SQL специально для 1С (т.е. «для использования с 1С»)
  • Лицензии runtime – купленный SQL можно использовать только с 1С (дешевле)
  • Лицензии full-use – купленный SQL можно использовать с разными программами (дороже)
  • Существуют лицензии «по количеству процессов сервера» (без ограничения количество работающих пользователей) — PVU
  • Существуют комплект лицензий «по сокетам/по клиентам» — LUS
    o Одна лицензия на работу SQL на сервере
    o Лицензии по количеству сокетов/клиентов (т.е. на 5 соединений, на 10 соединений и т.п.).

Здесь и ниже указана очень только обзорная информация по лицензированию, так как лицензирование у всех СУБД очень сложное, есть разные ситуации, скидки, наличие/отсутствие подписки на ИТС, ограничения и правила «по умолчанию»..

Дополнительно необходимо упомянуть, что СУБД может иметь требования к операционной системе (чтобы она была тоже серверная, например, Windows Server). В варианте MS SQL так и есть, но есть и вариант «обхода» — SQL Developer Edition.

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

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