Как переиндексировать БД 1С в самом SQL? #203984


#0 by TDI
Вот собственно вопрос...
#1 by TDI
DBCC Checkdb ('_sql', Repair_Rebuild) непомогает . . .
#2 by ШтушаКутуша
sp_MSforeachtable "DBCC DBREINDEX ('?') WITH NO_INFOMSGS"
#3 by smaharbA
use "karat_mebel" DECLARE @MyTable varchar DECLARE @MyIndex varchar DECLARE MyCursor CURSOR FOR SELECT o.name, i.name FROM sysobjects o INNER JOIN sysindexes i ON o.id = i.id WHERE (o.xtype = 'U') AND (INDEXPROPERTY(i.id, i.name, 'isStatistics') = 0) AND (i.dpages > 0) ORDER BY o.name, i.indid OPEN MyCursor FETCH NEXT FROM MyCursor INTO @MyTable, @MyIndex WHILE @@FETCH_STATUS=0 BEGIN PRINT 'Дефрагментация индекса '+@MyIndex+' из таблицы '+@MyTable DBCC INDEXDEFRAG (0,@MyTable,@MyIndex) DBCC UPDATEUSAGE (0,@MyTable,@MyIndex) DBCC DROPCLEANBUFFERS FETCH NEXT FROM MyCursor INTO @MyTable, @MyIndex END CLOSE MyCursor DEALLOCATE MyCursor
#4 by TDI
smaharbA это что за скрипт ?  :)
#5 by smaharbA
скуль, реиндексирует обновляет дефрагментирует индексы, ну и дропает буфер на всякий случай... можно удаленно... (но уже VBS) Const adOpenStatic = 3 Const adLockOptimistic = 3 User="Пользователь" 'Это администратор домена или того компа где SQL (если нет домена) Pass="Пароль" 'это его пароль DB="karat_mebel" 'Это база SQLServer="proxysrv" 'это скуль сервер Set objConnection = CreateObject("ADODB.Connection") Set objRecordSet = CreateObject("ADODB.Recordset") Command="use """ & DB """ & vbCrLf & _ "DECLARE @MyTable varchar" & vbCrLf & _ "DECLARE @MyIndex varchar" & vbCrLf & _ "DECLARE MyCursor CURSOR FOR" & vbCrLf & _ "SELECT o.name, i.name" & vbCrLf & _ "FROM sysobjects o INNER JOIN sysindexes i ON o.id = i.id" & vbCrLf & _ "WHERE (o.xtype = 'U') AND (INDEXPROPERTY(i.id, i.name, 'isStatistics') = 0) AND (i.dpages > 0)" & vbCrLf & _ "ORDER BY o.name, i.indid" & vbCrLf & _ "OPEN MyCursor" & vbCrLf & _ "FETCH NEXT FROM MyCursor INTO @MyTable, @MyIndex" & vbCrLf & _ "WHILE @@FETCH_STATUS=0" & vbCrLf & _ "BEGIN" & vbCrLf & _ "DBCC INDEXDEFRAG (0,@MyTable,@MyIndex)" & vbCrLf & _ "DBCC UPDATEUSAGE (0,@MyTable,@MyIndex)" & vbCrLf & _ "DBCC DROPCLEANBUFFERS" & vbCrLf & _ "FETCH NEXT FROM MyCursor INTO @MyTable, @MyIndex" & vbCrLf & _ "END" & vbCrLf & _ "CLOSE MyCursor" & vbCrLf & _ "DEALLOCATE MyCursor" & vbCrLf objConnection.Open "Provider=SQLOLEDB;Data Source=" & SQLServer & ";Trusted_Connection=Yes;Initial Catalog=" & DB & ";User ID=" & User & ";Password=" & Pass & ";" objRecordSet.Open Command, objConnection, adOpenStatic, adLockOptimistic objConnection.Close
#6 by ШтушаКутуша
(4,5) Прошу прощения,Коллега,но реиндексации (ре-воссоздания) индексов здесь,как раз и не происходит,дефрагмент.,да,согласен,но реиндексация-ни божеж мой!
#7 by smaharbA
а это что DBCC UPDATEUSAGE ?
#8 by TDI
млин, у меня база нифига не работает.... в пользовательском режиме заходит, а при выгрузке архива в конфигураторе, или Тестирования базы выдаёт ошибку native 21 Fatal Error 7987..... Невосстановимая ошибка БД... Что делать?
#9 by avmlvm
не путай обновление статистики и реиндексацию :-)))
#10 by smaharbA
+ немного трезв я... но вроде так оно
#11 by ШтушаКутуша
тогда уж,явно указать: sp_MSforeachtable "DBCC Update Statistics ?"
#12 by smaharbA
Ну да стат тоже конечно
#13 by smaharbA
Домой я, теперь в хате двушке, компа пока нет, все ведь с работы постил :)
#14 by ШтушаКутуша
Ну слава богу,абрамчик! :))) сэрегировал! А то я уж подумал,что ты сапсэм...тово! :)
#15 by TDI
Народ, ну подскажите откуда эта ошибка Fatal Error 7987..... и как её исправить...
#16 by avmlvm
А ты типа такого - смотрел???
#17 by ШтушаКутуша
"...If any errors are found, they cannot be repaired..." Однако! Короче,вешалка?
#18 by avmlvm
я бы пока не поздно - слелал бы бэкап базы хотя бы средствами 1С... мало ли чЁ...
#19 by ШтушаКутуша
вылетает,при архивации.
#20 by ШтушаКутуша
Я бы робко предложил,повыгружать все антивирусы,удалить в syslog все-все. А перед этим...проверить диски(или на худой конец дефрагментировать). ...Переустановить SQL и/или 1С,короче-шаманство.
#21 by avmlvm
А у тебя чЁ за сиквел?
#22 by ШтушаКутуша
+21 и сервис паки?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С