【问题标题】:WCF Service : Improve Database Connection InitializationWCF 服务:改进数据库连接初始化
【发布时间】:2015-09-16 12:16:46
【问题描述】:

我的 wcf 服务操作合同运行代码来初始化数据库连接以获取数据。数据库初始化确实需要一些时间,从而导致性能低下。我可以用我的 WCF 服务做些什么来克服这种情况。在我的桌面应用程序中,连接只需设置一次,因此问题不大。

ServiceBehaviour 当前设置为 instanceContextMode=InstanceContextMode.PerCall 和 ConcurrencyMode = ConcurrencyMode.Multiple

我应该使用持久性上下文模式还是任何有状态的行为。不知道是否有什么我可以做的事情,而不是依靠数据库团队来纠正初始化问题?

【问题讨论】:

    标签: wcf stateless


    【解决方案1】:

    您可以使用连接池来避免每次请求的握手和新连接。 这里有一些关于 SQL-Server 的文档:https://msdn.microsoft.com/en-us/library/8xx3tyca.aspx

    您也可以使用单例行为甚至静态连接,但最后这两个选项不是最佳选择。

    【讨论】:

    • 嘿,感谢您分享这些想法。由于我需要连接到公司内部开发的文件系统数据库,因此数据库端没有太多可用的选项来解决这种情况。但是我很想知道更多关于如何通过单例和静态连接来实现这一点。另外这样做有什么缺点?
    • 正如您所说,您的数据库是一个文件系统,我认为使用静态连接不会有问题。我想这个文件系统不会像 SQL Server 或 Oracle 那样管理连接作为数据库引擎(连接池、超时、状态等),所以我认为使用静态连接可能是一个好方法,但它需要测试。单例实现可以在您的服务中完成。只是必须记住,所有调用都只有一个实例,这可能会导致性能问题,因此请谨慎使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 2011-08-16
    相关资源
    最近更新 更多