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

Откуда: Оттуда...
Сообщений: 548
Доброго всем времени суток.

Имеем таблицу.
В ней 6 000 000 записей.
Таблица голая, т.е. я убрал индексы, констрейны, ключи и т.д.

Надобно одну колонку переделать с int в bigint

Оказываетса не всё так просто ...

alter table таблица alter column колонка bigint

крутитса

потом выбрасывает:
/*
The statement has been terminated.
Msg 9002, Level 17, State 4, Line 1
The transaction log for database 'база_данных' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases
*/


и привет шишкен ...

ALTER DATABASE база_данных SET RECOVERY SIMPLE - сделал

DBCC SHRINKFILE (лог, 1) - тоже

пытался добавить null колонку, что бы потом её update со старой, драпнуть старую и ренейм новую ... не могу колонку добавить ... таже байда
/*
The statement has been terminated.
Msg 9002 etc...
*/

Подсобите кто может.

Буду примного благодарен
11 апр 14, 23:21    [15870940]     Ответить | Цитировать Сообщить модератору
 Re: Комрады подсобите плиз  [new]
kalimba
Member

Откуда:
Сообщений: 297
На диске то под журнал транзакций место есть? Что выдает данный запрос?
select log_reuse_wait_desc
from sys.databases
where database_id = DB_ID()
11 апр 14, 23:55    [15871036]     Ответить | Цитировать Сообщить модератору
 Re: Комрады подсобите плиз  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Места под лог добавить не судьба?
12 апр 14, 00:38    [15871134]     Ответить | Цитировать Сообщить модератору
 Re: Комрады подсобите плиз  [new]
Crimean
Member

Откуда:
Сообщений: 13147
долгий вариант - создать +1 таблицу и перелить в нее частями
до или после - по желанию - переименовать нужное (и дропнуть ненужное по окончанию)
14 апр 14, 11:34    [15878031]     Ответить | Цитировать Сообщить модератору
 Re: Комрады подсобите плиз  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Crimean
долгий вариант - создать +1 таблицу и перелить в нее частями
до или после - по желанию - переименовать нужное (и дропнуть ненужное по окончанию)


ну, или в той же - новое поле, скопировать значения, удалить, переименовать
14 апр 14, 15:05    [15879647]     Ответить | Цитировать Сообщить модератору
 Re: Комрады подсобите плиз  [new]
Glory
Member

Откуда:
Сообщений: 104751
Winnipuh
ну, или в той же - новое поле, скопировать значения, удалить, переименовать

А это что будет выполняться не в одной транзакции на 6 млн записей ?
14 апр 14, 15:08    [15879674]     Ответить | Цитировать Сообщить модератору
 Re: Комрады подсобите плиз  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
Glory
Winnipuh
ну, или в той же - новое поле, скопировать значения, удалить, переименовать

А это что будет выполняться не в одной транзакции на 6 млн записей ?

так перенос можно делать пачками. и периодически делать шринк для освобождения места после удаления.
долго и муторно, но работоспособно
14 апр 14, 15:26    [15879845]     Ответить | Цитировать Сообщить модератору
 Re: Комрады подсобите плиз  [new]
Glory
Member

Откуда:
Сообщений: 104751
HandKot
Glory
пропущено...

А это что будет выполняться не в одной транзакции на 6 млн записей ?

так перенос можно делать пачками. и периодически делать шринк для освобождения места после удаления.
долго и муторно, но работоспособно

Добавление нового поля bigint - это транзакция на все записи
Удаление старого поля int - это еще одна транзакция на все записи
14 апр 14, 15:29    [15879877]     Ответить | Цитировать Сообщить модератору
 Re: Комрады подсобите плиз  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
Glory, пардон, я говорил про вариант Crimean, там вроде все нормально
14 апр 14, 15:32    [15879902]     Ответить | Цитировать Сообщить модератору
 Re: Комрады подсобите плиз  [new]
voronk
Member

Откуда: Оттуда...
Сообщений: 548
kalimba,

спасибо дружище.

виноват ... балбес ... каюсь ...

место на виртуальной машине небыло.

добавил десяток гигов и всё пошло как по масло.

Большое спасибо всем кто поучаствовал.

Звиняйте за беспокойство.
14 апр 14, 20:27    [15881693]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить