我有一些代碼可以從.NET Core 2.0中的本地SQLite數據庫文件中提取HTML頁面。在調試模式下運行時,此代碼可以正常工作,但是在發布應用程序后,該代碼在生產中的運行速度非常慢。我使用秒表來診斷是哪段代碼導致了該問題,connection.QueryFirstOrDefault并發現在調試模式下需要2毫秒才能找到單行,但是同一任務在發布該應用程序后需要1.4秒。大約慢了700倍。//initialize connectionvar connection = new SqliteConnection("Data Source=" + dbName);// Build SQL Stringstring query = @"SELECT * FROM HtmlItems WHERE PostID = 1;// Start Timervar watch = System.Diagnostics.Stopwatch.StartNew();Submit queryHtmlItem = connection.QueryFirstOrDefault<HtmlItem>(query);// End Timerwatch.Stop();var result = watch.ElapsedMilliseconds();查詢映射到一個看起來像這樣的對象public class HtmlItem{ public int PostID { get; set; } public string PostTitle { get; set; } public string PostDescription { get; set; } public int PostDate { get; set; } // Unix Timestamp public int Hidden { get; set; } public string Url { get; set; } public string PostHTML { get; set; }}在調試和生產中使用相同的數據庫文件,該數據庫文件只有三行。我的應用程序應該是嘗試訪問該文件的唯一方法。索引SQLite數據庫文件似乎并沒有提高任何速度。我想知道如何確定導致數據庫連接的生產速度降低700倍的原因。
1 回答
HUX布斯
TA貢獻1876條經驗 獲得超6個贊
同步讀取文件時,在.net核心上使用dapper時,SQLite似乎不太快。
如果您使用異步讀取文件,那么它似乎要快得多。
HtmlItem = await connection.QueryFirstOrDefault<HtmlItem>(query);
- 1 回答
- 0 關注
- 673 瀏覽
添加回答
舉報
0/150
提交
取消
