SQL在web服务最佳实践中的应用

SQL在web服务最佳实践中的应用,sql,web-services,sqlconnection,Sql,Web Services,Sqlconnection,我正在创建一个无状态web服务,它使用Microsoft SQL Server读取数据(并且仅读取),而不使用事务。以下哪一项最好: 在每次调用web服务时启动SqlConnection,或 在静态字段中存储SqlConnection 首先,第一种方法会花费太多的资源(如果十个客户端向web服务发出十个请求,它会打开一百倍的数据库…),但是第二种方法可能会有一些问题?也许是比赛条件?还是安全问题?添加最大/最小池大小允许SQL server池连接,因此即使您创建了新的SqlConnection对

我正在创建一个无状态web服务,它使用Microsoft SQL Server读取数据(并且仅读取),而不使用事务。以下哪一项最好:

  • 在每次调用web服务时启动SqlConnection,或
  • 在静态字段中存储SqlConnection

  • 首先,第一种方法会花费太多的资源(如果十个客户端向web服务发出十个请求,它会打开一百倍的数据库…),但是第二种方法可能会有一些问题?也许是比赛条件?还是安全问题?

    添加最大/最小池大小允许SQL server池连接,因此即使您创建了新的SqlConnection对象,db也可以为您池连接


    例如:ConnectionString=“Catalog=MyDb;MinPoolSize=10;MaxPoolSize=10…”

    就个人而言,默认情况下,我会在每次调用时打开连接,并依靠连接池来为我解决问题。

    我不会担心连接成本,除非您发现这是由于某种原因造成的问题。连接池将使大部分问题变得不那么重要


    如果您在数据库中大量工作,或检索大量静态数据,您可能需要考虑实现某种缓存,以减少与数据库周期联系的总体成本。即使使用无状态的web服务,您可以在应用程序缓存中保存的数据越多越好。

    连接池如何?还要注意web服务保持活动状态设置的时间长度,这样缓存不会太频繁刷新并影响性能。这一点很好!缓存是在设计中引入其他微妙问题的问题之一。好吧,我只是不知道这个特性。非常感谢。