我可以通过Web.Config连接字符串优化我的数据库连接吗?

时间:2012-12-30 18:44:35

标签: c# asp.net sql-server-2008 optimization

我只想知道我们的connectionstring字段中是否有属性或属性,以便我们可以维护与客户端的优化数据库连接。像我一般使用。它只包含所需的信息。

<add name ="ConnectionString" connectionString="Data Source=118.225.221.7;Initial Catalog=mycatalogue;
User Id=dba; password=some_password"/> 

另一个场景,我们也可以增强MARS和异步操作的连接字符串:

MARS
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
MultipleActiveResultSets=true;

Asynchronous Processing
Server=myServerAddress;Database=myDataBase;Integrated Security=True;
Asynchronous Processing=True;

在我们的页面中,我有4-5个或有时~10个连接来访问数据。假设代码正在执行"SELECT"语句并为每个客户端获取一些随机行,请假设有100个用户同时访问同一页面。然后,400-500个连接将同时命中数据库,我认为这肯定会降低服务器/应用程序的性能。

所以我想知道,我应该最小化查询数量,还是将它留给.Net框架智能。

1 个答案:

答案 0 :(得分:0)

首先看看优化你的linq,确保你没有进行两次查询,例如可以通过一次调用拉出所有信息。

另请参阅缓存。在这里,您必须决定数据应该缓存多长时间以及何时应该使数据无效(例如,插入记录的人)以及您执行此操作的级别。如果您的页面很少更改,并且在插入/更新时没有那么重,您可以在页面级别缓存(页面级缓存)。

如果这不是一个选项,您可以使用类似httpcontext.current.cache的内容来缓存从linq返回的数据,快速谷歌搜索会向您显示详细信息,但实际上您将缓存从linq查询返回的数据,并在后续请求中首先检查缓存以查看数据是否存在,如果存在,则使用该数据,如果不是,则转到数据库并再次请求它。这限制了数据库的匹配。