续TimeOut:(1)服务器如何控制“到访”;(2)SqlConnection连接成功后,能工作多久,怎么控制

秋的红果实 2016-04-22 06:26:35
因最近要开发的项目,涉及到天文数字,还敏感,需要较彻底的弄清sql服务器。专门来SQL板块的

(1)当程序连接sql服务器时,处于安全考虑,服务器本身得有个控制,不能程序要多少就给多少吧。这个控制有2方面:一是连接超时,一个是最大连接数(这个倒是用过)
假如程序中设置Connection Timeout=20;,但服务器要求:若在10秒内不能连接成功,就告诉程序连接中断。那么,这个10秒如何设置?最好是用语句

(2)SqlConnection连接成功后,能工作多久,怎么控制?
例如,一个查询执行完需要10分钟,若要求最多能查询5分钟,此时让这个连接过期,如何设置?
(CommandTimeout设置就可以停止,但我想让SqlConnection也停止,为内存减压)
...全文
282 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋的红果实 2016-05-23
  • 打赏
  • 举报
回复
引用 6 楼 kingtiy 的回复:
EXEC sys.sp_configure N'remote query timeout (s)', N'5'
GO
RECONFIGURE WITH OVERRIDE
GO
在sqlserver服务器上面设置远程查询超时时间.单位是:秒
谢谢大侠,正在测试中
kingtiy 2016-05-21
  • 打赏
  • 举报
回复
EXEC sys.sp_configure N'remote query timeout (s)', N'5'
GO
RECONFIGURE WITH OVERRIDE
GO
在sqlserver服务器上面设置远程查询超时时间.单位是:秒
tcmakebest 2016-05-21
  • 打赏
  • 举报
回复
这个道理越想越歪, 出于安全应该把远程连接关闭, 只允许本机连接. 然后公布接口通过接口操作数据.
秋的红果实 2016-05-18
  • 打赏
  • 举报
回复
不好意思,最近去忙别的工作了。 感谢楼上几位的回复 我似乎没有把问题描述清楚,更正下 1、本意想问:数据库如何控制到它的连接请求,而不是程序控制(Connection Timeout=20是程序的东西)。程序中Connection Timeout=20,但数据库自身要求10秒后就中断,这个10秒要在数据库的哪里设置?数据库有没有这个功能? 2、类似1。连接成功后,程序中计划最多执行查询10秒。那数据库自身有没有办法,让程序执行5秒就中断? 1,2不同的地方:前者指尝试连接的时间,后者是连接成功后,可以工作多久;共同点:数据库本身的控制能力。
吉普赛的歌 2016-04-26
  • 打赏
  • 举报
回复
回答你的问题, 不仅要具备数据库方面的知识, 还要具备程序开发方面的知识, sqlserver版块能回答你的人不是太多—— 请你先明白这一点。 你问的两个问题, 其实是一个问题:如何控制连接? 具体来说, 连接基本是不需要人来控制的, 只要把连接串设置好就行了。 问题1. 你既然10秒就要中断, 为何不设置 connection 的连接串超时为10秒呢?不要画蛇添足。 搞了个20秒还搞个10秒出来。 如果你连接串设置了20秒, 想其它地方10秒中断, 那没办法, 只能新写个另外一个连接串——但连接超时的设置几个出来绝对没有必要,此外: 在程序里没有办法不通过连接串来控制连接超时。 问题2. CommandTimeout设置就可以停止,但我想让SqlConnection也停止——这个是不必要的, 连接创建很浪费资源, 但节约资源不应该是这么处理。 最终解决方案, 还是要回到连接串来, 在连接串中加上: pooling=true;min pool size=5;max pool size=512; 连接池的好处: 连接使用完毕, 不直接销毁, 而是放回连接池。 下一次需要使用连接, 如果连接池中有空闲的连接, 不直接创建连接, 而是从连接池中获取。 连接池可以最大化地提高连接性能。 ——配置好连接串, 把连接方面的事情交给.net 去处理就好了, 就这么简单。 另外, 回贴时应该引用人家的原贴, 点下原贴右下角的“引用”, 这样人家才可以看到新消息, 尽快回你的贴。
秋的红果实 2016-04-24
  • 打赏
  • 举报
回复
引用 2 楼 roy_88 的回复:
敏感? 不是通过连接和连接超时去控制 是通过权限和连接机器 1.在实例里针对用户创建数据库用户并设置权限 2.针对实例可通过服务器登陆触发器设置可连接的IP地址或服务器名称
请说详细些,或者推介下相关资料。我就是担心程序频繁访问数据库导致很慢。程序里通过连接时间控制,超时就舍弃请求;也希望数据库本身也有类似控制,希望达到的效果是:尽管程序请求没有超时,但数据库受不了了,主动放弃程序对它的请求
中国风 2016-04-23
  • 打赏
  • 举报
回复
敏感? 不是通过连接和连接超时去控制 是通过权限和连接机器 1.在实例里针对用户创建数据库用户并设置权限 2.针对实例可通过服务器登陆触发器设置可连接的IP地址或服务器名称
spiritofdragon 2016-04-22
  • 打赏
  • 举报
回复
2、其实不用太担心。在网上有很多SQLHelper类。SQLCommand都抛异常了,SQLConnect肯定在后续的代码里就释放了(如果没有,那么换个版本的Helper)。现成的很多,很好找。 1、的话不是专业的dba,用默认挺好。

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