Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 долгое переименование таблицы  [new]
нуб987
Guest
подскажите плз, как долго может выполняться переименование таблицы в SQL2000?
в таблице 60млн.записей. На момент переименования она вроде не была ничем заблокирована. При попытке переименовать из EnterpriseManager'а все повисло и висит уже около получаса...
Это вот что с ней происходит?
2 ноя 12, 01:09    [13411791]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Если таблица заблокирована, то и пару месяцев может переименовываться.
2 ноя 12, 01:20    [13411813]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
нуб987
Guest
а если НЕ заблокирована, то должна быстро это сделать?
или есть ситуации, когда даже НЕзаблокированная таблица может долго переименовываться?
2 ноя 12, 01:28    [13411830]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
Переименование это изменение данных и в системных таблицах
А они тоже могут быть заблокированы
2 ноя 12, 02:47    [13411890]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
нуб987
а если НЕ заблокирована, то должна быстро это сделать?
или есть ситуации, когда даже НЕзаблокированная таблица может долго переименовываться?
Сколько, по-вашему, должна меняться одна запись?
2 ноя 12, 02:52    [13411893]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
нуб987
Guest
Гавриленко Сергей Алексеевич
Сколько, по-вашему, должна меняться одна запись?

вот не надо, пожалусто, сарказма ;)
я недавно только узнал, что при вставлении поля в таблицу, она пересоздается вся. До этого я думал, что там всего лишь добавляется какая-нибудь одна-две записи в системные таблицы.
Так что теперь я стал сомневаться и появились мысли, что и при переименовании таблицы она тоже может как-то хитро вся пересоздаться. А то что долго, так это потому что 60млн записей в ней.
2 ноя 12, 03:22    [13411910]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
нуб987
я недавно только узнал, что при вставлении поля в таблицу, она пересоздается вся. До этого я думал, что там всего лишь добавляется какая-нибудь одна-две записи в системные таблицы.
/facepalm

Для меня так до сих пор загадка, зачем нужно поля в таблицу нужно "вставлять", если их можно просто добавлять. За 10 лет я ее так и не отгадал.

Если вам пятиэтажное здание нужно будет превратить в шестиэтажное, вы новый этаж тоже будете между первым и вторым добавлять?

Сообщение было отредактировано: 2 ноя 12, 03:40
2 ноя 12, 03:33    [13411915]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
kain111
Member

Откуда:
Сообщений: 227
http://msdn.microsoft.com/en-us/library/foobc3548f0-143f-404e-a2e9-0a15960fc8ed.aspx
вот можете посмотреть в коде как происходит переименование системного объекта в частности названия таблицы.
У вас же явно какая то блокировка идет.
2 ноя 12, 09:26    [13412248]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
super-code
Member

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

Может не стоит переименовывать, а просто создать синоним к этой таблицы? Или в 2000 нет синонимов?
2 ноя 12, 10:45    [13412739]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
super-code
в 2000 нет синонимов
2 ноя 12, 10:47    [13412749]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Однако, везде можно сделать VIEW с нужным именем
2 ноя 12, 10:48    [13412753]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
нуб987
Guest
Гавриленко Сергей Алексеевич
/facepalm

Для меня так до сих пор загадка, зачем нужно поля в таблицу нужно "вставлять", если их можно просто добавлять. За 10 лет я ее так и не отгадал.

в той теме написано, зачем - из эстетических соображений.
Повторюсь, для меня не было очевидно, что при вставлении столбца СКЛ будет пересоздавать всю таблицу с копированием всех записей туда-сюда.
Поэтому я и создал эту тему, т.к. подумал уже, что и при переименовании таблицы он тоже может зачем-то пересоздавать всю таблицу с копированием всех записей в ней.
Но оказалось, что при переименовании он ее просто переименовывает, делая пару записей в системных таблицах. Спасибо, объяснили :)
Неужели так трудно без сарказмов и фейспалмов? Не все же гуру тут...
2 ноя 12, 10:49    [13412759]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
нуб987,

Интересно, так переименовываете?
EXEC sp_rename '[старое название таблицы]', '[новое название таблицы]';
2 ноя 12, 10:50    [13412767]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
trew
Интересно, так переименовываете?
EXEC sp_rename '[старое название таблицы]', '[новое название таблицы]';

Скорее как всегда мышкой в Студии )
2 ноя 12, 10:53    [13412784]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
нуб987
Повторюсь, для меня не было очевидно, что при вставлении столбца СКЛ будет пересоздавать всю таблицу с копированием всех записей туда-сюда.
Это не СКЛ. Это студия. У СКЛ тупо такой возможности нет, ибо его создатели тоже не додумались, зачем поля нужно куда-то вставлять.
нуб987
Неужели так трудно без сарказмов и фейспалмов? Не все же гуру тут...
Голова-то у вас собственная есть. Можно над проблемой подумать самостоятельно.
2 ноя 12, 10:58    [13412811]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
нуб987
Guest
Гавриленко Сергей Алексеевич
Голова-то у вас собственная есть. Можно над проблемой подумать самостоятельно.

