2014-01-13 31 views
0

我喜欢这篇文章:http://technet.microsoft.com/en-us/library/dd576261(v=sql.100).aspx因为接收顶部(10000)到表变量。处理10000个消息的表变量会给我一个巨大的性能提升。会话的目标是否可以使用相同的会话接收来自不同发起人的消息?

receive top (10000) message_type_name, message_body, conversation_handle<br> 
    from MySSBLabTestQueue<br> 
    into @receive 

从阅读中,接收提供了给定单个conversation_handle的消息。我有200多家商店全部使用相同的消息类型发送消息并签约到同一台服务器。我是否可以实施服务器以便通过单次呼叫从这些商店获取所有消息以接收?

感谢

回答

3

目标可以整合多个会话变为少数谈话组,使用MOVE CONVERSATIONRECEIVE将结果集限制为单个对话,因此,如您所愿,将多个单独对话转换为单个对话可导致更大的结果集。

对于记录,发起人也可以使用MOVE CONVERSATION来合并对话,这里没有任何特定的角色。但发起人也可以使用RELATED_CONVERSATION_GROUP条款BEGIN DIALOG直接在所需的组中开始对话,实现合并,因此不必使用MOVE即可实现更大的结果集。这很有用,因为您可以简单地在应用中反转角色,即。而不是商店启动与中央服务器的对话,让中央服务器启动与每个商店的对话(从而颠倒角色),并且中央服务器可以以尽可能少的对话组开始对​​话,甚至是1。发出MOVE CONVERSATION。

+0

您可以使用一个或多个硬编码的GUID。对话和对话组可以持续多年。请注意,如果所有内容都使用相同的对话组,则会产生锁定后果,请参阅http://technet.microsoft.com/en-us/library/ms171615(v=sql.105).aspx –

+0

感谢Remus,这正是我所需要的。 – smadirondack

相关问题