20.01.2020, 12:36 [+3 UTC]
в нашей команде: 4 154 чел. | участники онлайн: 3 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.80 (15.01.2020)
JS-v.1.35 | CSS-v.3.36

Общие новости:
06.01.2020, 22:45

Форум:
13.01.2020, 16:40

Последний вопрос:
19.01.2020, 21:17
Всего: 151440

Последний ответ:
19.01.2020, 15:59
Всего: 259653

Последняя рассылка:
19.01.2020, 14:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
23.06.2013, 12:01 »
Александр Сергеевич
Спасибо!!! [вопрос № 187477, ответ № 272423]
30.03.2010, 11:40 »
Спиридонов Данил Сергеевич
Спасибо за грамотный ответ. [вопрос № 177486, ответ № 260465]
11.12.2009, 17:49 »
Sergeva
Спасибо огромное, все работает классно! [вопрос № 175140, ответ № 257610]

РАЗДЕЛ • Базы данных

Установка и настройка серверов баз данных, таблицы и запросы.

[администратор рассылки: Коцюрбенко Алексей Владимирович (Модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 940
solowey
Статус: Специалист
Рейтинг: 273
Megaloman
Статус: Советник
Рейтинг: 51

Перейти к консультации №:
 

Консультация онлайн # 144966
Раздел: • Базы данных
Автор вопроса: PaTiFoN
Отправлена: 25.09.2008, 09:35
Поступило ответов: 2

Здравствуйте уважаемые эксперты!!! Скажите пожалуйсто как при помощи запроса опредилить есть ли подключения к определенной базе, их количество, и пользователей???

Состояние: Консультация закрыта

Ответ # 230253 от Челноков Виктор Альбертович

Здравствуйте, PaTiFoN!
Предоставляет сведения о текущих пользователях, сеансах и процессах в экземпляре компонента Microsoft SQL Server Database Engine. Данные могут быть отфильтрованы, чтобы возвращать только те процессы, которые не простаивают, принадлежат конкретному пользователю или принадлежат определенному сеансу.

Соглашения о синтаксисе в Transact-SQL

Синтаксис

sp_who [ [ @loginame = ] 'login' | session ID | 'ACTIVE' ]


Аргументы
[ @loginame = ] 'login' | session ID | 'ACTIVE'
Используется для фильтрации результирующего набора.

Аргумент login имеет тип sysname и определяет процессы, принадлежащие конкретному имени входа.

Аргумент session ID (SPID в SQL Server 2000 и более ранних версиях) является идентификатором сеанса, принадлежащего экземпляру SQL Server. Аргумент session ID имеет тип smallint.

Значение ACTIVE исключает сеансы, ожидающие следующей команды от пользователя.

Если значение не указано, эта процедура возвращает все сеансы, принадлежащие экземпляру.

Значения кодов возврата
0 (успешное завершение) или 1 (неуспешное завершение)

Результирующие наборы
Процедура sp_who возвращает результирующий набор со следующими данными.

Столбец Тип данных Описание
spid
smallint
Идентификатор сеанса.

ecid
smallint
Идентификатор контекста выполнения заданного потока, связанный с определенным идентификатором сеанса.

ECID = {0, 1, 2, 3, ...n}, где 0 всегда представляет основной или родительский поток, а {1, 2, 3, ...n} представляет подпроцессы.

status
nchar(30)
Состояние процесса. Возможны следующие значения.

dormant. SQL Server сбрасывает сеанс.

running. В сеансе выполняются один или несколько пакетов. Если включен режим MARS, в сеансе может выполняться несколько пакетов. Дополнительные сведения см. в разделе Using Multiple Active Result Sets (MARS).

background. В сеансе выполняется фоновая задача, например обнаружение взаимоблокировок.

rollback. В сеансе выполняется откат транзакций.

pending. В сеансе ожидается освобождение потока исполнителя.

runnable. Задачи сеанса находятся в очереди исполнителей планировщика, ожидая времени такта.

spinloop. Задачи сеанса ожидают освобождения взаимоблокировки.

suspended. Сеанс ожидает завершения события, например операции ввода-вывода.

loginame
nchar(128)
Имя входа, связанное со специфическим процессом.

hostname
nchar(128)
Имя узла или компьютера для каждого процесса.

blk
char(5)
Идентификатор сеанса для блокирующего процесса, если такой существует. В противном случае значение этого столбца — 0.

Если транзакция, связанная с данным идентификатором сеанса, заблокирована потерянной распределенной транзакцией, этот столбец возвратит -2 для блокирующей потерянной транзакции.

dbname
nchar(128)
База данных, используемая процессом.

cmd
nchar(16)
Команда компонента Database Engine (инструкция Transact-SQL, внутренний процесс компонента Database Engine и так далее), выполняющаяся для процесса.

request_id
int
Идентификатор для запросов, запущенных в определенном сеансе.


При параллельной обработке подпроцессы создаются для определенного идентификатора сеанса. Главный поток обозначается как spid = <xxx> и ecid =0. Другие подпроцессы имеют одинаковый spid = <xxx>, но с ecid > 0.

Замечания
Блокирующий процесс (который может иметь монопольную блокировку) является процессом, удерживающим ресурсы, в которых нуждается другой процесс.

В SQL Server 2000 и более поздних версиях всем потерянным распределенным транзакциям назначается значение идентификатора сеанса, равное -2. Потерянные распределенные транзакции являются распределенными транзакциями, которые не связаны с каким либо идентификатором сеанса. Дополнительные сведения см. в разделе Использование помеченных транзакций (полная модель восстановления).

SQL Server 2000 и более поздние версии резервируют значения идентификаторов сеанса от 1 до 50 для внутреннего использования, значения идентификаторов сеанса от 51 и выше представляют пользовательские сеансы.

Разрешения
Требуется разрешение VIEW SERVER STATE на сервер для просмотра всех выполняющихся сеансов на экземпляре SQL Server. Иначе пользователь сможет увидеть только текущий сеанс.

Примеры
А. Перечень всех текущих процессов
В следующем примере используется хранимая процедура sp_who без параметров для возврата сведений обо всех текущих пользователях.

Копировать код
USE master;
GO
EXEC sp_who;
GO


Б. Перечень процессов определенного пользователя
Следующий пример показывает, как просмотреть сведения об отдельном текущем пользователе по имени входа.

Копировать код
USE master;
GO
EXEC sp_who 'janetl';
GO


В. Отображение всех активных процессов
Копировать код
USE master;
GO
EXEC sp_who 'active';
GO


Г. Отображение определенного процесса, определяемого идентификатором сеанса
Копировать код
USE master;
GO
EXEC sp_who '10' --specifies the process_id;
GO


Консультировал: Челноков Виктор Альбертович
Дата отправки: 25.09.2008, 10:39

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 230255 от Коровин Александр

Здравствуйте, PaTiFoN!
Существует хранимая процедура sp_who, которая показывает все подключения к базам на сервере.
В Query Analyzer можно составить такой запрос и выгрузить все данные во временную таблицу, а потом выбрать из нее нужные. Ниже привожу пример такого запроса.
Временная таблица tb имеет поля, выводимые процедурой.
Удачи.

Приложение:


Консультировал: Коровин Александр
Дата отправки: 25.09.2008, 10:41

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.18427 сек.

© 2001-2020, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.80 от 15.01.2020
Версия JS: 1.35 | Версия CSS: 3.36