ну а форум-то на что? когда своей головы не хватает, люди идут сюда. Вот своей подумал, потом пришел сюда...
2 ноя 12, 11:02    [13412835]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
В обычной жизни чаще всего такое простое переименование попросту приводит к неработоспособности всей системы.
Потому что множество объектов могут обращаться к таблице по её прежнему имени.
2 ноя 12, 11:02    [13412836]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
нуб987
Guest
Glory
trew
Интересно, так переименовываете?
EXEC sp_rename '[старое название таблицы]', '[новое название таблицы]';

Скорее как всегда мышкой в Студии )

именно так :)

продолжение истории:
похоже действительно произошла блокировка. Т.е. было так: на сервере крутилось много задач (процессинг кубов, выполнение разных джобов и т.п.). Плюс выполнялся длинный update в QA (каюсь, надо было его разбить на несколько этапов, а не лопатить сразу 60млн записей).
Этот длинный апдейт выполнялся уже часов 5 (никакие другие выполняемые задачи его не касались, т.е. эта таблица больше никем не использовалась) и было решено его остановить. В QA нажали кнопочку "стоп".
Он (QA) подумал секунд 10-20, написав, что пытается отменить запрос пользователя, и написал, что "все ок, отменил".
Т.к. до этого апдейта в таблице было много всяких пересчетов, то чтобы их не потерять, я решил переименовать таблицу ("забекапить" ее) и создать ее пустой клон, чтобы дальше с ним экспериментировать.
И вот при переименовании из EnterpriseManager'а этот EM повис (крутятся часики). Сейчас уже 11 утра, а он все с часиками.

Понимаю, что много где накосячил и сделать можно и нужно было по-другому. Но на то он и опыт, чтобы ходить по граблям...
2 ноя 12, 11:17    [13412964]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
нуб987
Guest
iap
Потому что множество объектов могут обращаться к таблице по её прежнему имени.

это правильно, и сервер об этом предупреждает. Но в данном случае таблицу можно было переименовать
2 ноя 12, 11:19    [13412982]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
нуб987
именно так :)

Ага. Я потыркал мышкой в гуи программы. И чейвой то она не того, как то странно работает.
Кто стакливаля с проблемой, почему в программе что-то странно работает ? Расскажите о всех возможных случаях.
2 ноя 12, 11:21    [13412999]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
нуб987
Guest
Glory
Ага. Я потыркал мышкой в гуи программы. И чейвой то она не того, как то странно работает

ну я ж описал ситуацию.
Думаю, что когда отменял тот долгий апдейт и QA мне написал, что все ок, все на самом деле не было ок. Т.е. видимо СКЛ начал роллбачить этот апдейт и заблокировал таблицу, поэтому она и не переименовалась.
Но за 11-то часов уже наверно можно было откатить транзакцию на момент "до апдейта". Почему сейчас-то EM висит? Подскажите плз, где его палкой ткнуть? Что и где посмотреть, чтобы прояснить ситуацию и было поменьше этих "видимо", "я предполагаю, что..."?
2 ноя 12, 11:26    [13413042]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
нуб987
ну я ж описал ситуацию.

Вы про это - "подскажите плз, как долго может выполняться переименование таблицы в SQL2000?"

нуб987
Думаю, что когда отменял тот долгий апдейт и QA мне написал, что все ок, все на самом деле не было ок.

Вы очень много думаете о том, как по-вашему должен работать сервер.
И мало мониторите, как он действительно работает.
2 ноя 12, 11:34    [13413122]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
нуб987
Guest
нуб987
Подскажите плз, где его палкой ткнуть? Что и где посмотреть, чтобы прояснить ситуацию и было поменьше этих "видимо", "я предполагаю, что..."?
2 ноя 12, 12:39    [13413603]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
BOL - Monitoring with SQL Server Enterprise Manager
2 ноя 12, 12:44    [13413632]     Ответить | Цитировать Сообщить модератору
 Re: долгое переименование таблицы  [new]
нуб987
Guest
Glory, спасибо :)
пользовался sp_lock, но здесь гораздо наглядней
оказалось, что я и раньше туда лазил (Enterprise Manager - Management - Current Activity), но т.к. делал это нечасто, как-то забыл, что оно есть.
2 ноя 12, 13:02    [13413757]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить