1С Предприятие 7.7. Документация



         

Почему SQL "тормозит"? - часть 3


Скорость работы такой системы прямо связана с объемом обрабатываемой базы данных. Они начинают ощутимо "тормозить", когда база данных достигает объема свыше 200-300Мб и при приближении к 1Гб практически просто перестает работать. Цифры конечно приблизительные и зависят от используемого программного обеспечения и формата базы данных. Например, при использовании формата таблиц базы данных Paradox торможение наступает значительно позже, чем при использовании формата DBase. Когда "торможение" ощутимо дает о себе знать, пользователи системы идут на различные хитрости: закрывают старую базу и открывают новую каждый квартал, пытаются удалить старые данные и т.п. Однако любой бухгалтер скажет Вам, что данные нужны ему не за квартал, а минимум за год и предпочтительно в динамике, а не в виде отдельных кусков. Да и долги клиентов иногда тянутся годами. Временным решением проблемы в такой ситуации может быть увеличение пропускной способности сети за счет установки 100-мегабитной сети вместо 10-мегабитной и интеллектуальных маршрутизаторов вместо тупых хабов. Однако, маршрутизаторы чрезвычайно дороги, а 100Мбит сеть даст повышение пропускной способности 2.5-3 раза (а не в 10 раз, как можно было бы ожидать!!!). Да и зачем увеличивать пропускную способность сети, если жесткий диск сервера уже работает на пределе своей производительности? Через пол-года Ваша база данных вырастет еще на 300-500Мб и система опять заткнется, пустив по ветру все вложенные в модернизацию денежки. Не следует забывать и еще об одной значительной детали. Это архивирование. Попробуйте заархивировать базу данных объемом 1-1.5Гб - за время потребное для архивации вы можете успеть пообедать, посмотреть кино и поругаться с начальником. А ведь это нужно делать каждый день. И при этом во время архивирования ни один из пользователей с базой работать не может.

Теперь рассмотрим SQL-систему ( т.е. клиент-серверную систему). Если кто-то говорит Вам, что у него сильно тормозит SQL - спросите его, какой у него сервер. Если он ответит, что-то вроде: "…Pentium 266, 64Мб ОЗУ и UDMA IDE", то можете смело сказать ему, что он … не слишком квалифицированный специалист. Серверы для SQL-систем должны иметь значительно большие ресурсы. PentiumII 300Mhz со 128Мб ОЗУ и Ultra Wide SCSI дисками - это пожалуй тот минимум, на котором может НОРМАЛЬНО функционировать программное обеспечение MS SQL Server с 5-8 подключенными клиентами. Заметьте при этом, что сеть с пропускной способностью 100Мбит совсем не обязательна. Все дело в том, что при работе с SQL-сервером рабочая станция не качает базу данных к себе по сети. Она просто передает по сети достаточно компактный запрос на сервер, который выполняет запрос, например производит выборку, и передает результат запроса обратно на рабочую станцию. Таким образом, трафик по сети значительно снижается, поскольку перекачки базы не происходит, а по сети передаются только запросы и результаты их выполнения. Конечно, если при разработке клиентской части программного обеспечения будет допущена ошибка и будет запрограммирован запрос, результатом выполнения которого является вся база данных или значительная ее часть, то вся эта информация будет качаться на рабочую станцию, выдавшую такой  запрос. Но это уже по большей части лежит на совести разработчиков прикладных задач, т.е. применительно к программам "1С" - на совести тех, кто занимается настройками (и на совести разработчиков из "1С" - в части запрещения оптимизации таких запросов).




Содержание  Назад  Вперед