获取SqlDataReader有效内容的大小

时间:2014-03-19 20:51:58

标签: c# sql-server ado.net

我试图弄清楚从SQL Server返回的有效负载的大小。我的代码是使用ADO.NET:

using (var command = new SqlCommand("SELECT * FROM [dbo].[Products]", connection))
{
  SqlDataReader reader = command.ExecuteReader(); 
  // find # of bytes of payload returned

但是,我不确定如何获得从SQL Server返回的大小。有没有办法使用SqlDataReader我能做到的?

1 个答案:

答案 0 :(得分:1)

尝试以下查询。用您的表名替换商店,用您的列名替换ID。

DECLARE @maxRowSize int
SET @maxRowSize =
(
SELECT SUM(DataSize) AS MaxRowSize
FROM
(
SELECT COLUMN_NAME, DATALENGTH(COLUMN_NAME) as DataSize
from information_schema.columns 
where table_name = 'shop' -- enter table name only, do NOT enter the schema
) AS SCHEM
)
SELECT COUNT(Id) as NumOfRows, --optional
@maxRowSize as MaxRowBytes, --optional
COUNT(id) * @maxRowSize as MaxQueryBytes
FROM Shop -- Enter schema name if needed