Сравнение скорости доступа к данным 1С:Предприятия 7.7 в сетевом режиме DBF и в режиме работы с сервером Вирт:V7DBNet
Данное тестирование не является всесторонним, его цель проста - как можно более
наглядно продемонстрировать преимущество использования сервера Вирт:V7DBNet, вместо сетевого доступа к файлам базы данных.
В качестве метода тестирования был выбран самый "неудобный" для сервера V7DBNet - полный перебор справочника с проверкой элементов на удовлетворение условию. Такой метод, сводит на нет использование кэш, и позволяет непосредственно продемонстрировать эффективность механизмов доступа к данным.
Тест выполнялся на двух компьютерах в локальной сети. На первом были размещены: файлы баз данных, платформа 1C, установлен сервер V7DBNet версии 2.0.0.1, а также запущены две неактивные сессии, одна в режиме сервера, вторая в режиме DBF, для имитации "второго пользователя".
Как известно, производительность 1С сильно падает при подключении к базе по сети более одного пользовательского сеанса (проблема второго пользователя), причем не обязательно чтобы "второй" сеанс был активен. Дело в том, что операционная система сервера отключает сетевое кэширование файлов, в случае их открытия более чем одним сеансом.
На втором компьютере выполнялись сами тесты.
Справочник для тестирования был заполнен 50000 элементами, размер его файла составил примерно 50Mb.
Во всех тестах использовались одинаковые данные. Результаты тестирования оцениваются в тысячных долях секунды. "Железо" компьютеров значение не имеет, т.к. для оценки или повторения тестов, большее значение имеют относительные показатели, а не абсолютные.
Тест 1: Перебор справочника в одном активном сеансе: 1С в сетевом DBF режиме, и в режиме сервера V7DBNet
Тест 2: Перебор справочника в одном активном сеансе: 1С в сетевом DBF режиме при помощи ВК 1sqlite, и в режиме сервера V7DBNet + 1sqlite
1sqlite - внешний компонент by orefkov реализующий механизм прямых запросов к DBF базе данных 1С.
Простой перебор, в данной реализации теста, не эффективен для такого инструмента как 1sqlite. Но результат теста интересен. В случае стандартной платформы, 1sqlite явно упирается в скорость обмена данными, т.к. использует родные средства 1С доступа к данным. В случае V7DBNet, видимо, проблемным местом является интерпретатор 1С, который в данном тесте фактически заменен на 1sqlite.
На мой взгляд: V7DBNet + 1sqlite - очень удачное сочетание.
Тест 3. Перебор справочника в двух активных сеансах стандартной платформы 1С в сетевом DBF режиме
Тест 4. Перебор справочника в двух активных сеансах в режиме сервера V7DBNet
Тест 5. Перебор справочника в двух активных сеансах в режиме сервера V7DBNet + 1sqlite
Обобщенные результаты тестирования в виде диаграммы:
Если Вы еще сомневаетесь в необходимости перехода на сервер V7DBNet, добавлю, что в обычных рабочих ситуациях, эффективно используется локальный кэш клиента V7DBNet. При достаточном размере кэш, скорость доступа к данным, проверено, повышается минимум в два раза. И это без необходимости изменения конфигурации. А применение 1sqlite совместно с V7DBNet, еще увеличит скорость. Осмелюсь предположить, что более эффективного решения для повышения производительности 1С:Предприятия 7.7 чем V7DBNet + 1sqlite в данный момент не существует. А если брать во внимание соотношение производительность / стоимость, тем более.
С уважением, Анатолий Щербаков.
Скачать структуру справочника (MD), обработку для его заполнения, а
также обработки, используемые при тестировании, для самостоятельной
проверки результатов, можно здесь.