|
Начинающим
| Опубликована: 10.06.2001, отредактирована: 26.03.2003 |
Автор:
toypaul
|
FAQ от 1С
Как увеличить быстродействие системы "1С:Предприятие" SQL-версии?
По умолчанию для работы через ODBC с данными "1С:Предприятия для SQL" используется протокол Named Рiрes. Однако этот протокол не является самым быстрым. Рекомендуется использовать протоколы TCР/IР или IРX/SРX. Для этого на рабочих станциях следует установить клиента SQL (запуская setuр с дистрибутива SQL).
Затем для MS SQL 6.5 следует в SQL Client Configuration Utility в закладке "Net Library" указать "Default Network" либо TCР/IР либо IРX/SРX (но не рекомендуется выбирать Named Рiрes или Multiрrotocol).
Для MS SQL 7.0 следует запустить Client Network Utility и в закладке "General" в поле "Default Network Library" указать соответствующий протокол.
Замена протокола может увеличить производительность в 2 и более раз.
Как сменить владельца базы в SQL Server 6.5?
В SQL Enterрrise Manager соединившись с нужным SQL Server следует в папке Logins создать нового пользователя (латинскими буквами), поставив галочку в графе Рermit для нужной базы. При этом в графе User должно стоять имя этого пользователя, а графа Alias должна быть пуста. В конце нажать Add. Затем в папке Databases войти в нужную базу и внутри зайти в папку Grouрs/Users в раздел Рublic. Внутри увидите пользователей — dbo и вновь введенного. Вновь введенного пользователя из этого списка следует удалить. Затем в меню Tools следует выбрать пункт SQL Query Tool. В окошке DB следует выбрать нужную базу. В закладке Query следует набрать команду
sр_changedbowner имя_пользователя
и нажать кнопку Execute Query. После чего в окне Results должно появиться сообщение "Database owner changed". При этом в свойствах данного пользователя в графе User вместо его имени появится "dbo". Затем в конфигураторе "1С:Предприятия" в параметрах соединения с базой SQL следует указать имя и пароль этого нового пользователя. Описание команды sр_changedbowner см. в книге Transact-SQL Reference из комплекта документации Microsoft SQL Server.
Как сменить владельца базы в SQL Server 7.0?
Сменить владельца базы данных можно следующим образом. — создать новый Login для нужного SQL Server. В дереве Enterprise Manager это следующий путь:
ИмяСервераSecurityLogin
При этом данному пользователю можно не давать никаких привилегий. Предположим, что имя нашего вновь созданного пользователя - AAA. — Запустить Query Analyzer. Выбрать в нем в качестве текущей базу данных, которой мы хотим назначить владельца. Выполнить команду: sp_changedbowner 'AAA' Пользователь AAA станет dbo для нужной базы данных.
При запуске "1С:Предприятие для SQL" выдается ошибка: SQL state 08004 (Native: 916) Server User ID 11 is not a valid user in database 'имя_базы'.
Если в Конфигураторе при открытии конфигурации или при запуске "1С:Предприятие 7.5 для SQL" выдается ошибка: SQL state 08004 (Native: 916) Server User ID 11 is not a valid user in database 'имя_базы', это означает, что в Конфигураторе в параметрах соединения с базой данных SQL 6.5 указано имя пользователя, который отсутствует в списке пользователей данной базы или не является ее владельцем.
При задании в конфигураторе параметров подключения к серверу SQL программа позволяет использовать только пользователя SA. Можно ли использовать еще одного пользователя?
Еще одного пользователя использовать нельзя, но можно SA заменить другим пользователем. Для этого нового пользователя надо сделать владельцем базы (dbo).
При запуске программы появляется сообщение, о том, что программа не может быть открыта в однопользовательском режиме.
Первый вариант. С базой уже работают (например, из Enterprise Manager). Второй вариант. Это может произойти после нештатного завершения клиентской программы, если сохранилось соединение с сервером. Проверка состояния соединения осуществляется Windows NT, периодичность прописана в системном реестре Windows, и по умолчанию составляет 2 часа (для протокола TCP/IP). В случае обнаружения обрыва соединения с клиентской программой Windows NT информирует SQL Server, и тот снимает задачу с помощью команды "kill process". Это можно сделать и вручную в Enterprise Manager. Для этого запустите SQL Query Tool и командой sp_who или sp_lock определите ID зависшего процесса. Затем дайте команду kill < ID процесса > (например, kill 12).
Каким образом отключить проверку целостности базы данных при запуске "1С:Предприятия для SQL"?
Проверка (точнее, процесс верификации структуры таблиц базы данных) проводится только при входе первого пользователя. Такая проверка необходима, и отключить ее невозможно. Длительность операции не зависит от наполненности базы данных, так как проверяется только структура таблиц.
Почему, если при работе с "1С:Предприятием 7.7 для SQL" в монопольном режиме запустить backup этой базы, появляется сообщение об ошибке?
Если система "1С:Предприятие для SQL" используется совместно с MS SQL Server 7.0, то при работе "1С:Предприятия" в монопольном режиме может наблюдаться следующий эффект. При попытке доступа со стороны какой-либо программы к базе данных в среде MS SQL Server 7.0, с которой уже работает "1С:Предприятие", "1С:Предприятие" может аварийно завершаться с сообщением об ошибке:
SQL State: 42000 Native: 924 Message: [Microsoft][ODBC SQL Server Driver][SQL Server]Database 'DB' is already open and can only have one user at a time
или
SQL State: 42000 ... Message: [Microsoft][ODBC SQL Server Driver][SQL Server]SELECT permission denied on column ...
Причина обусловлена особенностями поведения MS SQL Server 7.0 . Если какое-либо приложение установило соединение и выполняет запрос к базе данных, размещенной в среде MS SQL Server 7.0 и находящейся в режиме "single user", то попытка из другого приложения обратиться к этой же базе данных, приводит к тому, что запрос к базе данных, выполняемый первым приложением, завершается ошибкой. Поэтому не рекомендуется совмещать во времени регламентные процедуры MS SQL Server 7.0 (например, выполнение backup, проверку целостности и т. п.) и работу "1С:Предприятия" в монопольном режиме (пересчет итогов, перепроведение документов и т.п.). MS SQL Server 6.5 не имеет данной особенности.
Замечание (автор Вячеслав): Ответ на данный вопрос в принципе правильный но неполный, на мой взгляд. Мы долго мучались с этой проблемой. Ошибки выскакивали при внутренних (SQL Server) обращениях к базе, без всяких джобов и пр. Потом в доке на 1С откопали, что на SQL Server 7.0 нужно ставить 2-ой Service Pack. Теперь работаем без проблем. :))))) В 2000-ном SQL всё нормально.
Какими средствами SQL следует пользоваться для проверки базы данных "1С:Предприятия для SQL"
При работе в системе "1С:Предприятие для SQL" следует периодически проверять базу с помощью команды dbcc checkdb. Для этого нужно в Enterprise Manager в меню Tools выбрать пункт SQL Query Tool (для MS SQL 6.5) или SQL Server Query Analyzer (для MS SQL 7.0). Затем выбрать базу, в окне написать команду dbcc checkdb и нажать кнопку Execute Query.
При попытке записи конфигурации выдается ошибка : SQL State: 42000 Native: 170 Message: [Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near '1'.
Ошибка SQL State: 42000 Native: 170 Message: [Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near '1'.
выдается, если имя базы данных или имя пользователя начинается с цифры. Такие имена в SQL не допускаются. Также имя базы данных или имя пользователя не должно содержать пробелов. Подробнее об этом можно прочитать в SQL Books Online.
При конвертации базы из dbf в SQL при пересчете граф отборов журнала документов пересчет начинается с 1753 года, хотя документов с такой датой нет. Почему это происходит?
В SQL-версии дата 01.01.1753 соответствует нулевому значению. При конвертации (или сохранении конфигурации и реструктуризации) происходит пересчет начиная с документа с наименьшей датой. Если происходит пересчет граф отборов с 1753 года - очевидно в журнале документов есть документ с пустой датой. Чтобы его увидеть, установите интервал полного журнала документов с пустой даты по текущую и удалите документ, либо измените его дату.
Использование NT Terminal Server Edition совместно с 1С:Предприятием для SQL
Не рекомендуется на сервере с SQL Server выполнять какие-либо другие задачи, поскольку это замедляет работу SQL. Если возникла необходимость использовать NT Terminal Server Edition совместно с 1С:Предприятие для SQL, то SQL Server и NT Terminal Server Edition рекомендуется устанавливать на разные сервера
Какая аппаратная конфигурация сервера рекомендуется для работы с системой 1С:Предприятие для SQL, и какие есть рекомендации по настройке сервера?
Минимальные требования приведены в документации. Для увеличения быстродействия и более комфортной работы рекомендуется следующая аппаратная конфигурация : Сервер: PIII-400 и выше (лучше двухпpоцессоpный), 256-512Mb RAM, жесткие диски UW-SCSI (лучше аппаратный райд с кэшем 32Мб и выше), сетевая карта 100Мбит. Рабочие станции : желательно 32-64М RAM. Сеть: витая пара 100Мбит. При использовании сетевой карты 3COM 905B следует на сервере установить SP6a, либо последние драйвера с Web-сервера www.3com.com. При настройке сервера рекомендуется в "Control Panel" кликнуть на иконку "Network", в закладке "Services" кликнуть на "Server", и установить переключатель на пункт "Maximize Throughput for Network Applications". Затем в "Control Panel" кликнуть на иконку "System", в закладке "Performance" установить указатель "Performance boost for the foreground application" в положение "None".
Что использовать для архивирования базы данных 1С:Предприятия для SQL - SQL Server Backup или встроенные средства 1С:Предприятия (Выгрузить данные /Загрузить данные)?
Оба способа создания архивной копии базы данных - SQL Server Backup и выгрузка средствами 1С:Предприятия имеют свои преимущества. SQL Server Backup производится несколько быстрее, чем выгрузка средствами 1С Предприятия. Однако при этом не сохраняется файл конфигурации. Если конфигурация постоянно изменяется, то в этом случае следует точно отслеживать соответствие архивов данных и конфигурации. Достоинством выгрузки средствами 1С:Предприятия является возможность восстановить старый архив не только в формате MS SQL Server версии 6.5 или 7.0, но и в формате DBF. Достоинством SQL Server Backup является возможность архивировать непосредственно на ленту стриммера. Восстановление архивной копии данных, созданной средствами SQL Server Backup, возможно только на SQL Server той же версии и с теми же установками кодовой страницы и параметров сортировки (а для SQL Server 6.5 также необходимо, чтобы размеры файлов базы, куда восстанавливаем архивную копию, были не меньше, чем у исходной). При правильно настроенном SQL Server Backup можно восстановить данные с любой наперед заданной точностью, т.е. при архивировании информационной базы раз в день и копировании журнала транзакций раз в час можно восстановить данные с точностью до часа. Поэтому для создания архивной копии базы данных рекомендуется использовать как SQL Server Backup, так и выгрузку средствами 1С:Предприятия, так как именно в этом случае достигается максимальная надежность архивирования данных.
(По материалам диска ИТС фирмы 1С. Раздел FAQ)
наверх
|