Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Перемещение всех таблиц в файловую группу  [new]
aule22
Member

Откуда:
Сообщений: 8
Прочитал тут интересную статью https://www.sqlskills.com/blogs/paul/why-you-should-not-shrink-your-data-files/
И понял, человек то дело пишет, вот надо стло шринк сделать и это было очень грустно и долго, причем при всего то 200гб базе.
Может кто поопытней подскажет, как все таблицы переместить запросом в другую файловую группу, т.е. пересоздать имеющиеся кластерные индексы и т.д.
Догадываюсь, что как то можно использовать sp_msforeachtable, у кого то есть подобный опыт?
Как то создавать индексы с MAXDOP = 24 все веселей, чем ждать однопоточного перемещения :(
10 сен 16, 04:45    [19649931]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение всех таблиц в файловую группу  [new]
komrad
Member

Откуда:
Сообщений: 5910
aule22
Догадываюсь, что как то можно использовать sp_msforeachtable, у кого то есть подобный опыт?

на всех таблицах есть кластерный индекс?

http://sqlmatters.com/Articles/Moving a Table to a Different Filegroup.aspx
10 сен 16, 10:12    [19650058]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение всех таблиц в файловую группу  [new]
aule22
Member

Откуда:
Сообщений: 8
komrad,

о, нашел

SELECT  @@Servername AS Server ,
        DB_NAME() AS DBName ,
        isc.Table_Name AS TableName ,
        isc.Table_Schema AS SchemaName ,
        Ordinal_Position AS  Ord ,
        Column_Name ,
        Data_Type ,
        Numeric_Precision AS  Prec ,
        Numeric_Scale AS  Scale ,
        Character_Maximum_Length AS LEN , -- -1 means MAX like Varchar(MAX) 
        Is_Nullable ,
        Column_Default ,
        Table_Type
FROM     INFORMATION_SCHEMA.COLUMNS isc
        INNER JOIN  information_schema.tables ist
              ON isc.table_name = ist.table_name 
--      WHERE Table_Type = 'BASE TABLE' -- 'Base Table' or 'View' 
ORDER BY DBName ,
        TableName ,
        SchemaName ,
        Ordinal_position;  
10 сен 16, 10:42    [19650069]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение всех таблиц в файловую группу  [new]
aule22
Member

Откуда:
Сообщений: 8
Теперь надо вот это
_AccumRg11943	dbo	1	_Period	datetime
_AccumRg11943	dbo	2	_RecorderTRef	binary
_AccumRg11943	dbo	3	_RecorderRRef	binary
_AccumRg11943	dbo	4	_LineNo	numeric
_AccumRg11943	dbo	5	_Active	binary
_AccumRg11943	dbo	25	_Fld620	numeric


Привести к вот этому

 CREATE UNIQUE CLUSTERED INDEX [_Accum11943_ByPeriod_TRN] ON [dbo].[_AccumRg11943]
(
	[_Fld620] ASC,
	[_Period] ASC,
	[_RecorderTRef] ASC,
	[_RecorderRRef] ASC,
	[_LineNo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = ON, IGNORE_DUP_KEY = OFF, DROP_EXISTING = ON, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, MAXDOP = 8, DATA_COMPRESSION = PAGE) ON [FILEGROUP]

GO 
10 сен 16, 10:50    [19650077]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение всех таблиц в файловую группу  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
FAQ по форуму - сложение текстовых полей в запросе
+ пошукайет тему - скипт БД программно , там более вменяемое решение есть ,чем вы написали
12 сен 16, 08:53    [19653258]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить