Имя: Пароль:
1C
 
DBCC DBREINDEX
0 СуперМега Монстр
 
05.05.09
14:01
пишу:
DBCC DBREINDEX(UPPFORUP)

о оно мне: )))
@Сообщение 2501, уровень 16, состояние 45, строка 1
Невозможно найти таблицу или объект с именем "UPPFORUP". Проверьте системный каталог.@

другие команды проходят
что делать?
1 ДенисЧ
 
05.05.09
14:02
Внимательно прочитать описание команды?
2 mikecool
 
05.05.09
14:02
почитать справку :)
ей нада давать в параметр строку, не помню - толи имя БД, толи таблицы
3 СуперМега Монстр
 
05.05.09
14:03
(1)я читал
4 ДенисЧ
 
05.05.09
14:05
(3) Ну тогда покажи её сюда (нету у меня под рукой). Точно чего-то не углядел. Просто синтаксиси команды
5 mikecool
 
05.05.09
14:06
а это, кажетсся, не команда , а системная хранимка... ошибаюсь?
6 СуперМега Монстр
 
05.05.09
14:07
(2)с "UPPFORUP" тоже самое
7 ДенисЧ
 
05.05.09
14:10
(5) ошибаешься
(6) не ", а '. И всё-таки покажи описание.
8 IronDemon
 
05.05.09
14:11
Синтаксис

DBCC DBREINDEX
(
       'table_name'
   [ , 'index_name' [ , fillfactor ] ]
)
   [ WITH NO_INFOMSGS ]



В следующем примере перестраиваются все индексы для таблицы Employee базы данных AdventureWorks при значении коэффициента заполнения 70.


USE AdventureWorks;
GO
DBCC DBREINDEX ("HumanResources.Employee", " ", 70);
GO
9 ДенисЧ
 
05.05.09
14:12
(0) http://technet.microsoft.com/ru-ru/library/ms181671.aspx

Б. Перестроение всех индексов

В следующем примере перестраиваются все индексы для таблицы Employee базы данных AdventureWorks при значении коэффициента заполнения 70.
USE AdventureWorks;
GO
DBCC DBREINDEX ("HumanResources.Employee", " ", 70);
GO
10 ДенисЧ
 
05.05.09
14:12
(8) :-)

Видимо, (0) пытается всю базу однимах побивахом...
11 Salvador Limones
 
05.05.09
14:13
(8)(9) Вы братья штоле?
12 mikecool
 
05.05.09
14:13
(8) точно, ему имя таблицы подавать нада
13 ДенисЧ
 
05.05.09
14:14
(11) нет, однофамильцы :-)
14 IronDemon
 
05.05.09
14:14
15 IronDemon
 
05.05.09
14:15
(14) + если хочешь ручками делать.
В 2005 есть планы.
16 СуперМега Монстр
 
05.05.09
14:17
ну и что делать?
17 IronDemon
 
05.05.09
14:17
(16) Бросай ты эту работу :D
18 СуперМега Монстр
 
05.05.09
14:19
(17)нет - я уже час как тыкаю и мсдн читаю, теперь это дело ПРИНЦИПА!
19 ДенисЧ
 
05.05.09
14:20
(16)
Declare @tname varchar(50)
Declare @iname varchar(50)


declare crs Cursor for
SELECT o.name as TableName, i.name as indexName from sysobjects o, sysindexes i
where i.id = o.id
and i.groupid <> 0
and o.type = 'U'
and i.name <> ''
order by o.name, i.name
open crs
fetch next from crs into @tname, @iname
while @@fetch_status = 0
begin
SELECT 'Table: '+@tname+'    index: '+@iname
dbcc indexdefrag (0, @tname, @iname)
fetch next from crs into @tname, @iname
end

close crs
DEALLOCATE crs

дефрагментит все индексы. Примени немного головы и ты получишь решение.
Или выдерни из клюшек 1s_dbreindex
20 СуперМега Монстр
 
05.05.09
14:23
(19)спасибо это я уже всё видел, я хочу что бы отработало так:
v8: DBCC DBREINDEX

