Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3      [все]
 Срочный вопрос! Как почистить 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
Сообщений: 36898
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

Откуда: Москва
Сообщений: 11001
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
Сообщений: 36898
MGR
Гавриленко Сергей Алексеевич,

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

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

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

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

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

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

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

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

:)

Командой KILL. Описание есть в BOL. Что еще непонятного ?
25 авг 09, 15:04    [7577658]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
ну ето форум для медперсонала вообщем ))
пациенті все на ПТ сидять)))))
-------------------------------------
Jedem Das Seine
25 авг 09, 15:05    [7577669]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
MGR
Member

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

Вы бегаете тут за пивом? Нет, не надо. Но спасибо.

Конечно я посмотрел в хелпе. Даже знал, но ещё посмотрел. не увидел, как мне узнать, на какую сессию мне натравливать данную команду.
25 авг 09, 15:08    [7577690]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
на ту , котрой принадлежит обьект который "засоряет" темдб
-------------------------------------
Jedem Das Seine
25 авг 09, 15:11    [7577714]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
MGR
Member

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

Отлично. И как мне её определить?
На данный момент удалил все коннекшены - и фиг там.

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

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

Вы бегаете тут за пивом? Нет, не надо. Но спасибо.

Конечно я посмотрел в хелпе. Даже знал, но ещё посмотрел. не увидел, как мне узнать, на какую сессию мне натравливать данную команду.

Т.е. вы в конце статьи про KILL не нашли ссылок, как получить список коннекитов ?
25 авг 09, 15:16    [7577760]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Glory
Member

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

Впрочем ладно. Я вижу, ничего в форуме не изменилось. Народ сюда ходит постебаться. Времени наверное полно.

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

Откуда:
Сообщений: 24290
да не кипятитесь вы
1. вы выполнили сейчас запрос из певого ответа на ваш пост ? Есть ли открытые транзакции в темдб ?
2. как вариант выполните команду checkpoint
3. Выж до етого -как то определеи кому принадлежат веременые обьекты ?
-------------------------------------
Jedem Das Seine
25 авг 09, 15:18    [7577780]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
select @@version чет не было видно ?
-------------------------------------
Jedem Das Seine
25 авг 09, 15:19    [7577786]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
MGR
Member

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

почему же? Я тоже хожу развлекаться, но в другие места. Тут я в своё время отвечал в меру своих сил. И в других местах. А не направляю людей намёками.
Да я не осуждаю, ваше право, я же не плачу за консультации тут, чего ожидать?
25 авг 09, 15:20    [7577801]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36898
2MGR: последнее китайское. По душам у нас говорят в форуме "просто треп". Не отклоняйтесь от темы во избежание закрытия топика.

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

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

почему же? Я тоже хожу развлекаться, но в другие места. Тут я в своё время отвечал в меру своих сил. И в других местах. А не направляю людей намёками.
Да я не осуждаю, ваше право, я же не плачу за консультации тут, чего ожидать?

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

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

В первом ответе никакого скрипта не нашёл.
До этого - ну я видел на какой хранимке упало. Посмотрел её код. Читаю сообщения об ошибках. Всю доступную информацию вывалил тут.

select @@version 

Microsoft SQL Server 2005 - 9.00.1399.06 (X64) 
	Oct 14 2005 00:35:21 
	Copyright (c) 1988-2005 Microsoft Corporation
	Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)
25 авг 09, 15:24    [7577834]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
сорри ,похожий топик

1.dbcc opentran ('temdb')
-------------------------------------
Jedem Das Seine
25 авг 09, 15:26    [7577844]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
MGR
Member

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

