Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Перенос таблицы на другой физический диск  [new]
ыыыыы
Guest
SQL 2005

Имеем приличного размера БД. Нужно перетащить пару таблиц на другой диск. Для этого создаем другую filegroup с файлами на новом диске и выполняем ALTER TABLE ... MOVE TO

Все правильно? Кто-то так делал?
20 май 08, 11:12    [5687163]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
А хелп почитать?
20 май 08, 11:17    [5687200]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
создать кластерный индекс для этой таблицы в новой файловой группе.
20 май 08, 11:26    [5687267]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
ыыыыыыыыыы
Guest
Гавриленко Сергей Алексеевич
А хелп почитать?


Мая почитать ужо. Я задал практический вопрос - кто-то так делал?
20 май 08, 11:46    [5687435]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
ыыыыыыыыыы
Мая почитать ужо. Я задал практический вопрос - кто-то так делал?


И где Вы нашли MOVE TO в ALTER TABLE?
20 май 08, 11:48    [5687452]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
ыыыыыыыыыы
Guest
pkarklin
создать кластерный индекс для этой таблицы в новой файловой группе.


Все правильно. Проблема что имеем таблицу на 137 гиг и ни одного индекса в ней. Построение кластерного может убить сервер на пол дня. Жизни серверу по дисковому пространству осталось на пару дней. Поймать ответственного за аппликуху что бы все согласовать не могу - они ищо спять. Потому и задаю практические вопросы - времени на эксперименты минимум. А еще я хотел бы посмотреть в глаза разработчику аппликухи. С пристрастием посмотреть. Нафига нужна таблица с 200 миллионами записей без индексов...
20 май 08, 11:50    [5687478]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
ыыыыыыыыыыы
Guest
pkarklin
ыыыыыыыыыы
Мая почитать ужо. Я задал практический вопрос - кто-то так делал?


И где Вы нашли MOVE TO в ALTER TABLE?



ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/tsqlref9/html/f1745145-182d-4301-a334-18f799d361d1.htm


<drop_clustered_constraint_option> ::=  
    { 
        MAXDOP = max_degree_of_parallelism
      | ONLINE = {ON | OFF }
      | MOVE TO { partition_scheme_name ( column_name ) | filegroup
          | "default"}
    }
20 май 08, 11:52    [5687505]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
Glory
Member

Откуда:
Сообщений: 104751
drop_clustered_constraint_option
20 май 08, 11:53    [5687511]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
ыыыыыыыыы
Guest
Glory
drop_clustered_constraint_option


Я потому и спрашиваю - как это все сделать правильно и наименее болезненно :)
20 май 08, 11:55    [5687538]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
Glory
Member

Откуда:
Сообщений: 104751
ыыыыыыыыы
Glory
drop_clustered_constraint_option


Я потому и спрашиваю - как это все сделать правильно и наименее болезненно :)

Для тогоЮ чтобы удалить clustered_constraint, нужно как минимум его иметь
20 май 08, 12:03    [5687622]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
ыыыыыыы
Guest
Glory
ыыыыыыыыы
Glory
drop_clustered_constraint_option


Я потому и спрашиваю - как это все сделать правильно и наименее болезненно :)

Для тогоЮ чтобы удалить clustered_constraint, нужно как минимум его иметь


Увы, на факт существование кластерного индекса я обратил внимание только когда полез внимательно структуру таблиц изучать. Там далеко не все таблицы голые - есть и с приличным набором индексов.
20 май 08, 12:07    [5687657]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
ыыыыыыыыыы
Все правильно. Проблема что имеем таблицу на 137 гиг и ни одного индекса в ней. Построение кластерного может убить сервер на пол дня. Жизни серверу по дисковому пространству осталось на пару дней. Поймать ответственного за аппликуху что бы все согласовать не могу - они ищо спять. Потому и задаю практические вопросы - времени на эксперименты минимум. А еще я хотел бы посмотреть в глаза разработчику аппликухи. С пристрастием посмотреть. Нафига нужна таблица с 200 миллионами записей без индексов...


Это организационные вопросы.
20 май 08, 12:53    [5688074]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
ыыыыыыыыыыыыы
Guest
pkarklin
ыыыыыыыыыы
Все правильно. Проблема что имеем таблицу на 137 гиг и ни одного индекса в ней. Построение кластерного может убить сервер на пол дня. Жизни серверу по дисковому пространству осталось на пару дней. Поймать ответственного за аппликуху что бы все согласовать не могу - они ищо спять. Потому и задаю практические вопросы - времени на эксперименты минимум. А еще я хотел бы посмотреть в глаза разработчику аппликухи. С пристрастием посмотреть. Нафига нужна таблица с 200 миллионами записей без индексов...


Это организационные вопросы.


Их-то решим. Вопрос был - что делать что бы сейчас все не легло. Впрочем, извратнулись - пока облегчение, хозяина этого богатства будем убеждать завтра.
20 май 08, 13:37    [5688460]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
Andrew_vb1110
Member

Откуда: Симферополь
Сообщений: 540
pkarklin
создать кластерный индекс для этой таблицы в новой файловой группе.

