Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - MS SQL 2008 + 1C, переиндексация таблиц

Ответить
Настройки темы
MSFT SQL Server - MS SQL 2008 + 1C, переиндексация таблиц

Пользователь


Сообщения: 54
Благодарности: 5

Профиль | Отправить PM | Цитировать


Добрый день!
Ситуация следующая:
имеется
- windows server 2008 enterprise SP2 32-разрядный. Xeon E5410 2.33GHz (2 процессора), 16 Gb оперативки
- MS SQL Server 2008
- 1С 8.2.15.301
- Дисковая полка с 4 HDD 7200 rpm в raid10, где лежат базы 1С

Все было прекрасно, но после перехода на 1С 8.2 начались дикие тормоза в 1С. Покопавшись в интернете, наткнулся на массу схожих проблем, но в большинстве случаев совет по решению один: накатываем win serv 2008 x64 и 64-битную версию 1С. В моем случае это неприменимо, т.к. денег на 64-битную 1С-ку не дают. Причем 1С тормозит не только на удаленных машинах, но и на сервере, что вызывает подозрения в том, что дело в MS SQL Server. Стал копать, наткнулся на некий процесс оптимизации таблиц в SQL:
- Переиндексация таблиц БД командой DBCC DBREINDEX (table_name)
- Дефрагментация индексов БД командой DBCC INDEXDEFRAG (db_name, table_name, index_name)

И далее пример:
Код: Выделить весь код
CREATE PROCEDURE DBReindex AS
     SET NOCOUNT ON
     DECLARE @TableName char(32)
     DECLARE SysCur CURSOR FOR SELECT name FROM sysobjects WHERE type='U'
     OPEN SysCur
     FETCH NEXT FROM SysCur INTO @TableName
     WHILE @@FETCH_STATUS=0 BEGIN
          DBCC DBREINDEX (@TableName)
          FETCH NEXT FROM SysCur INTO @TableName
     END
     CLOSE SysCur
     DEALLOCATE SysCur
Т.к. я не силен в Transact-SQL просьба объяснить, что данный скрипт делает, и как его натравить на конкретную базу данных

Отправлено: 13:40, 05-10-2012

 

Ветеран


Сообщения: 2101
Благодарности: 144

Профиль | Отправить PM | Цитировать


Цитата art.andr:
Покопавшись в интернете, наткнулся на массу схожих проблем, но в большинстве случаев совет по решению один: накатываем win serv 2008 x64 и 64-битную версию 1С. »
Ни разу не видел фактов, когда бы именно такое решение решало проблему производительности 1С в SQL.
Вам нужно в SQL Management Studio раскрыть БД 1С, хранимые процедуры в БД, создать новую, в теле процедуры удалить то что там будет по умолчанию написано, и вставить текст вашей процедуры. Эта процедура делает перестройку индексов для таблиц БД. Затем в SQL Management studio в SQL Server Agent создать задание, которое будет запускать на исполнение созданную процедуру. Так нужно сделать для каждой БД. Под рукой 2008 нет, поэтому пошагово расписать не могу. Но общий смысл такой.
Но то что вы прочитали - что нужно ставить 2008 R 2 + 64 bit 1С - это полная фигня. Такая связка, конечно влияет на производительность, но никогда это не было 100%-м решением проблем производительности БД.

-------
"Нет" - войне.


Отправлено: 07:46, 08-10-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - MS SQL 2008 + 1C, переиндексация таблиц

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2007 - Сравнение таблиц. a715 Microsoft Office (Word, Excel, Outlook и т.д.) 1 16-06-2011 22:52
MySQL - Ломание таблиц в РНР Andji Программирование и базы данных 6 30-01-2010 17:06
Расположение таблиц Qwe1 Вебмастеру 4 19-06-2005 02:13
Верстка без таблиц NoOne Вебмастеру 12 08-06-2005 17:26
Переиндексация информации о сайте. Domashenko Alexey Вебмастеру 1 28-08-2003 11:15




 
Переход