Затем обычно идет «флуд» на несколько десятков страниц.
Есть два популярных «течения» в таких форумах — одни говорят что для клиент-серверного варианта это нормально, файловый вариант всегда должен работать быстрее, другие говорят что 1С плохо работает с субд.
В результате «баталий и выяснения отношений» на форумах люди расходятся при своих мнения.
Проблема
На форумах постоянно задается один и тот же вопрос: почему 1C+MSSQL медленнее обрабатывает запросы чем файловая?
Затем обычно идет «флуд» на несколько десятков страниц.
Есть два популярных «течения» в таких форумах — одни говорят что для клиент-серверного варианта это нормально, файловый вариант всегда должен работать быстрее, другие говорят что 1С плохо работает с субд.
В результате «баталий и выяснения отношений» на форумах люди расходятся при своих мнениях.
Мы предлагаем разбить вопрос на несколько:
1. Работает ли файловый вариант быстрее в операциях «монопольного характера», когда его деятельность не зависит от других пользователей в базе?
Под «монопольным характером» мы будем понимать одного активного (работающего) пользователя в информационной базе.
2. Работает ли файловый вариант быстрее в многопользовательском режиме, когда пользователи активно конкурируют за ресурсы (например при проведении реализации товаров обращаются массово к остаткам на складе)?
3. Насколько существенна разница в скорости между файловым вариантом и клиент-серверным с точки зрения бизнеса?
Что на самом деле
Таблица №1. Сравнение файлового и клиент-серверного варианата 1С
Файловая 1С
Клиент-Серверная 1С
Максимальный размер одной таблицы
4 gb
~сотни терабайт
Размер на практике когда возникают «тормоза» в 1С при достижении объема базы данных
~16 Gb
~500-1500 Gb
Количество пользователей с комфортной работой 1С
3-10 (далее мешают табличные блокировки)
300-700 человек (далее обычно нужно покупать более мощное железо и оптимзировать код еще раз)
Функции, отъедающие ресурсы, которые бы могли бы потрачены на лучшую производительность
нет
транзакционная целостность данных, логирование операций для дальнейшего анализа, функции повышения параллельности работы пользователей
Дополнительные преимущества
простота (так как мало функций)
обслуживание данных (например резервное копирование) без остановки работы пользователей
Минимальная область блокировок
На уровне таблиц (требуется меньше ресурсов)
На уровне записей (требуется больше ресурсов)
Стоимость владения (условно)
Маленькая
Существенно больше чем файловая
Наличие промежуточного слоя между клиентом 1С и субд
нет
Сервер 1С
Ответ на первый вопрос: Работает ли файловый вариант быстрее в операциях «монопольного характера», когда его деятельность не зависит от других пользователей в базе — с вероятностью 99% файловый вариант работает быстрее (при условии его возможности не ограничиваются неудачным железом и не достигаются максимальные возможности файлового варианта)!.
Не верьте нам на слово — проверьте сами. Возьмите ОДНОПОТОЧНЫЙ тест (подробное описание здесь http://www.gilev.ru/tpc1cgilv/ ) и убедитесь сами (проверьте сначало в файловом варианте, затем клиент-серверном).
Если Вы не верите тесту, то протестируйте подходящую для проверки по вашему мнению операцию также в файловом и клиент-серверном варианте. Мы рекомендуем за основу взять например «закрытие месяца» на базах размером до 4х гигабайт (иначе на файловом варианте может достигнуто ограничение по размеру).
Понятно, если у Вас закрытие месяца в файловом варианте не возможно, то обсуждать преимущества файлового варианте для Вас нет смысла, Вы согласны?
Возникает еще один промежуточный вопрос:
А насколько файловый вариант быстрее клиент-серверного в цифрах?
Ответ на этот вопрос куда интересней и практичней. Наш тест и практика показывают:
- на среднестатитических операциях на соизмеримых объемах данных почте в 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 или разработайте свой коллективный тест и убедитесь сами с достоверности наших утверждений.
Теперь ответим на третий вопрос:Насколько существенна разница в скорости между файловым вариантом и клиент-серверным с точки зрения бизнеса?
Файловый вариант несильно опережает клиент-серверный вариант в монопольном режиме и очень существенно проигрывает в многопользовательском режиме.
Но надо понимать, что у бизнеса есть и другие задачи, которые практически всегда стоят выше по приоритету, а именно отказоусточивость, бесперебойная работа, надежность и стабильность. Работа сервера в отказоусточивом кластере требует дополнительных расходов на зеркалирование данных. Таким образом всегда должен быть баланс между различными задачами: производительность, надежность, безопасность и т.п.
Файловый вариант не имеет механизмов контроля целостности данных. Например, если произойдет сбой в сети при передачи данных, или отключится свет, то в файловом варианте что то успеет записаться, а что нет. Целостность данных будет разрушена. В клиент-серверном варианте в подобных случаях просто произойдет откат незавершенной транзакции, и неполных данных в систему не попадет, целостность данных будет сохранена.
Т.е. мало того, что чем выше количество пользователей в системе,тем больше файловый вариант будет проигрывать клиент-серверному, так еще процедуры восстановления данных в случаи сбоя превращают файловый вариант в абсолютно проигрышный вариант.
А теперь надо задать «правильный вопрос»:
4. Почему возник вопрос оценить разницу в скорости файлового и клиент-серверного варианта?
Таже переписка и флуд на форумах начинаются с того, что спрашивающий имеет проблемы с производительностью в клиент-серверном варианте.
Но вместо изучения причин, которые спровоцировали проблему в клиент-серверном варианте, он обнаруживает что в файловом варианте такой проблемы нету. Его не беспокоит что проблема может быть в «посреднике», который отсутствует в файловом варианте.
Правильный ответ заключается в том что неважно насколько быстрее файловый или клиент-серверный вариант, а важно что именно вызывает замедления в каждом КОНКРЕТНОМ случае. Слово ПРОИЗВОДИТЕЛЬНОСТЬ опасное, так как на самом деле его надо расписывать в виде списка операций в системы, которые в совокупности и формируют это производительность. Надо рассматривать каждую операцию, начиная с той, которая создает наибольший вклад в замедления.
Проблема
На форумах постоянно задается один и тот же вопрос: почему 1C+MSSQL медленнее обрабатывает запросы чем файловая?
Затем обычно идет «флуд» на несколько десятков страниц.
Есть два популярных «течения» в таких форумах — одни говорят что для клиент-серверного варианта это нормально, файловый вариант всегда должен работать быстрее, другие говорят что 1С плохо работает с субд.
В результате «баталий и выяснения отношений» на форумах люди расходятся при своих мнениях.
Мы предлагаем разбить вопрос на несколько:
1. Работает ли файловый вариант быстрее в операциях «монопольного характера», когда его деятельность не зависит от других пользователей в базе?
Под «монопольным характером» мы будем понимать одного активного (работающего) пользователя в информационной базе.
2. Работает ли файловый вариант быстрее в многопользовательском режиме, когда пользователи активно конкурируют за ресурсы (например при проведении реализации товаров обращаются массово к остаткам на складе)?
3. Насколько существенна разница в скорости между файловым вариантом и клиент-серверным с точки зрения бизнеса?
Что на самом деле
Таблица №1. Сравнение файлового и клиент-серверного варианата 1С
Файловая 1С | Клиент-Серверная 1С | |
Максимальный размер одной таблицы | 4 gb | ~сотни терабайт |
Размер на практике когда возникают «тормоза» в 1С при достижении объема базы данных | ~16 Gb | ~500-1500 Gb |
Количество пользователей с комфортной работой 1С | 3-10 (далее мешают табличные блокировки) | 300-700 человек (далее обычно нужно покупать более мощное железо и оптимзировать код еще раз) |
Функции, отъедающие ресурсы, которые бы могли бы потрачены на лучшую производительность | нет |
транзакционная целостность данных, логирование операций для дальнейшего анализа, функции повышения параллельности работы пользователей |
Дополнительные преимущества | простота (так как мало функций) | обслуживание данных (например резервное копирование) без остановки работы пользователей |
Минимальная область блокировок | На уровне таблиц (требуется меньше ресурсов) | На уровне записей (требуется больше ресурсов) |
Стоимость владения (условно) | Маленькая | Существенно больше чем файловая |
Наличие промежуточного слоя между клиентом 1С и субд | нет | Сервер 1С |
Ответ на первый вопрос: Работает ли файловый вариант быстрее в операциях «монопольного характера», когда его деятельность не зависит от других пользователей в базе — с вероятностью 99% файловый вариант работает быстрее (при условии его возможности не ограничиваются неудачным железом и не достигаются максимальные возможности файлового варианта)!.
Не верьте нам на слово — проверьте сами. Возьмите ОДНОПОТОЧНЫЙ тест (подробное описание здесь http://www.gilev.ru/tpc1cgilv/ ) и убедитесь сами (проверьте сначало в файловом варианте, затем клиент-серверном).
Если Вы не верите тесту, то протестируйте подходящую для проверки по вашему мнению операцию также в файловом и клиент-серверном варианте. Мы рекомендуем за основу взять например «закрытие месяца» на базах размером до 4х гигабайт (иначе на файловом варианте может достигнуто ограничение по размеру).
Понятно, если у Вас закрытие месяца в файловом варианте не возможно, то обсуждать преимущества файлового варианте для Вас нет смысла, Вы согласны?
Возникает еще один промежуточный вопрос:
А насколько файловый вариант быстрее клиент-серверного в цифрах?
Ответ на этот вопрос куда интересней и практичней. Наш тест и практика показывают:
- на среднестатитических операциях на соизмеримых объемах данных почте в 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 или разработайте свой коллективный тест и убедитесь сами с достоверности наших утверждений.
Теперь ответим на третий вопрос:Насколько существенна разница в скорости между файловым вариантом и клиент-серверным с точки зрения бизнеса?
Файловый вариант несильно опережает клиент-серверный вариант в монопольном режиме и очень существенно проигрывает в многопользовательском режиме.
Но надо понимать, что у бизнеса есть и другие задачи, которые практически всегда стоят выше по приоритету, а именно отказоусточивость, бесперебойная работа, надежность и стабильность. Работа сервера в отказоусточивом кластере требует дополнительных расходов на зеркалирование данных. Таким образом всегда должен быть баланс между различными задачами: производительность, надежность, безопасность и т.п.
Файловый вариант не имеет механизмов контроля целостности данных. Например, если произойдет сбой в сети при передачи данных, или отключится свет, то в файловом варианте что то успеет записаться, а что нет. Целостность данных будет разрушена. В клиент-серверном варианте в подобных случаях просто произойдет откат незавершенной транзакции, и неполных данных в систему не попадет, целостность данных будет сохранена.
Т.е. мало того, что чем выше количество пользователей в системе,тем больше файловый вариант будет проигрывать клиент-серверному, так еще процедуры восстановления данных в случаи сбоя превращают файловый вариант в абсолютно проигрышный вариант.
А теперь надо задать «правильный вопрос»:
4. Почему возник вопрос оценить разницу в скорости файлового и клиент-серверного варианта?
Таже переписка и флуд на форумах начинаются с того, что спрашивающий имеет проблемы с производительностью в клиент-серверном варианте.
Но вместо изучения причин, которые спровоцировали проблему в клиент-серверном варианте, он обнаруживает что в файловом варианте такой проблемы нету. Его не беспокоит что проблема может быть в «посреднике», который отсутствует в файловом варианте.
Правильный ответ заключается в том что неважно насколько быстрее файловый или клиент-серверный вариант, а важно что именно вызывает замедления в каждом КОНКРЕТНОМ случае. Слово ПРОИЗВОДИТЕЛЬНОСТЬ опасное, так как на самом деле его надо расписывать в виде списка операций в системы, которые в совокупности и формируют это производительность. Надо рассматривать каждую операцию, начиная с той, которая создает наибольший вклад в замедления.
Заинтересовало…
Напомнило статью 1998 года:
http://www.mista.ru/articles1c/sql.htm
Прошло 15 лет… 🙁
(2) hogik, а у кого то есть копирайт на правду?
http://www.gilev.ru/online/ пишут «Как? Вы тоже для диагностики используете технологический журнал? Боян…» 🙂
нам иногда на счет сервисов
(3)
Вячеслав (gilv).
Смысл моего сообщения другой. 😉
Это не Вам упрёк.
(0) Спасибо, как раз недавно заново стал мучаться этим вопросом. У нас то мелкие базы, свыше 5 гиг и нет почти.
+(2)
Ужасно вспомнить! Сейчас и не верится что можно работать было с такими параметрами!
Однозначно клиент-серверная.
Но заметил такую особенность.
Наш склад много лет работал и продолжает работать на клиент-серверной 7.7. База уже большая, порядка 70Gb, работает более 20 человек. Крутится на стареньком сервере.
Взяли 8.2, клиент-серверную. Поставили на более новый, специально купленный под неё сервер. Почти пустая, дорабатывается. Работает на ней, пока, 2 человека. Но тормоза страшные!!! Кого только не приглашали. Бесполезно. Почешут репу, выдадут пару умных фраз и всё.
А вы говорите… (((
Что то никто не упомянул в разнице работы файловой системы и файловой на веб сервере (apache). А разница огромная при использовании веб сервера идет реальное разделение выполнения кода на клиенте и на сервере пусть и эмулированное к каком то смысле, но и передача данных идет при максимальном сжатии. Скорость увеличивается во много раз. В свое время я перепробовал все варианты, кроме терминалки (но думаю и она отстает от веб файловой по очевидным причинам). Конечно если база большая и много пользователей то клиент-серверный вариант правильный..но если небольшая..у меня пока не более 1Гб база и до 20 пользователей, то файловая с веб сервером- идеальный вариант.
Спасибо, интересная статья.
хм…
наткнулся на простую вещь. Элементарный запрос.
Выбрать док.Ссылка
ИЗ Документ.Прайсы.Товары КАК док
где док.Ссылка.Дата >= &ВыбДата
И док.Номенклатура в (&мТовары)
в базе 30 документов Прайсы, отвечающих условию. В каждом по 50 000 строк.
На файловой запрос работает минут 20. После выгрузки на скуль — 2 секунды.
Вот и верь всяким тестам.
Да, все в однопользовательском режиме.
(9) DenisCh, если запрос выполняется 20 минут — это значит что в базе явные проблемы с архитектурой. Регистр сведений нужно было делать и из него брать данные. Это просто чудо, что на скуле он так выполнился.
Поддерживаю,в статье все правильно написано… +1
(6) YuraLu,
Все правильно, потому что пригласить надо было сразу насhttp://www.gilev.ru/
У нас вчера и свежая благодарность от клиентов есть
(7) ivdic,
Не упомянули как раз именно потому что такие как Вы вводят в заблуждение. Веб-сервер с файловой базой работает «псевдомногопоточно». Видимо Ваши двадцать пользователей не создают одновременное интенсивное блокирование ресурсов, поэтому Вам кажется что хорошо. На самом деле вы обходите другую проблему — выключение кэширования на чтение во время записи данных при работе по сети в файловом варианте без веб-сервера.
Подчеркну — что клиент-серверный вариант работает лучше чем файловый с веб-сервером в конечном итоге. Так понятней?
(9) DenisCh,
Вот и верь всяким тестам.
Да, все в однопользовательском режиме.
ответьте на простой вопрос: какой процент всех запросов в вашей файловой базе работает медленнее чем клиент-серверном варианте? только этот? 20%, 50%, 100%?
Спасибо за статтю в чисто теоретическам плане было интнрнсно прочитать. Автор так держать
Уважать Вячеслава нужно уже за то, что не только знает, но популяризирует знания.
Теоретически всё правильно,
но практически:
1) для 7.7 до 20Гб до 70 юзеров лучше файловый вариант терминал-сервер
(у нас на работе было).
и заодно лицензий покупать не надо для sql сервера.
2) 1С 8.2 жутко тормозит у всех, лучше заранее ставить sql-сервер,
но до 10 юзеров не надо зря ставить sql-сервер т.к. дорогой
Имхо, это редкий изврат 70 юзеров на 20гб базе. больше чем уверен, что SQL клюшки на прямых запросах и записи объектов через попытку в цикле, при ваших условиях, обставили бы файлово-терминальный режим
ЗЫ (тоже было на работе)
(17) ManyakRus,
но практически:
1) для 7.7 до 20Гб до 70 юзеров лучше файловый вариант терминал-сервер
(у нас на работе было).
Я вообще то писал про 8.2
(17) ManyakRus,
но до 10 юзеров не надо зря ставить sql-сервер т.к. дорогой
У меня есть стойкое ощущение, что у Вас нет опыта работы с информационной системой масштаба сотни-тысячи пользователей, но при этом Вы намекаете что у Вас побольше опыта.
Таки исторически сложилось, что для микро-информационных систем, с которыми у Вас опыт, достаточно купить i7-3930k и OCZ RevoDrive 3 x2 M — и не важно какой вариант у вас развернут (файловый или клиент-серверный), все с точки зрения бизнеса будет работать хорошо.
краткое резюме статьи: я gilv, ускоряю базы за деньги.Обращайтесь. Если у фас файловая база, купите 1c сервер и я буду вам ускорять базы за деньги. Обращайтесь.
(21) можно и так, а можно — не надо делать из файловой системы панацею, да она годится для 3-5 пользователей, но когда проблемы на скуле, то не надо от них убегать и говорить про файловую — правильно почитать литературу типа документации к 1С:ЦУП, сходить на курсы 1С:Эксперт, и посоветоваться с более опытными товарищами, которые делают это за деньги профессионально, не надо считать себя самым умным
Подскажите, как можно повысить свою квалификацию в деле улучшения производительности. Какие есть курсы, литература? Есть ли курсы в Екатринбурге?
(23) рекомендуем купить 1С:КИП (можно у нас gilv@rarus.ru, или в любой фирме франчайзи)
http://kb.1c.ru
http://www.1c.ru/rus/partners/training/uc1/course.jsp?id=199
http://www.gilev.ru/online/
http://www.gilev.ru/forum/
http://www.gilev.ru/events/ 1 марта
если купить нет возможности, попросите одолжить книжку у знакомых из фирм франчайзи почитать
документация к 1С:КИП пожалуй самая адекватная из всего что выпустил 1С
там есть информация, которая также частично продублирована на ресурсе
как правило нужно потратить несколько недель на «пропитывание знаниями» и затем можно записаться на курсы
дополнительно расширить опыт можно используя наши бесплатные сервисы
и задать вопросы в специализированным форуме по быстродействию 1с
и пообщаться с нами «в живую» на партнерском семинаре
Статья интересная и полезная, спасибо автору.
у меня есть вот еще какие жизненные наблюдения
— тяжелые запросы в скульной базе работают шустрее еще возможного файлового варианта при прочих равных
— скульная база проигрывает файловой при прочих равных, если в качестве сервера используется неподходящая машина
ну, вообще да, файловая база — отличный вариант, пока она работает в своей «зеленой зоне». Дальше уже скуль. Все попытки всякими ухищрениями продлить жизнь файлового варианта — это костыли замедленного действия.
просьба проголосовать вhttp://forum.infostart.ru/forum1/topic80699/
(17) ManyakRus, а почему бы не использовать postgre, был опыт, справился там, где mssql падал (конфигурации типовые) 🙂
(28) ivanov660,
postgre не юзал, и я в основном программист, сисадминю только немножко.
про postgre писали что он в связке с 1С не умеет делать блокировки только одной строки а не всей таблицы, это плохо, но я точно не знаю.
(28) ivanov660,
не очень верится
про апач порадовало, чем апач отличается от толстого непонятно.
(30) Gilev.Vyacheslav,
Закрытие месяца для типовой бухгалтерии, postgre без проблем.
(32) ivanov660, это не говорит ничего о MS SQL Server, логика у вас «порушенная» )))
(33) Gilev.Vyacheslav,
Следуя Вашей логике, получается: что проблем у программного обеспечения не бывает, релизы 1С не отзывает и др. — с чем я не согласен.
Да, MSSQL падал в совместно с 1С. Причин рассмотренной ситуации может быть много: проблемы релиза 1с, платформы, взаимодействия 1с и MSSQL и др.
Или Вы решили немного потроллить?
(34) ivanov660,
Да, MSSQL падал в совместно с 1С. Причин рассмотренной ситуации может быть много: проблемы релиза 1с, платформы, взаимодействия 1с и MSSQL и др.
Это как раз по Вашей логике. При чем Вы явно утверждаете что Постгрес не падает, а скуль — падает.
Так я не только утверждаю, но и констатирую ФАКТ 🙂 Думаю дальнейший диалог бессмысленный
Не рассмотрен вариант файловая 8.2 + вебсервер — до 10-20 пользователей на тонком через вебсервер
Неоднократно таким образом существенно повышалась производительность без затрат.
Также было подтверждение от других разработчиков — достаточно уважаемых на этом форуме
(36) ivanov660, у меня не падает скуль, что я делаю не так
(37) kiruha, см. (13)
Где то так и есть …Больше 10 пользователей на файловой — проблемы, решаемые только скоростью записи — уменьшением времени транзакции. Многопоточность на файловой только при работе с различными ресурсами.
Но, запросы в монопольном режиме, особенно с вложенными таблицами (изврат) и соединение более 4 «И» в условии где, и SQL ложится :), а файловая живет.
А реально хотелось бы увидеть различие в скорости работы на одном и том же оборудовании и окружении 8.1 и 8.2. Есть ли такие сравнения, Вячеслав ?
8.1 это некрофилия ))) нету и надеюсь не будет, я бы еще понял про 8.3
Мир этому дому!
Статья интересная — автору плюс. Обсуждения не менее интересные — мнения разные, истина где-то посредине. Надеюсь, когда нибудь приложения 1С будут «летать», и проблема быстродействия отойдет только в супер-большие проекты, сегодня больше следует уповать на уменьшение ошибок в платформе.
Достойная замена файловым архаизмам… вот бы ещё базу данных оптимизировали и вообще цены не было бы
Я хотел бы отметить еще один момент, который вытекает из логики статьи, но напрямую в ней не обозначен.
Файловые базы вполне можно использовать как технологический инструмент для выполнения отдельных ресурсоемких операций над тяжелой базой.
У меня был опыт группового удаления документов (> 100 000 штук) из базы с контролем целостности.
База занимала порядка 20 Гб, после выгрузки в файловую версию удаление ускорилось в 2 раза.
Эксперимент на подобных базах проводился неоднократно на разных серверах, значительное повышение производительности отмечалось во всех случаях.
После чистки база заливалась обратно на сиквел и благополучно жила там.
Как оказалось на практике все неоднозначно.
В одних случаях файловый вариант лучше. Например когда нужно работать с большим деревом на форме. Около 17000 строк загружаются за 1 минуту, а в клиент-серверном все 7 минут. Разница колоссальная. Хотя с другой стороны в толстом клиенте это 2 минуты, т.е. только в 2 раза медленнее….
Но в то же время если включить РЛС то файловая база начинает сильно тупить, даже если работает только один пользователь. К примеру, в конфигурации СППР задачи очень долго (десятки секунд для несчастных 20-ти задач) отображаются для пользователя с ограниченными правами, а на серверной базе даже не замечаешь разницы (работает быстро).
Интересная статья