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

Откуда: Чебаркуль
Сообщений: 3459
Есть проблема с брокером, очередь transmission_queue забита невыбранными сообщениями (100 млн).

Хочу посмотреть дату начала и окончания забивания трансмиссионной очереди

select top 10 * from sys.transmission_queue with(nolock) order by enqueue_time asc
-- этот за несколько часов отработал

select top 10 * from sys.transmission_queue with(nolock) order by enqueue_time desc
-- этот сутки(!) провисел не завершился

Есть ли другие методы выборки мин и макс дат из такой таблицы?
25 июл 17, 12:22    [20672620]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать мин и макс дату из таблицы?  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
Ролг Хупин
Есть ли другие методы выборки мин и макс дат из такой таблицы?
SELECT MinDate=MIN(enqueue_time), MaxDate=MAX(enqueue_time) FROM sys.transmission_queue;
25 июл 17, 12:28    [20672650]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать мин и макс дату из таблицы?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3459
iap
Ролг Хупин
Есть ли другие методы выборки мин и макс дат из такой таблицы?
SELECT MinDate=MIN(enqueue_time), MaxDate=MAX(enqueue_time) FROM sys.transmission_queue;


проверю, но есть смутное подозрение, что будет так же молотить по всей таблице сутки и без результата
25 июл 17, 12:30    [20672660]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать мин и макс дату из таблицы?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Ролг Хупин,

при остуствии индексов так и будет
25 июл 17, 12:32    [20672665]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать мин и макс дату из таблицы?  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Ролг Хупин, я, конечно, эту вьюху первый раз вижу. Но если посмотреть на ее код - она ссылается на sys.sysxmitqueue, которая, в свою очередь, содержит PK по dlgid, finitiator, msgseqnum.

Можно напрямую попробовать запросить

	SELECT min(msgseqnum), max(msgseqnum)
	FROM sys.sysxmitqueue Q
	group by dlgid, finitiator


Но для этого, я так понял, требуется DAC, либо попробовать воспользоваться имеющимся во вьюхе соединением с sys.sysdesend, посмотреть

select min(message_sequence_number), max(message_sequence_number) 
from [sys].[transmission_queue]
group by conversation_handle


и потом сделать полный запрос по конкретному message_sequence_number.

Не знаю уж, поможет ли, но попробовать можно.
25 июл 17, 12:49    [20672742]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать мин и макс дату из таблицы?  [new]
CrazyDr1v3r
Guest
Ролг Хупин
iap
пропущено...
SELECT MinDate=MIN(enqueue_time), MaxDate=MAX(enqueue_time) FROM sys.transmission_queue;


проверю, но есть смутное подозрение, что будет так же молотить по всей таблице сутки и без результата


Сутки - потому что для топ10 надо отсортировать всю вашу таблицу в обратном порядке. В случае MIN/MAX достаточно одного скана без сортировок.
25 июл 17, 12:57    [20672787]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать мин и макс дату из таблицы?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3459
Minamoto
Ролг Хупин, я, конечно, эту вьюху первый раз вижу. Но если посмотреть на ее код - она ссылается на sys.sysxmitqueue, которая, в свою очередь, содержит PK по dlgid, finitiator, msgseqnum.

Можно напрямую попробовать запросить

	SELECT min(msgseqnum), max(msgseqnum)
	FROM sys.sysxmitqueue Q
	group by dlgid, finitiator


Но для этого, я так понял, требуется DAC, либо попробовать воспользоваться имеющимся во вьюхе соединением с sys.sysdesend, посмотреть

select min(message_sequence_number), max(message_sequence_number) 
from [sys].[transmission_queue]
group by conversation_handle


и потом сделать полный запрос по конкретному message_sequence_number.

Не знаю уж, поможет ли, но попробовать можно.



Заманчиво, но выборка из sysxmitqueue не работает, не видит такую таблицу
25 июл 17, 13:52    [20673053]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать мин и макс дату из таблицы?  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Ролг Хупин, я и говорю, подключение через DAC для этого нужно. Попробуйте вторым способом.
25 июл 17, 14:34    [20673277]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать мин и макс дату из таблицы?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3459
Minamoto
Ролг Хупин, я и говорю, подключение через DAC для этого нужно. Попробуйте вторым способом.


Пробовал, но SSMS 2017 не подключается через DAC, пишет ошибку

автор
Cannot connect to server
A connection was successfully established with the server, but then an error occured during the pre-login handshake, (provider: TCP Provider, error: 0 - the specified network name is no longer available)


Добавил к обычному имени, которое работает

ADMIN:host\sqlserver_instance

и

EXEC sp_configure 'remote admin connections', 1;
GO
RECONFIGURE
GO

Что за фигня?
26 июл 17, 16:50    [20677173]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать мин и макс дату из таблицы?  [new]
o-o
Guest
Ролг Хупин,

ну раз network name is no longer available, пробуй напрямую указать IP и DAC-порт.
DAC-порт это 1434, если дефолтный инстанс, а если именованный, смотри в еррорлоге в самом начале пишет
26 июл 17, 17:04    [20677247]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать мин и макс дату из таблицы?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3459
o-o
Ролг Хупин,

ну раз network name is no longer available, пробуй напрямую указать IP и DAC-порт.
DAC-порт это 1434, если дефолтный инстанс, а если именованный, смотри в еррорлоге в самом начале пишет


пробовал, и локально на сервере - нифига, через SSMS Object Explorer->Connect - не работает.
А потом через Database Engine Query - сработало
https://dba.stackexchange.com/questions/17976/is-it-possible-to-estabilish-dedicated-administrator-connection-dac-using-ssms
26 июл 17, 17:07    [20677260]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать мин и макс дату из таблицы?  [new]
o-o
Guest
Ролг Хупин

пробовал через SSMS Object Explorer->Connect - не работает.


зачем же единственно возможное DAC-соединение отдавать Object Explorer-у?
это вообще как до такого можно додуматься?
если бы даже сработало, то тогда что, самому-то идти курить бамбук?
мне даже в голову не пришло, что ты мог такое сделать
26 июл 17, 17:18    [20677328]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать мин и макс дату из таблицы?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3459
o-o
Ролг Хупин
пробовал через SSMS Object Explorer->Connect - не работает.


зачем же единственно возможное DAC-соединение отдавать Object Explorer-у?
это вообще как до такого можно додуматься?
если бы даже сработало, то тогда что, самому-то идти курить бамбук?
мне даже в голову не пришло, что ты мог такое сделать


я тормоз

ну, так он и не коннектнулся, пишет, что бай дизайн SSMS может делать много коннекций
вот
26 июл 17, 17:34    [20677404]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать мин и макс дату из таблицы?  [new]
o-o
Guest
Ролг Хупин
ну, так он и не коннектнулся, пишет, что бай дизайн SSMS может делать много коннекций
вот

нет, не так.
там по ссылке написано, что именно Object Explorer делает кучу коннектов.
а простое query window как раз всего 1 коннект, кстати с подписанным в окне спидом
26 июл 17, 17:45    [20677464]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить