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