MSSQL网站制作之Timeout expired. The timeout period ...
2008年1月16号MySQLAB被Sun公司收购。而2009年,SUN又被Oracle收购。就这样如同一个轮回,MySQL成为了Oracle公司的另一个数据库项目。server明天也碰着了这个成绩,google了一下,没想到ghj1976已写过blog了.呵呵,简单犯的毛病.
http://blog.joycode.com/ghj/archive/2004/06/15/24612.aspx
转贴一下:
假如你利用的数据库毗连类是theDataAccessApplicationBlocks"SqlHelper"大概SqlClientClass,你在实行一个很费时的SQL操纵时分,大概就会碰着上面的超时非常。
---------------------------
---------------------------
Timeoutexpired.Thetimeoutperiodelapsedpriortocompletionoftheoperationortheserverisnotresponding.
---------------------------
OK
---------------------------
你会说,我在毗连字符串中已设置了ConnectTimeout=80000,而且数据库中超时毗连也是设置的值是一个很年夜的值。为啥到了30秒,仍旧超时了呢??
这是由于:
你的设置并没有成绩,是你搅浑了SqlCommand.CommandTimeout和SqlConnection.ConnectionTimeout这两个的区分了。
你的毗连字符串中的超时只是设置的SqlConnection.ConnectionTimeout的值,而不是设置的SqlCommand.CommandTimeout的值。
SqlHelper中并没有SqlCommand.CommandTimeout的相干设置。必要你本人设置。
上面是两个的对照:
SqlCommand.CommandTimeout
猎取或设置在停止实行命令的实验并天生毛病之前的守候工夫。
守候命令实行的工夫(以秒为单元)。默许为30秒。
SqlConnection.ConnectionTimeout
猎取在实验创建毗连时停止实验并天生毛病之前所守候的工夫。
守候毗连翻开的工夫(以秒为单元)。默许值为15秒。
一些更具体的对这个成绩的形貌看:
http://www.eggheadcafe.com/PrintSearchContent.asp?LINKID=357
这个成绩能够算是SqlHelper计划的时分,一个思索不周的中央吧。
SqlCommand.CommandTimeout的默许值是30,关于我写的年夜多半程序来讲,这个值充足了。以是一向都没有发明SqlHelper的这个成绩。明天在查当地一台对照差的机子上天生一个超长帖子(近4000个复兴)无呼应的成绩时分,才发明SQLHelper存在的这个成绩。
Federated将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用 大家注意一点。如下面的例子: 如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。 换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的 一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。 学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了! 其中最有名的应该是row_number了。这个终于解决了用临时表生成序列号的历史,而且SQLServer2005的row_number比Oracle的更先进。因为它把Orderby集成到了一起,不用像Oracle那样还要用子查询进行封装。 所以你总能得到相应的升级版本,来满足你的需求。 财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
页:
[1]