wpf 首次启动应用程序时打开SQL Server连接的速度太慢

9vw9lbht  于 2022-11-26  发布在  SQL Server
关注(0)|答案(2)|浏览(279)

在我的WPF 4桌面应用程序中,我使用通过ADO .NET实体数据模型连接到SQLServer 2008 R2(edmx),我注意到,当我第一次开始应用程序(冷启动)时间过长(约10秒),直到应用程序建立(打开)连接到DB,可以执行基本LINQ查询(无连接,表非常小),并在DataGrid控件中显示结果。
SQL Server 2008 R2安装在我的本地PC上,因此不存在网络负载问题。
我建立SQL连接的方式(在外部线程中):

public static DBEntities dbContext = new DBEntities();
dbContext.Connection.Open();

连接配置:

<connectionStrings>
    <add name="DBEntities" connectionString="metadata=res://*/DBModel.csdl|res://*/DBModel.ssdl|res://*/DBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQLEXPRESS;Initial Catalog=DB;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

我的疑问:
1.它是一个小的基本WPF应用程序的正常行为(300 kb的可执行文件,没有繁重的计算)建立连接到本地SQL Server约10-13秒?我想,我的硬件不是那么现代,但无论如何,10秒...
1.您能否为我提供一些解决方案,以提高首次连接到SQL Server的性能?
经过长时间的第一次连接,程序工作正常,没有一些性能问题。

kxeu7u2r

kxeu7u2r1#

我知道在使用SQL Server的WCF上的n层应用程序中的这种“性能不佳”行为。虽然10-13秒真的很烦人,而且相当极端。我所做的是将连接踢到WCF服务,然后将SQL Server连接踢到一个对WCF服务的虚拟调用中,并将SQL Server选择查询(使用EF)踢到闪屏中。
这样,最终用户就不会经历这种首次启动延迟。当最终用户实际上想要查看/获取数据时,应用程序是响应性的。
虽然这实际上并不能“解决你的问题”,但这是一个很好的变通办法/掩盖;)

ki1q1bka

ki1q1bka2#

这在很大程度上取决于模型的复杂性;如果它相当复杂,则为其生成视图可能会导致一些延迟。您可以在构建时预先生成视图,如here所述。

相关问题