А если уже на таблице есть кластерный индекс, то можно просто перенести его в др. файловую группу? Или надо создавать еще один новый?
26 май 08, 16:20    [5716247]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
Glory
Member

Откуда:
Сообщений: 104751
Andrew_vb1110
pkarklin
создать кластерный индекс для этой таблицы в новой файловой группе.

А если уже на таблице есть кластерный индекс, то можно просто перенести его в др. файловую группу? Или надо создавать еще один новый?

Кластерный индекс может быть только один
26 май 08, 16:21    [5716260]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
Andrew_vb1110
Member

Откуда: Симферополь
Сообщений: 540
Glory
Andrew_vb1110
pkarklin
создать кластерный индекс для этой таблицы в новой файловой группе.

А если уже на таблице есть кластерный индекс, то можно просто перенести его в др. файловую группу? Или надо создавать еще один новый?

Кластерный индекс может быть только один

так существующий кластерный индекс можно перенести в другую файловую группу?
26 май 08, 16:31    [5716359]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
Glory
Member

Откуда:
Сообщений: 104751
Нет.
26 май 08, 16:40    [5716435]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
Александр Волок (def1983)
Member

Откуда: Rotterdam
Сообщений: 4959
Andrew_vb1110
так существующий кластерный индекс можно перенести в другую файловую группу?

Удаление-пересоздание
26 май 08, 16:43    [5716456]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
Andrew_vb1110
Member

Откуда: Симферополь
Сообщений: 540
Александр Волок (def1983)
Andrew_vb1110
так существующий кластерный индекс можно перенести в другую файловую группу?

Удаление-пересоздание

Жестко... я пересоздам кластерный индекс в др. файловую группу и все? или еще что то надо сделать?
26 май 08, 16:50    [5716521]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Andrew_vb1110
Жестко... я пересоздам кластерный индекс в др. файловую группу и все? или еще что то надо сделать?


Ничего жесткого, если знать, что такое кластерный индекс.
26 май 08, 16:54    [5716558]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
Александр Волок (def1983)
Member

Откуда: Rotterdam
Сообщений: 4959
Andrew_vb1110
Жестко... я пересоздам кластерный индекс в др. файловую группу и все? или еще что то надо сделать?

Да чего там жесткого? :)
Скриптуете создание кластерного индекса и всех некластерных, в скрипте меняете название файловой группы, удаляете по очереди некластерные, затем кластерный. Востанавливаете из скрипта в обратном порядке.
26 май 08, 17:00    [5716595]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Перенос таблицы на другой физический диск  [new]
goncharukan
Member

Откуда:
Сообщений: 2
Столкнулся с подобной проблемой: место на диске А, где расположена база с единственным файлом данных, катастрофически заканчивается, и стоит задача в короткий срок освободить на ней место путем переноса нескольких больгих таблиц на другой диск Б. При попытке проверить, как работает данный метод с удалением кластерного индекса с MOVE TO и его пересозданием в новой файловой группе на другом диске, выяснилось, что размер самого файла БД, где изначально лежала таблица (диск А), увеличился на объем этой таблицы, и свободного места в базе стало на столько же больше. То есть, в базе место освободилось, но сам файл вырос. Проблема в том, что размер каждой из этих таблиц, которые надо перенести, больше, чем осталось свободного места на диске А. Соответственно, если переносить их таким образом, то не хватит места для этой операции. Кто-нибудь с таким сталкивался? Почему MS SQL увеличивает размер основного файла? Можно ли этого как-то избежать?
31 авг 11, 22:12    [11209277]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31960
goncharukan
Можно ли этого как-то избежать?
Может, сделать, как советовали?

Вроде ничего не должно увеличиваться.
31 авг 11, 23:01    [11209476]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
goncharukan
Member

Откуда:
Сообщений: 2
alexeyvg,
Сделано всё как советовали (причем, этот способ был найден не здесь, а в других источниках, где более были подробные описания и с примерами). Для меня самого увеличение размера основного файла стало большой неприятной неожиданностью. Похоже, что MS SQL во время данной операции всё-таки выделяет дополнительно место под переносимые данные в старой файловой группе, использует их, а затем очищает. Хотя я не могу понять, почему именно там, а не, например, в tempdb или в логах? Перед пересозданием кластерного индекса некластерные удалялись, а потом заново создавались. Кластерный индекс не по первичному ключу. В общем, мне непонятно такое поведение. Чтение документации пока тоже не помогло. Очень хотелось бы понять, почему так происходит, а также узнать, сталкивался ли кто-нибудь с подобным?
31 авг 11, 23:40    [11209593]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы на другой физический диск  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
1. Сделать create clustered index с опцией drop_existing. Вообще, в BOL есть статья, где рассказывается, как оценить, сколько места надо на ребилд.
2. Добавить файл к файловой группе с исходными большими таблицами, положить этот файл туда, где есть место, перестоить индексы, сделать файлу шринк с empty_file, удалить файл.
3. Сделать таблицу, идентичную исходной, в другой ФГ, перелить туда данные, старую убить, переименовать новую и навесить на нее все констрейнты, что были. Точно ничего не увеличится.
1 сен 11, 00:15    [11209676]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить