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

Откуда:
Сообщений: 536
MSSQL 2005.

Есть некий скрипт, который содержит создание темповой таблички #pc и на нём constraint pc_pk.
  create table #pc (CompanyID int, ParentCompanyID int, constraint pc_pk primary key clustered (CompanyID, ParentCompanyID))

В какой-то момент была ошибка системная, которую админ починил. Но с тех пор скрипт не запускается - валится на создании этой таблицы. Коннекшен, естественно, свой.
Валится с ошибкой "There is already an object named 'pc_pk' in the database."

Я вижу, что в tempdb есть несколько таблиц вида
#pc_________________________________________________________________________________________________________________000000000206

Удалить не могу.

Как можно очистить всё это барахло? Прав на перезапуск сервера у меня нет.
25 авг 09, 14:19    [7577249]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
erererererer1
Guest
MGR,

дропай таблицы временные, которые ты создаешь
25 авг 09, 14:20    [7577257]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
MGR
Member

Откуда:
Сообщений: 536
Коннекшен жеж другой -
MSSQL
Cannot drop the table '#pc', because it does not exist or you do not have permission.
25 авг 09, 14:22    [7577269]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Glory
Member

Откуда:
Сообщений: 104760
У вас логическая ошибка в скрипте.
Потому что временная таблица видна только создавшему ее коннекту
И автоматически удаляется вместе с отключением коннекта
25 авг 09, 14:22    [7577270]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Уберите явное имя PK из скрипта. В таком виде, как у Вас только одна такая таблица с таким pk сможет существовать, ибо имя PK уникально.
25 авг 09, 14:23    [7577280]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
MGR
Member

Откуда:
Сообщений: 536
Glory
У вас логическая ошибка в скрипте.
Потому что временная таблица видна только создавшему ее коннекту
И автоматически удаляется вместе с отключением коннекта


