我的SQL Server CE数据库首次运行查询时遇到了一个大问题。
我已经应用了这个优化Performance 和 Entity Framework,但是第一个查询仍然需要15 sec
运行。
当我第一次运行我的应用程序第一次查询时我注意到的东西大约需要 15 秒才能运行。
如果我关闭我的应用程序并再次运行,第一个查询会立即运行。因此,如果我重新启动 PC 并再次运行应用程序,则第一个查询需要 15 秒才能运行。
总的来说,经过两周的互联网研究,我找不到解决问题的好方法。
我使用了ANTS Performance Profiler,我注意到我的第一个查询大约需要 11 秒,而每个页面的表单初始化第一次需要 4 秒。
我有一些问题:
- 我想知道我的应用程序启动时加载到 Ram 的资源是什么?
- 为什么我的应用程序在第二次运行时速度很快?
- 如何在应用程序启动之前将这些资源加载到 Ram 中?
- 为什么这些资源保留在 Ram 中,直到 Windows 重新启动?
也许 15 秒很好,但是当我从 DVD 运行我的应用程序时,运行第一个查询需要 45 秒。
已编辑
我为我的应用程序的每个部分使用了多个数据库。
例如这个查询 Take 11 sec to run form first time:
public void GetContent(short SubjectID)
{
new QuranOtherEntities(CDataBase.CSQuranOtherEntities))
{
CHtmlDesign.HtmlFile = QODB.AdabTbls.First(data => data.ID == SubjectID).Content;
}
}
表结构