Чем отличается sql база 1с от файловой
Перейти к содержимому

Чем отличается sql база 1с от файловой

  • автор:

Какую базу данных выбрать 1С — файловую или SQL

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

1C файловая или SQL

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

  • Файловый (встроенный в 1С)
  • MS SQL Server
  • Oracle
  • IBM DB2
  • PostgreSQL

Все из перечисленных СУБД хранят в себе различные функции и уникальные решения.

Файловая СУБД для 1С

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

Плюсы файловой СУБД 1С:

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

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

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

Преимущества 1С SQL:

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

Выводы

Конечно вы должны сами решить какой вариант вам больше подходит. Если у вас крупная компания и большое число сотрудников, то вам нужен клиент-серверный вариант СУБД. А если у вас небольшая фирма и вы не хотите много тратить на внедрение и думаете сделать все быстрее, то ваш выбор файловая СУБД.

Проблема

На форумах постоянно задается один и тот же вопрос: почему 1C+MSSQL медленнее обрабатывает запросы чем файловая?

Затем обычно идет «флуд» на несколько десятков страниц.

Есть два популярных «течения» в таких форумах — одни говорят что для клиент-серверного варианта это нормально, файловый вариант всегда должен работать быстрее, другие говорят что 1С плохо работает с субд.

В результате «баталий и выяснения отношений» на форумах люди расходятся при своих мнениях.

Мы предлагаем разбить вопрос на несколько:

1. Работает ли файловый вариант быстрее в операциях «монопольного характера», когда его деятельность не зависит от других пользователей в базе?

Под «монопольным характером» мы будем понимать одного активного (работающего) пользователя в информационной базе.

2. Работает ли файловый вариант быстрее в многопользовательском режиме, когда пользователи активно конкурируют за ресурсы (например при проведении реализации товаров обращаются массово к остаткам на складе)?

3. Насколько существенна разница в скорости между файловым вариантом и клиент-серверным с точки зрения бизнеса?

Что на самом деле

Таблица №1. Сравнение файлового и клиент-серверного варианата 1С

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

Ответ на первый вопрос: Работает ли файловый вариант быстрее в операциях «монопольного характера», когда его деятельность не зависит от других пользователей в базе — с вероятностью 99% файловый вариант работает быстрее (при условии его возможности не ограничиваются неудачным железом и не достигаются максимальные возможности файлового варианта)!.

