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

Откуда:
Сообщений: 122
здравствуйте!

имеется система на MS SQL 2014 SP1 CU5:
хранимые процедуры посылают сообщение в очередь сервис брокера,
и затем хранимая процедура, которая обрабатывает сообщение из очереди, посылает в MSMQ месседж через CLR-процедуру.
всё работало очень неплохо; но на пиковых нагрузках (15K сообщений в мин), медленно.
больше 1.5 секунд, это неприемлимо. (для быстродействия, из сервис брокера выжали всё что можно.)

в качестве теста, перенесли CLR-процедуру непосредственно в хранимые процедуры, работает идеально, 200 ms максимум.
но есть проблема: хранимые процедуры вызваются или из клиентского приложения, или из джоба, или скриптом.
в первом случае они работают в контексте транзакции, которую открывает и делает коммит клиентское приложение.
если откатить транзакцию после работы CLR-процедуры, сообщение в MSMQ останется, что неправильно.

какие могут быть варианты?
надо посылать сообщения из MS SQL сервера вовне, очень быстро, но только по завершению транзакции.
спасибо.
24 апр 16, 13:54    [19099182]     Ответить | Цитировать Сообщить модератору
 Re: альтернатива сервис брокера  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
valv
больше 1.5 секунд
valv
200 ms максимум
Это что за времена? Затраты на одно сообщение?

Как взаимодействуете с SB? На каждое сообщение свой диалог?
24 апр 16, 22:50    [19100610]     Ответить | Цитировать Сообщить модератору
 Re: альтернатива сервис брокера  [new]
valv
Member

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

1. время между отправкой сообщения в сервис брокер и получением сообщения в MSMQ.
2. да, на каждое сообщение BEGIN DIALOG CONVERSATION и SEND ON CONVERSATION.
25 апр 16, 12:42    [19102490]     Ответить | Цитировать Сообщить модератору
 Re: альтернатива сервис брокера  [new]
Владислав Колосов
Member

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

может у вас конфликты параллельного выполнения CLR, кто знает.
25 апр 16, 12:52    [19102573]     Ответить | Цитировать Сообщить модератору
 Re: альтернатива сервис брокера  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
valv
2. да, на каждое сообщение BEGIN DIALOG CONVERSATION и SEND ON CONVERSATION.
Производительность существенно вырастет, если сообщения отправлять в рамках одного глобального диалога и в процедуре активации обрабатывать сообщения пакетами.
25 апр 16, 12:56    [19102601]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить