I'm looking into some performance metrics and every recommendation includes monitoring Batch Requests/sec. But, maybe a silly question, does a singe batch request correspond to exactly one tsql statement? Say it contains exactly one select or one update, etc. So, for example, a stored procedure with 3 selects and 2 inserts triggers 5 batch requests. Or, as I think, a batch request can include for example a full stored procedure, a function, several select/update/insert statements, etc.

All I can find is similar to these descriptions:

  • TechNet Number of Transact-SQL command batches received per second. This statistic is affected by all constraints (such as I/O, number of users, cache size, complexity of requests, and so on). High batch requests mean good throughput.
  • Understanding how SQL Server executes a query Batch Request This request type contains just T-SQL text for a batch to be executed. This type of requests do not have parameters, but obviously the T-SQL batch itself can contain local variables declarations. This is the type of request SqlClient sends if you invoke any of the SqlCommand.ExecuteReader(), ExecuteNonQuery(), ExecuteScalar(), ExecuteXmlReader() (or they respective asyncronous equivalents) on a SqlCommand object with an empty Parameters list. If you monitor with SQL Profiler you will see an SQL:BatchStarting Event Class
  • 1
    Take a look here: technet.microsoft.com/en-us/library/… But to answer - no it's not automatically a single statement. – Allan S. Hansen Apr 29 '14 at 9:49
  • Just what I was looking for. Post your comment as answer and you will get your hard earned reputation points ;) – Yaroslav Apr 29 '14 at 9:51
  • 1
    It's basically a link answer - so not much to post as answer without duplicating the content from the link :) – Allan S. Hansen Apr 29 '14 at 9:51
  • Correct. But you can add some of the text, not just the link, in case it breaks in the future. – Yaroslav Apr 29 '14 at 9:53
  • Done as requested :) – Allan S. Hansen Apr 29 '14 at 10:24

As per the comment, then no - it's not a single statement. A batch can cover multiple individual T-SQL statements in a single batch.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.