Пока "по душам" я видел от вас - пример про пиво.
Я задавал такие вопросы, которые способен сформулировать.
Если вам не охото отвечать - не отвечайте.
Если вам мало данных - я ещё дам, только скажите, какие нужны.
Это я прихожу сюда с проблемой. Это в моих интересах её решить.
Не все "пациенты" обладают знаниями, чтобы понять заумности "докторов".
25 авг 09, 15:27    [7577859]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
ms sql adhoc user
Guest
Вообще, конечно, какая-то странная ситуация: временная таблица видна только в своем коннекте, а констрейнт от нее (при явно заданном имени) торчит во всех и об него спотыкаешься...
25 авг 09, 15:28    [7577866]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
MGR
Member

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

Ога, это я пробовал, нет активных транзакций :(
25 авг 09, 15:29    [7577873]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Glory
Member

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

Не все "пациенты" обладают знаниями, чтобы понять заумности "докторов".

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

Откуда: Moscow
Сообщений: 36898
ms sql adhoc user
Вообще, конечно, какая-то странная ситуация: временная таблица видна только в своем коннекте, а констрейнт от нее (при явно заданном имени) торчит во всех и об него спотыкаешься...
Потому что констрейнт - это объект, имя которого повторяться в базе не может.
25 авг 09, 15:30    [7577880]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Гавриленко Сергей Алексеевич
Member

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

Пока "по душам" я видел от вас - пример про пиво.
Я задавал такие вопросы, которые способен сформулировать.
Если вам не охото отвечать - не отвечайте.
Если вам мало данных - я ещё дам, только скажите, какие нужны.
Это я прихожу сюда с проблемой. Это в моих интересах её решить.
Не все "пациенты" обладают знаниями, чтобы понять заумности "докторов".
Вам не надоело?
25 авг 09, 15:30    [7577882]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Maxx
Member [скрыт]

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

Ога, это я пробовал, нет активных транзакций :(


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

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

Мне кажется, вам уже должно надоесть. Не можете/не хотите помогать - не пишите. пока, слава богу, находятся люди, которые что-то предлагают.
25 авг 09, 15:31    [7577891]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Гавриленко Сергей Алексеевич
Member

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

Ога, это я пробовал, нет активных транзакций :(


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

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

Мне кажется, вам уже должно надоесть. Не можете/не хотите помогать - не пишите. пока, слава богу, находятся люди, которые что-то предлагают.
Я вас предупреждаю, что хватит флудить не по теме. Официально. Иначе тему закрою.
25 авг 09, 15:33    [7577906]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
ms sql adhoc user
Guest
Гавриленко Сергей Алексеевич
ms sql adhoc user
Вообще, конечно, какая-то странная ситуация: временная таблица видна только в своем коннекте, а констрейнт от нее (при явно заданном имени) торчит во всех и об него спотыкаешься...
Потому что констрейнт - это объект, имя которого повторяться в базе не может.

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

Откуда:
Сообщений: 24290
я етого не писал :)) я спрашивал о наличие ее в темдб полсе гроханья всех коннектов,как біло написано ранее
-------------------------------------
Jedem Das Seine
25 авг 09, 15:33    [7577911]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36898
ms sql adhoc user
Гавриленко Сергей Алексеевич
ms sql adhoc user
Вообще, конечно, какая-то странная ситуация: временная таблица видна только в своем коннекте, а констрейнт от нее (при явно заданном имени) торчит во всех и об него спотыкаешься...
Потому что констрейнт - это объект, имя которого повторяться в базе не может.

А разве таблица не является объектом, имя которого в базе повторяться не может?
Для имен временных таблиц существует собственный механизм генерации имен.

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

Откуда: Москва (Муром)
Сообщений: 74927
MGR
Maxx,

Ога, это я пробовал, нет активных транзакций :(


Активные транзакции тут не причем. Для существования временной таблицы достаточно активного коннекта, причем совершенно к другой бд.

ЗЫ. За это время уже можно было договриться с админом, чтобы он рестартонул службу MS SQL.
25 авг 09, 15:34    [7577916]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Glory
Member

Откуда:
Сообщений: 104760
ms sql adhoc user
Гавриленко Сергей Алексеевич
ms sql adhoc user
Вообще, конечно, какая-то странная ситуация: временная таблица видна только в своем коннекте, а констрейнт от нее (при явно заданном имени) торчит во всех и об него спотыкаешься...
Потому что констрейнт - это объект, имя которого повторяться в базе не может.

А разве таблица не является объектом, имя которого в базе повторяться не может?

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

Откуда: Москва (Муром)
Сообщений: 74927
ms sql adhoc user
А разве таблица не является объектом, имя которого в базе повторяться не может?


Есть маленький ньюанс с локальными временными таблицами. В tempdb их имена уникальны. За это отвечает сам сервер. А исходный скрипт создает pk с явным именем, и здесь уже механизм генерации сервером уникального имени не срабатывает.
25 авг 09, 15:36    [7577929]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
MGR
Member

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

Я SQL Management studio вижу 2 талицы вида
#pc_________________________________________________________________________________________________________________000000000206
25 авг 09, 15:36    [7577932]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Maxx
Member [скрыт]

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

Откуда: Москва (Муром)
Сообщений: 74927
MGR
Maxx,

Я SQL Management studio вижу 2 талицы вида
#pc_________________________________________________________________________________________________________________000000000206



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

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

Админ придёт на работу часа через четыре - другой часовой пояс, понимаешь. Кроме того, перестартануть он скорее всего не сможет, ибо сервер всё-таки боевой. В прошлый раз процесс рестарта был достаточно сложным и длительным.
25 авг 09, 15:39    [7577948]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
потому как я по ходу подумал ,что таблиц нет,коннектов нет и констрейны где-то есть и темдб растет.
-------------------------------------
Jedem Das Seine
25 авг 09, 15:39    [7577950]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
MGR
Member

Откуда:
Сообщений: 536
Maxx
MGR,
вам уже довльно точно ответили , 3 поста перед вашим .


Можно уточнить - где?
25 авг 09, 15:40    [7577952]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
ms sql adhoc user
Guest
Гавриленко Сергей Алексеевич
ms sql adhoc user
Гавриленко Сергей Алексеевич
ms sql adhoc user
Вообще, конечно, какая-то странная ситуация: временная таблица видна только в своем коннекте, а констрейнт от нее (при явно заданном имени) торчит во всех и об него спотыкаешься...
Потому что констрейнт - это объект, имя которого повторяться в базе не может.

А разве таблица не является объектом, имя которого в базе повторяться не может?
Для имен временных таблиц существует собственный механизм генерации имен.

Т.е. объяснение "что констрейнт - это объект, имя которого повторяться в базе не может" не объясняет вопроса. И тогда возникает следующий (риторический, конечно же) вопрос: почему не сделали аналогичный табличному механизм для констрейнтов.

Я понимаю, что это 'by design' и ничего здесь не изменишь, просто показалось нелогичным: целое продублировать можно, а кусок от целого - нельзя. Извините, что отнял время.
25 авг 09, 15:41    [7577960]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
ms sql adhoc user
почему не сделали аналогичный табличному механизм для констрейнтов.


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

Откуда:
Сообщений: 104760
ms sql adhoc user
[
Т.е. объяснение "что констрейнт - это объект, имя которого повторяться в базе не может" не объясняет вопроса. И тогда возникает следующий (риторический, конечно же) вопрос: почему не сделали аналогичный табличному механизм для констрейнтов.

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

Откуда: Moscow
Сообщений: 36898
ms sql adhoc user
объясняет вопроса. И тогда возникает следующий (риторический, конечно же) вопрос: почему не сделали аналогичный табличному механизм для констрейнтов.

Я понимаю, что это 'by design' и ничего здесь не изменишь, просто показалось нелогичным: целое продублировать можно, а кусок от целого - нельзя. Извините, что отнял время.
Этот вопрос господам из microsoft надо задавть.

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

Откуда:
Сообщений: 24290
MGR
Maxx
MGR,
вам уже довльно точно ответили , 3 поста перед вашим .


Можно уточнить - где?

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

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

пОПробуйте, но не уверен, что прокатит на 2005: временные таблицы и те кто ими пользуются...


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

Откуда:
Сообщений: 536
Maxx
[quot MGR]
вот ето первый и 2 сразу за ним рассказывают почему у вас возникает ошибка.
Или вапрос уже поменялся ?


На первый я уже ответил.

Второй отвечает на вопрос, как исправить скрипт, чтобы в будущем избегать таких ошибок. О чём я прочитал ещё на первой странице топика.
25 авг 09, 15:48    [7578013]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
Господа не нападайте на человека, я сто раз видел как на 2005 возникает подобные казусы, когда коннекта в списке уже нет, а темповские объекты созданные им всё еще болтаются в базе, на 2000 таких приколов нет, там всё по честному, если коннект умирает все связанные с ним # объекты умирают тоже, а вот на 2005 невсегда, закономерности я не нашел, описаний ошибки на msdn тоже, просто пришлось допились код чтобы он учитывал эту особенность 2005го, ну и периодически перезапускать sql server когда таких объектов в базе набирается под несколько тысяч.
to MGR
В вашем случае можно только перезапуком sql решить проблему ну и праdкой кода создания таблицы дабы не прописывалось у неё имя PK ключа, а придумывалось самим сервером.
25 авг 09, 16:11    [7578160]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
create table #pc (CompanyID int, ParentCompanyID int, constraint primary key clustered (CompanyID, ParentCompanyID))
25 авг 09, 16:12    [7578171]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
ну не знаю, правильный код - и никаких таких проблемм не возникало никогда
-------------------------------------
Jedem Das Seine
25 авг 09, 16:13    [7578174]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
блин поторопился:)
не посмотрел что ключ составной

в вашем случае есть два варианта что я вижу
1.
create table #pc (id INT identity primary key, CompanyID int, ParentCompanyID int)
CREATE unique index ix_pc ON #pc (CompanyID, ParentCompanyID)
2.
динамический sql
25 авг 09, 16:23    [7578262]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
Maxx,
я тоже неверил в это пока мне непоказали сервер на котором tempdb разраслась до неприличных размеров при том что рабочих коннектов к базе небыло вобще, я тогда долго матерился на очередную поделку билла:)
25 авг 09, 16:26    [7578294]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1842
Блог
MGR
select @@version 

Microsoft SQL Server 2005 - 9.00.1399.06 (X64) 
	Oct 14 2005 00:35:21 
	Copyright (c) 1988-2005 Microsoft Corporation
	Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)