@Инструкция DBCC DBREINDEX позволяет перестроить все индексы таблицы с помощью одной инструкции. Это проще, чем кодирование множества инструкций DROP INDEX и CREATE INDEX. Так как работа выполняется одной инструкцией, инструкция DBCC DBREINDEX автоматически становится атомарной, в то время как отдельные инструкции DROP INDEX и CREATE INDEX необходимо включить в транзакцию, чтобы они стали атомарными. Кроме того, инструкция DBCC DBREINDEX обеспечивает более глубокую оптимизацию по сравнению с отдельными инструкциями DROP INDEX и CREATE INDEX.
@
21 ДенисЧ
 
05.05.09
14:24
(20) "позволяет перестроить все индексы таблицы".
А ты что делаешь? Всю базу одним махом распахиваешь?
22 СуперМега Монстр
 
05.05.09
14:31
(21)да облажался мелкософт, а ведь DBreidex....
23 ДенисЧ
 
05.05.09
14:32
(22) Облажался ты. Ибо читать не умеешь,
24 СуперМега Монстр
 
05.05.09
14:36
(23)checkDB

да я и не читал пока сюда не скопипастил )))
25 СуперМега Монстр
 
05.05.09
15:11
а как же нам перебрать все таблицы?
26 shaggyboy
 
05.05.09
15:19
откройте для себя msforeachtable
27 СуперМега Монстр
 
05.05.09
15:36
(26)супер гуд! спасибо

итого теперь так:

use UPPSMI
go
sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?')"
28 СуперМега Монстр
 
05.05.09
15:36
(26)а как базы перебрать не подскажешь?
29 ДенисЧ
 
05.05.09
15:37
(28) курсором по sysyobjects
30 shaggyboy
 
05.05.09
15:43
31 СуперМега Монстр
 
05.05.09
15:47
(30)это я пока не потяну )))
32 shaggyboy
 
05.05.09
15:49
(31)  а скопипастить?
33 СуперМега Монстр
 
05.05.09
15:50
(32)на рабочую не поставлю пока каждую команду не изучу, а там их много )))
34 shaggyboy
 
05.05.09
15:53
зря. у тя в (27) перестариваются все индексы, а при перестойке кластероного перестариваются все некластерные на этой таблице (автоматически). скрипт Гладченко это учитывает, твой нет.
35 СуперМега Монстр
 
05.05.09
15:55
(34)но ведь данные от этого не поплывут, насколько я понимаю просто дольше выполнятся будет?
36 shaggyboy
 
05.05.09
15:56
(34) ага, дольше. и впринципе все.
37 СуперМега Монстр
 
05.05.09
15:58
(36)ну и вот, а я своими глазами видел истероидов влезших кривыми руками в скуль а потом искавших кого подставить, так что только после изучения темы, то что не понимаю запускать не буду
38 shaggyboy
 
05.05.09
15:59
(37) качай русский BOL и вперед
39 СуперМега Монстр
 
05.05.09
16:00
(38)хорошо
40 СуперМега Монстр
 
06.05.09
09:56
а вот конфигуратор реиндекс делает наверно хранимой процедурой, а как бы её найти?
41 Serg_1960
 
06.05.09
10:27
Кину ссылку на v8: Самоотчет об ошибке "..terminated because a duplicate key was found for index..." - ветка не совсем "в тему" :( - только если с 10 по 16 топики почитать...
42 IronDemon
 
06.05.09
10:30
(0) SQL какой версии?
43 fisher
 
06.05.09
11:51
В SQL 2005 в Maintenance Plans в пол-пинка интерактивно создается задача по реиндексации нужных баз (генерится нужный скрипт и шедулится по желанию). В 2000 вроде тоже, но точно не помню...
44 СуперМега Монстр
 
06.05.09
13:47
(42)2005 экспресс
45 IronDemon
 
06.05.09
13:48
(44) читай (14) и (43)
46 СуперМега Монстр
 
06.05.09
13:49
(43)в (27)я уже получил результат, хочу заново теперь открыть вопрос:
нафига это почему-то нужно если есть конфигуратор?
47 СуперМега Монстр
 
06.05.09
13:49
(45) см пожалуйста (46)
48 shaggyboy
 
06.05.09
14:20
(40) посмотри профайлером.
49 СуперМега Монстр
 
12.05.09
11:40
(48)что-то я его в 2005 express не могу найти (((
50 Immortal
 
12.05.09
11:49
(49)а его там и нет, не ищи=)
51 СуперМега Монстр
 
12.05.09
11:56
(50)спасибо, я тоже так подумал, не найдя profiler.exe
вывод: express г.!