Страница 3 из 4

Добавлено: 11 янв 2007, 17:50
evchic
WiRuc писал(а):Предлагаю очистить журнал и настроить в плане обслуживания перестройку индексов.
А можно както руками запустить перенастройку индексов?
И возможно ли ее делать при работающих пользователях?

Добавлено: 11 янв 2007, 18:38
WiRuc

Код: Выделить всё

DBCC SHRINKDATABASE ('', 0, NOTRUNCATE)
go
CHECKPOINT
go

EXEC dbo.sp_MSforeachtable 'DBCC DBREINDEX (''?'') WITH NO_INFOMSGS; UPDATE STATISTICS ? WITH FULLSCAN'
go
CHECKPOINT
go

DBCC SHRINKDATABASE ('', 0, NOTRUNCATE)
go
DBCC UPDATEUSAGE (0) WITH COUNT_ROWS,NO_INFOMSGS 
go
CHECKPOINT
go
Запускать при работающих пользователях можно, но крайне нежелательно, т.к. возможны блокировки, тормоза и т.д. Лучше запускать на ночь.

Добавлено: 11 янв 2007, 18:50
evchic

EXEC dbo.sp_MSforeachtable 'DBCC DBREINDEX (''?'') WITH NO_INFOMSGS; UPDATE STATISTICS ? WITH FULLSCAN'
go
здесь что то менять нужно? что означает "?"

Добавлено: 11 янв 2007, 19:02
WiRuc
здесь что то менять нужно? что означает "?"
Ничего менять не нужно. В QA выбираете ту базу, которую хотите обработать и запускаете скрипт.

Добавлено: 12 янв 2007, 09:44
Гарик
Стирите таблицу X$JOURNAL
Скриптом В базе!
"Пример Скрипта"
DELETE FROM [databasename].[dbo].[X$JOURNAL]

Добавлено: 12 янв 2007, 11:26
WiRuc
Стирите таблицу X$JOURNAL
Скриптом В базе!
"Пример Скрипта"
DELETE FROM [databasename].[dbo].[X$JOURNAL]
Если делать так, то это аналогично сжатию журнала из суппорта, тормозит сильно.
Быстро полностью очистить журнал можно вот-так:

Код: Выделить всё

exec dbo.sp_execresultset N'select ''truncate table ''+name from sysobjects where type=''U'' and name like ''J$%'''
truncate table x$journal
go
checkpoint
go
Внимание!!! Нельзя запускать скрипт, если у вас настроен корпо-обмен. Содержимое таблиц журнала стирается полностью, перед первым запуском рекомендую сделать бэкап базы.

Добавлено: 12 янв 2007, 12:25
evchic
А где находится "журнал транзакций"? как его посмотреть?
Можно ли его урезать?
Или допустим выкинуть из него древние транзакции?

Добавлено: 12 янв 2007, 12:40
WiRuc
evchic писал(а):А где находится "журнал транзакций"? как его посмотреть?
Можно ли его урезать?
Или допустим выкинуть из него древние транзакции?
Настройте план обслуживания, это уже раньше говорилось.

Добавлено: 12 янв 2007, 17:05
evchic
WiRuc писал(а):

Код: Выделить всё

DBCC SHRINKDATABASE ('', 0, NOTRUNCATE)
go
CHECKPOINT
go

EXEC dbo.sp_MSforeachtable 'DBCC DBREINDEX (''?'') WITH NO_INFOMSGS; UPDATE STATISTICS ? WITH FULLSCAN'
go
CHECKPOINT
go

DBCC SHRINKDATABASE ('', 0, NOTRUNCATE)
go
DBCC UPDATEUSAGE (0) WITH COUNT_ROWS,NO_INFOMSGS 
go
CHECKPOINT
go
Запускать при работающих пользователях можно, но крайне нежелательно, т.к. возможны блокировки, тормоза и т.д. Лучше запускать на ночь.
После выполнения скрипта БД выросла еще!!!
Побывал на тестовой она была 24Гб после чего стала 26Гб

Добавлено: 12 янв 2007, 17:41
WiRuc
Вырос журнал или данные?
Приведите результаты выполнения sp_helpfile

Добавлено: 12 янв 2007, 18:04
evchic
Выросла DATA!

1 STFSQLSystem.dat PRIMARY 223680 KB Unlimited 1024 KB data only
2 STFSQLLog.dat NULL 78848 KB Unlimited 1024 KB log only
3 STFSQLData.dat DATA_SEG 8084928 KB Unlimited 1024 KB data only
4 STFSQLIndex.dat INDEX_SEG 17597120 KB Unlimited 1024 KB data only
5 STFSQLJournal.dat OURNAL_SEG 30720 KB Unlimited 1024 KB data only

Добавлено: 12 янв 2007, 18:31
WiRuc
А теперь приведите результаты

Код: Выделить всё

DBCC UPDATEUSAGE (0)
go
exec sp_spaceused
go

Добавлено: 12 янв 2007, 18:44
evchic
STFSQL 25406.56Mb 3635,58Mb

22214352 KB 8234848 KB 13894688 KB 84816 KB

Добавлено: 12 янв 2007, 18:48
WiRuc
А до запуска?

Добавлено: 12 янв 2007, 18:51
evchic
до запуска чего?