Создан 10 сентября 2002 года,
последние корректировки внесены
19 ноября 2002 года в 22:48
Источник: www.gorbunov.ru/1с/
-
Далее по тексту слово "программа" - обычно означает "программа 1С: Предприятие 7.7".
-
Сокращение "БД" означает "база данных".
-
Сокращение "ИБ" означает "информационная база".
-
Под "сервером" обычно подразумевается "SQL-сервер"
Q: Что такое SQL-версия программы 1C: Предприятие?
A: Такой вариант программы 1C: Предприятие, который может хранить данные на SQL-сервере.
Q: Она очень отличается от не SQL-версии?
A: Для пользователя - дополнительное обучение не требуется. Для программиста - дополнительно обучение не обязательно. Для системного администратора необходимы дополнительные знания - немного различаются процедуры установки и резервного копирования.
Q: Сложно ли перейти с работы с обычной версией программы на работу с SQL-сервером?
A: Нет, в общем случае не сложно.
Другой вопрос, - как будет без дополнительной настройки работать после перехода на SQL-версию ваша информационная система (созданная на базе 1С: Предприятие 7.7). Может быть по-всякому: также, как и раньше, или лучше, или даже хуже.
Q: А какие еще кроме как SQL-сервера существуют способы хранения данных?
A: На большинстве предприятий программа хранит данные в файлах формата DBF.
Q: А что такое SQL-сервер?
A: Специальная программа, предназначенная для хранения базы данных и обеспечения другим программам доступа к этим данным.
Q: В чем основное отличие использования SQL-сервера для хранения данных?
A: Работая с БД, которая находится в файлах формата DBF, программа сама непосредственно читает и пишет в эти файлы.
Работая с БД, которая расположена на SQL-сервере, программа непосредственно с файлами данных работать не может, с ними работает один только SQL-сервер, а программы обращаются к SQL-серверу с запросами по чтению и изменению данных.
Q: Зачем нужен такой сложный доступ к данным?
A: В первую очередь, для надежности хранения данных. Например, понятие "разрушены индексы", часто встречающееся с БД в DBF-формате, при работе с SQL-сервером не существует.
Кроме того, такой сложный доступ к данным, в некоторых случаях, обеспечивает более быстрое получение данных.
Кроме того, такой сложный доступ к данным, в некоторых случаях, является единственным возможным для работы очень большого числа пользователей или для работы с очень большой базой данных.
Q: Будет ли работать быстрее программа если перейти на работу с SQL-сервером?
A: Не во всех случаях. Проведение документов в большинстве случаев - медленее.
Желательно оптимизировать конфигурацию под работу с SQL-сервером.
Q: В каких случая переход на SQL-версию принесет хоть какую-либо пользу?
A: Гораздо большая надежность хранения данных - для ответственных БД. Единственно возможный способ функционирования БД, если размер ваших SQL-файлов превысил несколько сотен мегабайт и продолжает расти. Или при очень большом числе пользователей. Более быстрое выполнение отчетов, если эти отчеты написанны с учетом того, что данные находяться на SQL-сервере.
Q: Что мне нужно для перехода на работу с SQL-сервером?
A: SQL-версия программы 1С: Предприятие 7.7 и SQL-сервер Microsoft SQL Server (MS-SQL Server), а также серверный вариант операционной систем Windows, поскольку MS-SQL Server отказывается устанавливаться на другие варианты Windows.
Q: Как отличить SQL-версию внешне?
A: Почти ничем. Можно ткнуться в меню "Помощь\О программе", там в самом верху будет надпись "1С: Предприятие 7.7 для SQL".
Q: Если я хочу работать с БД в DBF и с БД на SQL-сервере мне нужно ставить 2 варианта программы?
A: Нет. SQL-вариант прекрасно работает как SQL базами, так и с DBF базами.
Q: Какой можно использовать SQL-сервер?
A: Microsoft SQL Server (MS-SQL), начиная с версии 6.5, а лучше - 7.0 и выше.
Q: Могу ли я использовать PostgreSQL?
A: Нет. Только Microsoft SQL Server (MS-SQL), начиная с версии 6.5, а лучше - 7.0 и выше.
Q: А почему бы фирме 1C не сделать свою программу такой, чтобы она использовала другие сервера? Ведь есть стандарты на SQL?
A: Стандарты на SQL есть, но фактически он охватывает лишь базовые возможности различных SQL-серверов, а не базовые, но весьма нужные возможности - у каждого сервера - свои.
Программа, учитывающая эти различия будет сложнее как на этапе создания, так и на этапе поддержки, а, значит, выше будет ее себестоимость.
Q: Могу ли я использовать вариант MS-SQL из поставки Microsoft Office 2000, который называется MSDE2000?
A: У меня MSDE2000 работал нестабильно, а другие говорят, что все хорошо. Можете, но на свой страх и риск.
Q: Какой механизм защиты от несанкционированного копирования встрен в MS-SQL?
A: Серийный номер.
Q: Мы официально купили 1С: Предприятие 7.7 + Windows 2000 Server + MS-SQL. Не нашли серийного номера для MS-SQL.
A: В этой поставке серийный номер один и тот же у Windows 2000 Server и MS-SQL.
Q: Я не работал раньше с сервером MS-SQL. Сложно ли это?
A: Нет, не сложно. Фирма Microsoft старается сделать управление своими серверными программными продуктами доступным даже непрофессионалам.
Q: Как установить сервер MS-SQL?
A: Как любую другую программу - инсталлятором. Если установка осуществляется на русскую версию Windows, то все опции в инсталляторе - по умалчиванию.
Q: Сервер MS-SQL с настройками по умалчиванию ставить не надо!
A: Если на русскую версию Windows - то по умалчиванию все опции инсталлятора. Если вы считаете себя умным, то можете отказаться от некоторых частей MS-SQL сервера, которые не нужны программе.
Q: Что делать после инсталляции сервера MS-SQL?
A: Запустить программу SQL Enterprise Manager. С ее помощью подключиться к свежеинсталлированному серверу.
Q: Что необходимо создать на сервере MS-SQL?
A: В первую очередь, надо создать пользователя (пользователя не программы 1C: Предприятие, а пользователя в MS-SQL).
Дать ему права на создание БД.
Зайти в программу SQL Enterprise Manager от имени этого пользователя.
Создать БД.
Q: Зачем нужно создавать БД от имени специально созданного пользователя MS-SQL?
A: Иначе в дальшейшем программа не сможет работать с этой БД.
Q: Какой необходимо указать размер БД при создании ее на сервере MS-SQL?
A: БД будет увеличиваться автоматически по необходимости. Но можно и сразу создать файлы данных и лога размера равным двойному суммарному размеру файлов DBF-версии, которую вы собираетесь перегнать в SQL-версию.
Q: Как начать работу программы с SQL?
A: Создайте пустой каталог. Настройте программу так, будто бы в этом каталоге лежит БД в формате DBF (то есть как обычно). Запустите "Конфигуратор". При старте программа спросит вас какая будет БД - SQL или DBF. Ответите - SQL. Далее - смотри ниже.
Q: Как добраться до данных SQL?
A: Если при входе в пустой каталог вы выбрали SQL-вариант базы, то в "Конфигураторе". Появиться еще пункт меню "Администрирование\Параметры базы данных SQL".
Q: Какие нужно задать параметры для базы данных SQL?
A: Сервер - имя компьютера с SQL-сервером. База данных - название базы данных, которую вы создали специально для работы программы на SQL-сервере с помощью SQL Enterprise Manager. Пользователь - имя пользователя SQL-сервера, от имени которго была создана база данных на SQL-сервере. Пароль - его пароль.
Q: Все пользователи работают с SQL-сервером от имени одного SQL-пользователя?
A: Да все экземпляры программы подключаются к SQL-серверу от имени одного SQL-пользователя, того самого который создал БД на SQL-сервере.
Q: Используется ли обычный список пользователей программы при работе с SQL-сервером?
A: Да. Более того, список пользователей программы не должнен быть пуст, иначе вы не сможете работать.
Q: Как перенести данные из базы данных DBF в базу данных SQL?
A: В "Конфигураторе" программы DBF-базы "Администрирование\Выгрузить данные". Затем в "Конфигураторе" программы SQL-базы "Администрирование\Загрузить данные"
Q: Как перенести данные из базы данных SQL в базу данных DBF?
A: В "Конфигураторе" программы SQL-базы "Администрирование\Выгрузить данные". Затем в "Конфигураторе" программы DBF-базы "Администрирование\Загрузить данные"
Q: Как делать резервное копирование базы данных SQL?
A: В "Конфигураторе" программы "Администрирование\Выгрузить данные".
Q: Как делать резервное копирование базы данных SQL не отключая пользоватей?
A: Заранее делается копия файла 1Cv7.MD и файла со списком пользователей - в "Конфигураторе" программы "Администрирование\Сохранить". Во время работы можно делать резервное копирование средствами MS-SQL при помощи SQL Enterprise Manager. Подробнее - ниже.
Q: Резервное копирование средствами SQL невозможно при работе пользователей?
A: Заранее делается полная резервная копия (Complete Backup). В течение рабочего дня делаются копии лога транзакций MS-SQL (Transaction Log Only Backup). В случае чего для восстановления данных следует использовать "последний Complete Backup + все Transaction Log Only Backup, сделанные после этого Complete Backup'а"
Q: Не работает запланированное (Sheduled) резервное копирование средствами SQL!
A: Должен быть запущен сервис SQL Agent.
Q: После перехода на SQL версию бегунок на вертикальной полосе прокрутки в журналах и списках элементов справочников всегда посередине.
A: Это сделано для ускорения получения данных.
Дело в том, что с сервера SQL программа получает не все данные, а только те, которые ей нужны для отображения на экране. Программа не определяет сколько всего строк и какую часть она выводит на экран, следовательно, не может и рассчитать куда ставить бегунок прокрутки.
Q: После перехода на SQL версию программа стала работать гораздо медленее.
A: Возможно, у вас слишком слабый компьютер выделен под сервер SQL. Особенно чувствителей SQL сервер к количеству оперативной памяти. Не исключено, что конфигурация не приспособлена к SQL-версии. Современные типовые конфигурации от фирмы-изготовителя программы работают с SQL-сервером неплохо.
Q: У нас большая фирма, много пользователей и большая БД. Стоимость простоя очень велика. Для надежности хранения данных перешли на SQL. Жутко тормозит.
A: Вам поможет связка "терминальный сервер + SQL-сервер". Терминальный сервер обеспечит производительность, а SQL - сервер надежность. Компьютер под сервер должен быть выделен очень мощный, с огромным объемом оперативной памяти.
Q: Существуют ли особенности при программировании под SQL-версию?
A: Несколько иная оптимизация. Глюки ядра SQL-версии и не SQL-версии программы частью совпадают, а частью - различаются.
Q: Какие конструкции языка более оптимальны для SQL-версии?
A: Которые одной командой обрабатывают большие массивы данных.
Например, объект "Запрос" более предпочтителен, нежели последовательный перебор (конструкции "ВыбратьЧтоТо() и цикл ПолучитьЧтоТо()). Оптимизация относится только к объектам, предоставляющим доступ к данным в БД, но не к таблицам значений и спискам значений.
Q: Можно ли обращаться напрямую к таблицам SQL-сервера посредством запросов на языке SQL?
A: По чтению - да. Существуют даже специальные расширения (не от фирмы 1С) для программы 1C: Предприятие 7.7, которые позволяют это делать.
Q: Один пользователь - работает нормально (не монопольно). Другой - тоже. Вместе - не могут.
A: Каталог, в котором лежат файлы 1cv7.MD и иже с ним должен быть у всех пользователей общим.
Q: Надо ли давать пользователям доступ к файлам базы данных SQL-сервера?
A: Нет. Этого не нужно. К этим файлам обращается только сама программа MS-SQL сервер.
Q: Файл Transaction Log раздувается и раздувается.
A: Файл Transaction Log связан с процедурами резервного копирования сервера SQL. Он автоматически прекращает раздуваться после каждого резервного копирования, сделанного средствами SQL-сервера.
Q: Можно ли организовать распределенную БД, используя возможности репликаций, имеющиеся в сервере MS-SQL
A: Нет.
Пользуйтесь механизмами создания распределенных БД, созданным специально для программы 1C: Предприятие 7.7 фирмой 1С или другими фирмами.
Комментарии
8Спасибо. )
Всегда думал, что SQL - что-то сложное и недоступное. Теперь понял, что бояться особо нечего.