sql连接优化[关闭]
Posted
技术标签:
【中文标题】sql连接优化[关闭]【英文标题】:sql connection optimization [closed] 【发布时间】:2017-09-16 06:54:15 【问题描述】:我有两个关于在 c# 中使用 sql server 2008 的问题。
问题1:c#中连接sql server 2005的同时查询数是多少?
我的连接字符串是:
Data Source = localhost;database=TaskQueue;Persist Security Info=True;integrated security=SSPI; MultipleActiveResultSets=true; Connection Timeout=0;Pooling=false;
问题 2:连接的生产寿命是多少?我想在运行应用程序的最后保持打开一个全局连接并仅用于此连接。 这种方法有问题吗?
【问题讨论】:
你可以查看这个案例***.com/questions/1499718/… 要回答第 2 部分,请参阅:msdn.microsoft.com/en-us/library/8xx3tyca(v=vs.110).aspx 基本上,您希望您的连接尽可能短,以便它们可以返回到框架已经提供的池中。 【参考方案1】:c#中连接sql server 2005的同时查询数是多少?
SQL Server 2005 Standard Edition 最多可支持 32,767 个同时连接。
什么是连接的生产寿命?我想在运行应用程序的最后保持打开一个全局连接并仅用于此连接。这种方法有问题吗?
SQL Server 充分利用了connection pooling,因此您通常希望将连接保持在短暂的状态,以便在使用后将它们返回到pool。
因此,请考虑将您的 SQL 调用包装在 using
语句中,以确保它们被打开、执行和正确处理,而不是使用保持打开状态的全局连接:
using (var connection = new SqlConnection("your-connection-string"))
// Do stuff
检查您的连接字符串
值得注意的是,您现有的连接字符串已明确禁用池,这将不允许您利用内置连接池:
Data Source = ...; Pooling=false;
我强烈建议您重新启用此功能,除非您完全知道自己在做什么,否则您可能会遇到一些意外行为、孤立连接等。
【讨论】:
当不使用 Pooling=false;错误传递 : timeout expired 从池中获取连接之前经过的超时时间 我使用 using (var connection = new SqlConnection("your-connection-string")) // Do stuff 但传递了错误以上是关于sql连接优化[关闭]的主要内容,如果未能解决你的问题,请参考以下文章