Не верьте нам на слово — проверьте сами. Возьмите ОДНОПОТОЧНЫЙ тест (подробное описание здесь http://www.gilev.ru/tpc1cgilv/ ) и убедитесь сами (проверьте сначало в файловом варианте, затем клиент-серверном).

Если Вы не верите тесту, то протестируйте подходящую для проверки по вашему мнению операцию также в файловом и клиент-серверном варианте. Мы рекомендуем за основу взять например «закрытие месяца» на базах размером до 4х гигабайт (иначе на файловом варианте может достигнуто ограничение по размеру).

Понятно, если у Вас закрытие месяца в файловом варианте не возможно, то обсуждать преимущества файлового варианте для Вас нет смысла, Вы согласны?

Если у вас возникли вопросы по выполнению теста или его результатам, то можно обсудить их на форуме http://www.gilev.ru/forum/.

Возникает еще один промежуточный вопрос:

А насколько файловый вариант быстрее клиент-серверного в цифрах?

Ответ на этот вопрос куда интересней и практичней. Наш тест и практика показывают:

  1. на среднестатитических операциях на соизмеримых объемах данных почти в 2 раза быстрее
  2. на среднестатитических операциях когда объемы данных начинают превышать объем доступной оперативной памяти и увеличивая интенсивность подкачи — до 3-4х раз быстрее — это как раз пример закрытия месяца

Однако важно понять что такое «среднестатистическая» операция. Оказывается, что операции, которые оперируют данными в оперативной памяти в клиент-серверном варианте не проигрывают, а иногда даже выигрывают у файлового варианта!

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

Причем даже безобидный отчет при построении тоже может писать данные, ну например в служебную базу данных tempdb в случаи использования MS SQL Server.

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

Другими словами, клиент-серверный вариант требует больше ресурсов чем файловый для одной и той же работы по объему.

Отсюда следствие — на одном и том же компьютере можно сделать В МОНОПОЛЬНОМ РЕЖИМЕ больше работы в файловом варианте, чем в клиент-серверном (в том же монопольном режиме).

В итоге вроде как клиент-серверный вариант может сделать меньше работы, требует больше ресурсов, а где же «профит», почему он используется практически везде?

Поможет ответить нам второй вопрос нашей статьи: работает ли файловый вариант быстрее в многопользовательском режиме, когда пользователи активно конкурируют за ресурсы (например при проведении реализации товаров обращаются массово к остаткам на складе)?

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

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

Мы получаем простую арифметику — 100 х 10 х 10 =10 000 строк вводится в информационную систему в течения дня.

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

В клиент-серверном варианте это сработает. Документы проведутся параллельно.

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

Мы знаем что по умолчанию длительность таймаута блокировки 20 секунд. Теоретически можно предположить что кроме первого пользователи все последующие будут друг друга ждать по 20 секунд и затем проводить свои документы. Суммарное ожидание составит 100 пользователей х 1 документ х 20 секунд = 2000 секунд ожидания. Чувствуете — это полчаса простоя пользователей.

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

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

Более того, при попытке 2,3 документы угубят картину и за день даже при идеальном коде файловый вариант «накопит» 100 пользователей х 10 документов х 20 секунд = 20000 секунд ~ 5 c половиной часов простоя.

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

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

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

И снова призываем не верить нам на слово. Возьмите 1С:Стандартный Нагрузочный Тест http://v8.1c.ru/expert/etp.htm или разработайте свой коллективный тест и убедитесь сами с достоверности наших утверждений.

Если у вас возникли вопросы по выполнению теста или его результатам, то можно обсудить их на форуме http://www.gilev.ru/forum/.

Возможно Вы также захотите приобрести 1С:КИП, обратите внимание на особенности распространения 1С:Стандартный Нагрузочный Тест в рамках 1С:КИП.

Теперь ответим на третий вопрос:Насколько существенна разница в скорости между файловым вариантом и клиент-серверным с точки зрения бизнеса?

Файловый вариант несильно опережает клиент-серверный вариант в монопольном режиме и очень существенно проигрывает в многопользовательском режиме.

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

Файловый вариант не имеет механизмов контроля целостности данных. Например, если произойдет сбой в сети при передачи данных, или отключится свет, то в файловом варианте что то успеет записаться, а что нет. Целостность данных будет разрушена. В клиент-серверном варианте в подобных случаях просто произойдет откат незавершенной транзакции, и неполных данных в систему не попадет, целостность данных будет сохранена.

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

А теперь надо задать «правильный вопрос»:

4. Почему возник вопрос оценить разницу в скорости файлового и клиент-серверного варианта?

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

Но вместо изучения причин, которые спровоцировали проблему в клиент-серверном варианте, он обнаруживает что в файловом варианте такой проблемы нету. Его не беспокоит что проблема может быть в «посреднике», который отсутствует в файловом варианте.

Правильный ответ заключается в том что неважно насколько быстрее файловый или клиент-серверный вариант, а важно что именно вызывает замедления в каждом КОНКРЕТНОМ случае. Слово ПРОИЗВОДИТЕЛЬНОСТЬ опасное, так как на самом деле его надо расписывать в виде списка операций в системы, которые в совокупности и формируют это производительность. Надо рассматривать каждую операцию, начиная с той, которая создает наибольший вклад в замедления.

Вообщем то этим мы профессионально и занимаемся уже много лет успешно.

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

Что лучше, файловый или клиент-серверный вариант работы 1С?

Совместный продукт компании Microsoft + 1C

Что лучше, файловый или клиент-серверный вариант

Работа в программах 1С: Предприятие 8 может быть организована в двух режимах: файловый и клиент-серверный. И в том и в другом варианте все прикладные решения работают полностью идентично.

Файловый вариант работы
Файловый вариант работы рассчитан на персональную работу одного пользователя или работу небольшого количества пользователей в локальной сети. В этом варианте все данные информационной базы располагаются в одном файле — в файловой СУБД.
Клиент — серверный вариант работы
Клиент-серверный вариант работы предназначен для использования в рабочих группах или в масштабе предприятия. Он реализован на основе трехуровневой архитектуры «клиент-сервер». В этом варианте информационная база хранится в одной из поддерживаемых систем управления базами данных, а взаимодействие между клиентским приложением и СУБД осуществляет кластер серверов 1С: Предприятия 8.

Какой из этих режимов наиболее предпочтительный для работы в вашей программе 1С:Предприятие 8?

Чтобы ответить на этот вопрос, давайте разберем оба этих режима более подробно.

Файловый вариант работы

1

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

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

  • Блокируется часть файла базы данных для других пользователей системы.
  • Заблокированные данные перенаправляются по локальной сети к клиенту.
  • Операция изменения выполняется на компьютере пользователя.
  • Измененная часть файла возвращается в место хранения.
  • Файл базы данных становится доступен остальным пользователям системы 1С:Предприятия 8.

Если в базе одновременно работают более 3-х человек, они генерируют постоянный обмен информации, что значительно тормозит работу всех пользователей. Чтобы ускорить работу и сделать ее стабильной, необходимо некий «диспетчер», который на уровне информационной системы будет координировать и выполнять задачи пользователей. Такой «диспетчер» реализован в клиент-серверном режиме работы.

Клиент-серверный вариант работы

2

На компьютер-сервер («железо») установлена программа 1С: Сервер, которая позволяет запустить 1С:Предприятие 8 в клиент-серверном режиме. Это значит, что программа 1С, которую запускает пользователь на своем компьютере, работает с программой 1С:Сервер. Та, в свою очередь, работает с базой данных. В качестве инструмента управления базой данных используется СУБД – PostgreSQL, MS SQL и им подобные. При этом клиент-серверная архитектура разделяет всю работающую систему на три различные части, определенным образом взаимодействующие между собой:

  • клиентское приложение;
  • кластер серверов 1С:Предприятия;
  • сервер базы данных.

Программа, работающая у пользователя, (клиентское приложение) взаимодействует с кластером серверов 1С:Предприятия 8, а кластер (1С:Сервер) распределяет запросы адресно к нужному файлу базы данных. Он же определяет очередность выполнения операций и вносит изменения в базу данных.

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

Какие преимущества дает клиент-серверный вариант?

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

Какой режим работы 1С выбрать – файловый или клиент-серверный?

1. Файловый режим работы в программах 1С подойдет, если:

  • небольшая компания с кол-вом одновременно работающих сотрудников с программой 1С не более 3-х.
  • с базой данных до 2Гб.

2. Рекомендуем использовать 1С:Сервер (клиент-серверный вариант), если:

  • Размер информационной базы от 2 Гб и выше
  • Количество пользователей от 3-х и более
  • Используете последние версии программ 1С на управляемых формах
  • 1С зависает или долго выполняет операции
  • В период отчетности зависает и дает сбои
  • Планируете увеличение пользователей 1С

Что нужно сделать для перехода на клиент-серверный режим работы?

1. Купить программное обеспечение — лицензия для Сервера 1С:Предприятие.
2. Выбрать СУБД:

  • PostgreSQL – бесплатная СУБД (имеет большой ряд ограничений);
  • Лицензии на сервер MS SQL и клиентский доступ к MS SQL

3. Настроить СУБД для работы в связке с сервером 1С:Предприятие
4. Установить 1С:Сервер и настроить администрирование.

Закажите внедрение сервера 1С прямо сейчас!

Сервер 1С: Предприятие 8

Сервер 1С: Предприятие 8 (Посмотреть)

Различные хранилища данных

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

Платформа поддерживает работу с несколькими СУБД.

Одна из этих СУБД, — файловая СУБД, — разработана фирмой «1С» и является частью платформы.

Остальные — это СУБД сторонних поставщиков: Microsoft SQL Server, PostgreSQL, Postgres Pro, IBM DB2, Oracle Database.

Начиная с версии 8.3.25 поддерживаются СУБД, основанные на PostgreSQL: Tantor SE, Pangolin и Jatoba.

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

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