Не у меня, мне скрипт приходит как есть. Но не это важно.
Важно то, что тот коннекшен, в котором временная таблица создавалась - давно почил в бозе. И если он остался, то надо его почистить. Валится прямо сейчас на create table - вот не понимаю, что я могу сделать прямо сейчас.
Разработчик скрипта посчитал, что таблица и все констрейнты умрут по выполнении скрипта. Но во время выполнения сервер подвис. Админ его попинал, а хвосты остались. :(
25 авг 09, 14:28    [7577316]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
MGR
Member

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

Ну не могу эе я каждый раз переименовывать по другому этот РК?
25 авг 09, 14:29    [7577322]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Glory
Member

Откуда:
Сообщений: 104760
MGR
pkarklin,

Ну не могу эе я каждый раз переименовывать по другому этот РК?

Зачем вы вообще тогда задаете ему имя ?
25 авг 09, 14:30    [7577327]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
MGR
pkarklin,

Ну не могу эе я каждый раз переименовывать по другому этот РК?
Да его вообще не надо именовывать - сервер сам даст ему уникальное имя.
А сервер придётся перестартовать.
25 авг 09, 14:30    [7577332]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
MGR
Member

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

Зачем вы вообще тогда задаете ему имя ?


Ну не я. Я лишь запускаю процедуру апдейта. А уж процедура запускает всякие скрипты. в том числе и этот.
25 авг 09, 14:32    [7577346]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
MGR
Member

Откуда:
Сообщений: 536
tpg
Да его вообще не надо именовывать - сервер сам даст ему уникальное имя.
А сервер придётся перестартовать.


А как заставить давать имя? Судя по описанию create table - имя РК обязательное
25 авг 09, 14:36    [7577383]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Glory
Member

Откуда:
Сообщений: 104760
MGR
Glory

Зачем вы вообще тогда задаете ему имя ?


Ну не я. Я лишь запускаю процедуру апдейта. А уж процедура запускает всякие скрипты. в том числе и этот.

И кто тогда создал еще один объект с именем pc_pk ? Тоже не вы ?
25 авг 09, 14:36    [7577385]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
MGR
Member

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

ты тормоз... уже разобрался вроде
25 авг 09, 14:37    [7577396]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
MGR
Member

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

Я. но опосредовано.
Говорю, что во время прошлой процедуры апгрейда, она свалилась и сервер перешёл в нерабочее состояние - вываливался с ошибкой "нет памяти" на бекапах и пр. операциях.

Моё дело маленькое - стукнул админу, админ всё починил. Но остатки созданных объектов остались - в базе TempDB. Я знаю, что после перестарта сервера, база почистится. Но перестартовать-то его и не могу. Нет прав. Да и сервер - боевой.
25 авг 09, 14:40    [7577421]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Glory
Member

Откуда:
Сообщений: 104760
MGR

Моё дело маленькое - стукнул админу, админ всё починил. Но остатки созданных объектов остались - в базе TempDB.

Не может остаться primary key без таблицы. Тем более временной.
Найдите объект с именем pc_pk и выясните, что он из себя представляет
25 авг 09, 14:44    [7577451]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
MGR
Member

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

select object_name(o.parent_object_id)
from sys.objects o 
where o.name = 'pc_pk' 

#pc_________________________________________________________________________________________________________________000000000206

(1 row(s) affected)

Дропнуть её не могу
25 авг 09, 14:49    [7577505]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Glory
Member

Откуда:
Сообщений: 104760
MGR
Glory,

select object_name(o.parent_object_id)
from sys.objects o 
where o.name = 'pc_pk' 

#pc_________________________________________________________________________________________________________________000000000206

(1 row(s) affected)

Дропнуть её не могу

Еще раз - временные таблицы автоматически уничтожаются при закрытии коннекта, в котором они были созданы.
Зачем вы запускаете ваш скрипт в 2х коннектах ?
25 авг 09, 14:53    [7577539]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
MGR
Member

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

Ещё раз - тот коннект состоялся неделю назад. Как мне его прибить?
25 авг 09, 14:55    [7577561]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36806
MGR
Glory,

Ещё раз - тот коннект состоялся неделю назад. Как мне его прибить?
Командой kill.
25 авг 09, 14:56    [7577572]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Glory
Member

Откуда:
Сообщений: 104760
MGR
Glory,

Ещё раз - тот коннект состоялся неделю назад. Как мне его прибить?

Командой KILL разумеется
И он не состоялся неделю назад. Он до сих пор открыт

Сообщение было отредактировано: 25 авг 09, 14:57
25 авг 09, 14:56    [7577576]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
MGR
Member

Откуда:
Сообщений: 536
Гавриленко Сергей Алексеевич,

Осталось понять - на что её натравливать?

Неужто так сложно написать что-то типа
1. У вас остался коннект
2. Посмотреть коннекты можно командой ****
3. Чтобы убить коннект, сделайте то-то и то-то...

Нет, надо по строчке из сообщества вытягивать
25 авг 09, 14:58    [7577586]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
ChA
Member

Откуда: Москва
Сообщений: 10989
MGR
А как заставить давать имя? Судя по описанию create table - имя РК обязательное
CREATE TABLE #pc (
	CompanyID int
	, ParentCompanyID int
	, PRIMARY KEY CLUSTERED (CompanyID, ParentCompanyID)
)

25 авг 09, 14:59    [7577597]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Glory
Member

Откуда:
Сообщений: 104760
MGR


Нет, надо по строчке из сообщества вытягивать

Вы бы на себя посмотрели, как вы о проблеме рассказывали
25 авг 09, 15:00    [7577601]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36806
MGR
Гавриленко Сергей Алексеевич,

Осталось понять - на что её натравливать?

Неужто так сложно написать что-то типа
1. У вас остался коннект
2. Посмотреть коннекты можно командой ****
3. Чтобы убить коннект, сделайте то-то и то-то...

Нет, надо по строчке из сообщества вытягивать
За пивком в магазин не сгонять, нет? Откройте хелп и прочитайте, на что она натравливается.
25 авг 09, 15:03    [7577643]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
MGR
Member

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

Знаете, я тут скорее пациент. :)
Пациент не разбирается в болезнях. Он может прийти и сказать где болит. Ну и он ожидает, что врач задаст вопросы и поставит диагноз. Как-то так.
А врач ему - "у вас нейрофлюрополикарбонит". А как лечить - не говорит.

:)
25 авг 09, 15:03    [7577648]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить