2
我正在用C#编写一个Sql客户端,并希望能够在一个点上跟踪Sql命令的数据使用情况。从我可以告诉的是,没有简单的方法来做到这一点。C#SqlCommand字节传输大小
我的函数来获取数据从后面的SqlCommand看起来是这样的:
private static void ExecuteReaderCallback(IAsyncResult async)
{
DBReqWrapper RequestObject = (DBReqWrapper)async.AsyncState;
SqlDataReader ResponseReader = command.EndExecuteReader(async);
if (ResponseReader.HasRows)
{
while (ResponseReader.Read())
{
object[] NewResponse = new object[ResponseReader.FieldCount];
ResponseReader.GetValues(NewResponse);
// Processing omitted
}
}
ResponseReader.Close();
}
我不认为会有什么工作:
- 序列化的数据,以找出大小。太慢,特别是对于大量请求。
- sizeof。我们正在处理未知类型的对象。
- Marshal.sizeof。我们正在处理托管对象。
- 检查应用程序总内存。这是一个多线程应用程序,它将处理许多并发请求,并且内存总数不可靠。
- SqlDataReader :: GetBytes()。该命令仅对类型的子集有效。
任何帮助表示赞赏,谢谢!
为什么GetBytes()只对子类型有效? – Tigran