title: How do I increase the performance of MSMQ Receive() without using multiple threads
body: <p><strong>I am not able to use parallel threads in my application(C# Application) as each msmq msg is a data for sql statement</strong></p>
  
  <p><strong>The C# Application consumes messages in the msmq , then processes it.</strong></p>
  
  <p>I am using msg.Recoverable=true, to prevent data loss when server powers down.
  Currently, it is transactional message.</p>
  
  <p><strong>The msmq messages(sql statements) must be processed in order in the sequence(FIFO)</strong></p>
  
  <p>Using multiple threads to consume is a no-no as unable to control which thread will consume and perform which sql statement.</p>
  
  <p>Currently , the speed of Receive() for a msmq message of 490 KB is about 0.016 -0.032 sec, which makes about 30-50 Tx/sec, which is unacceptable.</p>
  
  <p><strong>Currently, MSMQ receive is the bottleneck of the whole application</strong></p>
  
  <p>Server is on Windows Server 2008 R2</p>
  
  <p>and the application is getting(Receive()) from the Local server MSMQ, not remote</p>