首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优化SQL连接性能?

优化SQL连接性能?
EN

Stack Overflow用户
提问于 2009-07-03 09:36:25
回答 5查看 7K关注 0票数 1

这不是关于优化SQL命令的问题。我想知道有什么方法可以确保SQL连接保持打开,并准备好尽可能有效地处理命令。

我现在看到的是,我可以执行一个SQL命令,该命令需要大约1秒,额外的执行将需要大约300ms。这是在先前针对SQL server (从另一个应用程序实例)执行命令之后...因此,在此应用程序首次执行之前,应为已执行的查询完全填充SQL缓存。只要我不断地重新执行查询,我就会看到大约300ms的时间,但如果我让应用程序空闲5-10分钟并返回,那么下一个请求将回到~1秒(与初始请求相同)。

有没有一种方法可以通过SqlConnection上的连接字符串或某些属性来指导框架保持连接的完整性,并为有效处理查询做好准备?

EN

回答 5

Stack Overflow用户

发布于 2009-07-03 09:45:53

你检查过你的过程的执行计划了吗?我相信执行计划被加载到服务器的内存中,然后在特定的时间段后清除,或者取决于过程中访问的表等。我们曾经遇到过这样的情况:简化存储过程(可能是拆分存储过程)会减少数据库服务器在计算plans...and时所做的工作量,最终会减少第一次执行存储过程的时间。called...You可以发出命令,强制存储过程每次重新编译,以测试是否减少了初始调用时间……我们曾经遇到过这样的情况:存储过程的复杂性使得数据库服务器必须根据不同的参数不断地重新编译,这极大地减慢了数据库服务器的速度,将SP拆分或将大型select语句简化为多个update语句等都有相当大的帮助。

其他想法可能是断断续续地调用简单的getDate()或类似的方法,这样sql server就会唤醒(希望这是有意义的)...much,就像在IIS的内存中保留asp.net应用程序一样。

票数 2
EN

Stack Overflow用户

发布于 2009-07-06 04:31:46

.NET连接池中打开的连接的默认值为零。

您可以将连接字符串中的此值调整为1或更多:

代码语言:javascript
复制
"data source=dbserver;...Asynchronous Processing=true;Min Pool Size=1"

查看有关这些options in MSDN的更多信息。

票数 2
EN

Stack Overflow用户

发布于 2009-07-03 09:40:30

你可以通过不关闭它来保持它打开。:)但这是不可取的,因为连接池将为您处理连接管理。你启用它了吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1078602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档