SQL中的Web服务最佳实践

时间:2009-12-30 03:27:19

标签: sql web-services sqlconnection

我正在创建一个无状态Web服务,它使用Microsoft SQL Server来读取数据(并且只能读取),而不使用事务。以下是最好的:

  1. 每次调用Web服务时启动SqlConnection,或
  2. 将SqlConnection存储在静态字段中。
  3. 恕我直言,第一种方法将花费太多资源(如果十个客户端向Web服务发出十个请求,它会打开数百个数据库......),但第二个方法可能有一些问题?也许竞争条件?还是安全问题?

3 个答案:

答案 0 :(得分:1)

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

(MSDN, min pool size)

例如。 ConnectionString =“Catalog = MyDb; MinPoolSize = 10; MaxPoolSize = 10 ......”

答案 1 :(得分:1)

就个人而言,默认情况下我会打开每次通话的连接,并依靠连接池为我排序。

答案 2 :(得分:1)

除非您因某些原因发现存在问题,否则我不担心连接成本。连接池将使大部分内容不那么令人担忧。

如果您正在大量使用数据库,或者检索大量静态数据,您可能需要考虑实施某种缓存以降低联系数据库期间的总体成本。即使使用无状态Web服务,您可以在应用程序缓存中保留的数据越多越好。