как я вижу у вас не последний сервис пак. Попробуйте проапдейтиться до
Microsoft SQL Server 2005 - 9.0.4035.0 (SP3)
Конечно судя по вашим постам это будет достаточно проблематично.

З.Ы. Многие знакомые Админы говорили что 2005 стабилен начиная с 2005 SP2. Хотя я, сейчас, юзаю 2008 SP1. А когда то давно года 3-4 назад админил 2000 SP3 DE.
25 авг 09, 16:34    [7578368]     Ответить | Цитировать Сообщить модератору
 Re: Срочный вопрос! Как почистить TempDB?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
gds
MGR
select @@version 

Microsoft SQL Server 2005 - 9.00.1399.06 (X64) 
	Oct 14 2005 00:35:21 
	Copyright (c) 1988-2005 Microsoft Corporation
	Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)

как я вижу у вас не последний сервис пак.
Вот, по-видимому, и вся причина!!!
В голом релизе столько ошибок, в том числе и с tempdb...
А вы ещё его "голый" и на пром сервере пользуете.
Да ещё и перепалку какую-то устроили.
Стыдно, однако!

Сообщение было отредактировано: 26 авг 09, 06:19
26 авг 09, 06:18    [7580021]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3      [все]
Все форумы / Microsoft SQL Server Ответить