Frage

Beim Schreiben manuelles SQL seines ziemlich einfach, die Größe und die Form der Daten, die von einer Abfrage zurückgegeben zu schätzen. Ich bin immer finde es schwer zu SQL-Abfragen dies mit LINQ zu tun. Manchmal finde ich viel mehr Daten als ich erwartet hatte - das ist wirklich ein Remote-Client verlangsamen kann, die eine Datenbank direkt zugreift

.

Ich möchte in der Lage sein, eine Abfrage auszuführen und dann genau sagen, wie viele Daten über den Draht zurückgegeben worden, und verwenden Sie dies mir optimieren zu helfen.

Ich habe bereits ein Protokoll mit dem DataContext.Log Verfahren angeschlossen, aber das gibt mir nur einen Hinweis auf der SQL gesendet, nicht die Daten empfangen werden.

Irgendwelche Tipps?

War es hilfreich?

Lösung

Sieht aus wie Sie die SqlConnection Ihres Datacontext greifen und drehen auf Statistiken.

Eine der Statistik ist "Bytes zurückgegeben".

MSDN Reference Link-

Andere Tipps

Hinweis: Sie müssen die Verbindung zu einem SqlConnection werfen, wenn Sie eine vorhandene Datacontext

 ((SqlConnection)dc.Connection).StatisticsEnabled = true;

abrufen dann die Statistik mit:

 ((SqlConnection)dc.Connection).RetrieveStatistics()

fand ich keine Möglichkeit, die SqlConnection des Datacontext zu greifen, so habe ich die SqlConnection manuell:

SqlConnection sqlConnection = new SqlConnection("your_connection_string");
// enable statistics
cn.StatisticsEnabled = true;

// create your DataContext with the SqlConnection
NorthWindDataContext nwContext = new NorthWindDataContext(sqlConnection);

var products = from product in nwContext
               where product.Category.CategoryName = "Beverages"
               select product;
foreach (var product in products)
{
    //do something with product
}

// retrieve statistics - for keys see http://msdn.microsoft.com/en-us/library/7h2ahss8(VS.80).aspx
string bytesSent = sqlConnection.RetrieveStatistics()["BytesSent"].ToString();
string bytesReceived = sqlConnection.RetrieveStatistics()["BytesReceived"].ToString();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top