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

Откуда:
Сообщений: 311
Добрый день.
select @@version
----
Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86) 
	Feb  9 2007 22:47:07 
	Copyright (c) 1988-2005 Microsoft Corporation
	Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

В BOL_е сказано, что
Эта системная таблица SQL Server 2000 включена в СУБД как представление для обеспечения обратной совместимости. Вместо нее рекомендуется использовать системные представления SQL Server.

И захотелось мне последовать рекомендациям и заменить sys.sysprocesses в простом запросе
select spid as [session_id], [dbid] as [database_id]
from sys.sysprocesses
where [status] = 'sleeping' and dbid = DB_ID()
Вопрос - Как получить такую же выборку не используя sys.sysprocesses, а используя sys.dm_exec_* ?

P.S. Кстати, а в SQL2k8 sys.sysprocesses уже убрали ?
23 мар 09, 17:34    [6964979]     Ответить | Цитировать Сообщить модератору
 Re: На что замена sys.sysprocesses ?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Есть целая статья с названием
Mapping SQL Server 2000 System Tables to SQL Server 2005 System Views
23 мар 09, 17:37    [6965002]     Ответить | Цитировать Сообщить модератору
 Re: На что замена sys.sysprocesses ?  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
SQL Server 2008 System Views Map
23 мар 09, 17:47    [6965079]     Ответить | Цитировать Сообщить модератору
 Re: На что замена sys.sysprocesses ?  [new]
Greenhorn
Member

Откуда:
Сообщений: 311
iap, Glorry,

Цельных два часа до написания первого вопроса изучал эту статью. Написал кучку запросов с использованием только sys.dm_exec_*, но так и не смог сопоставить [session_id] c [database_id] для сессий с состоянием 'spleeping'

sysprocesses заменяется на
sys.dm_exec_connections - не содержит [database_id]
sys.dm_exec_sessions - не содержит [database_id]
sys.dm_exec_requests - содержит [database_id], но только для активных процессов

А нужно для НЕ АКТИВНЫХ, где [status] = 'spleeping'

Потому и обратился сюда за помощью ...
23 мар 09, 18:16    [6965289]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: На что замена sys.sysprocesses ?  [new]
Newb_ora
Member

Откуда: Прекрасное далеко
Сообщений: 71
Greenhorn
Вопрос - Как получить такую же выборку не используя sys.sysprocesses, а используя sys.dm_exec_* ?


Апаем тему :)

Получилось ли заменить использование sys.sysprocesses ?
6 окт 11, 15:39    [11395733]     Ответить | Цитировать Сообщить модератору
 Re: На что замена sys.sysprocesses ?  [new]
step_ks
Member

Откуда:
Сообщений: 936
http://connect.microsoft.com/SQLServer/feedback/details/257502/deprecation-of-sysprocesses-dmvs-doesnt-fully-replace-all-columns
Вроде обещают полноценную замену. Да и sysprocesses, скорее всего, еще долго не умрёт.
6 окт 11, 22:31    [11398353]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить