1
A
回答
2
你不能得到你想要的。但可以估計。實體框架需要執行查詢時,幾個動作,如:
- 元數據加載
- 視圖生成
- 參數評測
- 查詢翻譯
- Materializer代
- 數據庫查詢執行
- 對象實現
- 標識lo
- 元查找 :okup
但是,當你執行溫暖查詢(第二查詢執行)大部分負荷和代由查找如下取代
- 查看查找
- 參數評測
- 查詢查找
- Materializer 查找
- 數據庫查詢執行
- 對象具體化
- 身份查找
在這種情況下,大部分步驟的成本是低,但:
- 數據庫查詢執行 - 潛在的高
- 對象物化 - 中
- 身份查詢 - 中。
,你可以在這裏做什麼是執行溫暖查詢,計算花費的時間,然後從總時間減去查詢執行時間和2(因爲兩個中等成本)除以它。是的,我知道這將是非常粗糙的結果,但它從無到有更好:)。以下是演示:
// Let Entity Framework to load metadata, generate views and etc.
using (TestContext context = new TestContext())
{
var query = context.Set<Message>().AsNoTracking();
Message first = context
.Set<Message>()
.AsNoTracking()
.FirstOrDefault();
}
// Execute warm query
using (TestContext context = new TestContext())
{
// Log the queries to be able to subtract query execution time.
context.Database.Log = Console.WriteLine;
var query = context.Set<Message>().AsNoTracking();
Stopwatch stopwatch = new Stopwatch();
stopwatch.Restart();
Message first = query.FirstOrDefault();
stopwatch.Stop();
Console.WriteLine("Elapsed {0} milliseconds.", stopwatch.ElapsedMilliseconds);
}
然後你就可以從總時間減去查詢執行時間(原木)和2
把它見this link獲取更多信息。
相關問題
- 1. 查詢與ROW_NUMBER()花費過多時間
- 2. 查詢花費太多時間
- 3. MySQL查詢花費過多時間
- 4. Powershell:WMI查詢花費太多時間
- 5. Db2查詢花費的時間太多
- 6. 的MySQL查詢花費過多時間
- 7. MDX查詢花費時間
- 8. 爲什麼查詢花費很多時間在SQL中給出結果
- 9. SQL查詢花費的時間至少爲10s
- 10. 如何優化查詢花費太多時間
- 11. 優化查詢,花費更多的時間來執行
- 12. 我如何優化這個花費很多時間的查詢?
- 13. 爲什麼在實際查詢只花費幾毫秒時,MongoDB結果很慢?
- 14. SQL查詢花費很長時間
- 15. Mongodb查詢花費時間過長
- 16. 取消插入查詢 - 花費時間
- 17. WMI查詢花費很長時間
- 18. 查詢花費很長時間DISTINCT
- 19. MySQL查詢花費很長時間
- 20. SQL查詢花費太長時間
- 21. Sql Server查詢花費時間
- 22. 查詢花費太長時間
- 23. 查詢花費很長時間執行
- 24. SQL查詢花費的時間太長
- 25. SQL查詢花費很長的時間
- 26. 當結果低於查詢限制時,數據存儲查詢花費的時間太長
- 27. 實體框架花費大量時間初始化模型
- 28. 花費的實際時間
- 29. 開發人員花費多少時間查看日誌?
- 30. 蒙戈DB查找查詢花費過多時間
我認爲這是一個合理的方法。實體生成不僅僅包括生成CLR對象。關係修正也會發生(即使使用'AsNoTracking',我猜這是一個相對昂貴的過程。即使我們有適當的鉤子(我們沒有),也很難得到所有這些步驟的詳細測量結果。黑盒子的方法是最好的,我們可以得到。 –
感謝支持@GertArnold) –