powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Какие сеансы ссылаются на глобальную временную таблицу
15 сообщений из 15, страница 1 из 1
Какие сеансы ссылаются на глобальную временную таблицу
    #39668671
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте! Подскажите пожалуйста, как можно узнать какие сеансы ссылаются на глобальную временную таблицу (##Tmp)
Дело в том, что есть один сеанс, который создает эту таблицу и держит ее, нужно в определенный момент узнать, есть ли сеансы, помимо того, что создал эту таблицу и если такого сеанса (второго, дополнительного) нет, то нужно эту таблицу удалить

Код: sql
1.
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (X64)   Apr 22 2011 19:23:43   Copyright (c) Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) 
...
Рейтинг: 0 / 0
Какие сеансы ссылаются на глобальную временную таблицу
    #39668674
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist,

ссылаются ? это как?

ps RTM это к психологам
...
Рейтинг: 0 / 0
Какие сеансы ссылаются на глобальную временную таблицу
    #39668678
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKSandist,

ссылаются ? это как?
Используют и не дают удалиться.
...
Рейтинг: 0 / 0
Какие сеансы ссылаются на глобальную временную таблицу
    #39668682
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex,

так а чем не устраивает что она сама удалится если никого нет?
...
Рейтинг: 0 / 0
Какие сеансы ссылаются на глобальную временную таблицу
    #39668687
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,
Один сеанс создает его, другие используют, система не удалит таблицу до тех пор, пока все сеансы ее не освободят
Нужно узнать какие именно держат эту таблицу, если среди них не будет нужных, то удалить таблицу

Есть таблица, в которой видно какие сеансы на какие ресурсы ссылаются?
...
Рейтинг: 0 / 0
Какие сеансы ссылаются на глобальную временную таблицу
    #39668689
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist,

долбаная бредятина. Если сеанс использует - значит надо, если никто не использует сама дропнется. Если пакет не дошёл до вашей богомерзкой глобальной таблицы, то что? дропнем пусть потом страдает?

но наверное этого знать не хочу....

Код: sql
1.
2.
3.
4.
5.
6.
SELECT 
        request_session_id
	request_mode, 
	request_type,
	request_status
FROM    sys.dm_tran_locks WHERE resource_associated_entity_id = OBJECT_ID('tempdb..##NAME')


не забудьте раздать всем VIEW SERVER STATE, если не ошибаюсь
...
Рейтинг: 0 / 0
Какие сеансы ссылаются на глобальную временную таблицу
    #39668690
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или вообще заверните в try/catch свой дроп и в цикл...
...
Рейтинг: 0 / 0
Какие сеансы ссылаются на глобальную временную таблицу
    #39668702
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,
это не то
я имею ввиду не те процессы которые используют ее в текущий момент, а просто процессы благодаря которым она жива
то есть вот если я в текущий момент не буду осуществлять select update или что что к таблице, то тот запрос который ты переслал не отобразить соединение
...
Рейтинг: 0 / 0
Какие сеансы ссылаются на глобальную временную таблицу
    #39668715
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandistэто не тоЭтол именно то. Потому что "использует" означает, что на таблицу наложена какая-либо блокировка. Другого трактования нет.

Можете взять способ TaPaK 'а. Только нужно еще добавить условие resource_database_id = db_id('tempdb').
Но результат может быть недостоверным.

Более правильно так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
set lock_timeout 0;

begin try
 drop table ##NAME
end try
begin catch
 select error_number(), error_message();
end catch;

set lock_timeout -1;

Если в блоке catch error_number() = 1222, то таблица используется.
...
Рейтинг: 0 / 0
Какие сеансы ссылаются на глобальную временную таблицу
    #39668720
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SandistTaPaK,
это не то
я имею ввиду не те процессы которые используют ее в текущий момент, а просто процессы благодаря которым она жива
то есть вот если я в текущий момент не буду осуществлять select update или что что к таблице, то тот запрос который ты переслал не отобразить соединение
я вас огорчу... сервер так не делает, а проверяет именно активные ссылки
...
Рейтинг: 0 / 0
Какие сеансы ссылаются на глобальную временную таблицу
    #39668726
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm,
Не знаю как правильно донести мысль

Сеанс1:
create table ##NAME (id int)
insert into ##NAME (id) values (1)

Сеанс2:
select * from ##Name

Сеанс3:
select * from ##Name

Вот после этих операций, таблица никем не будет блокироваться, не будет использоваться, но жить она будет
Если я закрою Сеанс 2 и Сеанс1, таблица будет жить
Нужно просто узнать из-за каких сеансов пока жива временная таблица?
Система ведь как-то понимает, что если я сейчас закрою сеанс, на таблицу ничего не ссылается (или ссылается), значит ее нужно удалить/не удалять

Вот где эта такая инфа хранится?
...
Рейтинг: 0 / 0
Какие сеансы ссылаются на глобальную временную таблицу
    #39668727
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist,

перейдите к изучению, что же такое сеанс, и узнайте что вы в ssms пооткрывали
...
Рейтинг: 0 / 0
Какие сеансы ссылаются на глобальную временную таблицу
    #39668729
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,
так есть где-то такая информация?
...
Рейтинг: 0 / 0
Какие сеансы ссылаются на глобальную временную таблицу
    #39668736
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SandistЕсли я закрою Сеанс 2 и Сеанс1, таблица будет житьОшибаетесь.
Таблица останется жить, только если Сеанс3 удерживает на нее какую-либо блокировку.
SandistСистема ведь как-то понимает, что если я сейчас закрою сеанс, на таблицу ничего не ссылается (или ссылается), значит ее нужно удалить/не удалять

Вот где эта такая инфа хранится?Нигде. Ибо она не нужна.

У вас явные проблемы с пониманием смысла термина "ссылается". Для вас это - упоминается в каком-то ранее выполненном запросе.
...
Рейтинг: 0 / 0
Какие сеансы ссылаются на глобальную временную таблицу
    #39668746
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm,

Да, вы правы
спасибо
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Какие сеансы ссылаются на глобальную временную таблицу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]