SQL Server 2008中允许的最大连接数是多少?

kan*_*arp 16 join sql-server-2008

SQL Server 2008中允许的最大连接数是多少?

Mar*_*ith 13

其他答案已经直接回答了您的问题

仅受可用资源的限制

但是,即使SQL Server成功编译了您的查询计划并不意味着您应该这样做.您拥有的连接越多,可能的查询计划的空间就会大得多,您可能会获得非常次优化的计划.

对于具有12个连接的查询,可能的连接顺序的数量是28,158,588,057,600.另外,每个连接可以有三种可能的算法(散列,嵌套循环,合并)

在"SQL server 2005实用故障排除"一书中,Cesar Galindo-Legaria说

如果您加入超过20个表,优化器可能不会审查整个搜索空间,而是更多地依赖于启发式....我们已经看到运行常规查询的应用程序处理超过100个表.虽然可以运行这么大的查询,但是在这些情况下你真的在扩展系统,并且应该非常小心这么做

  • @RGS Max of 5是一个很好的推荐.对于一个表上的左连接,可能是120个可能的查询计划,对于其他方案,最多可达1680个计划.你很有可能SQL会从中做出很好的选择.在某些情况下,根据查询和表的大小(编码/性能增益所需的时间),可以证明更多是合理的.至于什么是"允许"取决于你的政策,但从技术上讲,你被"允许"腰部资源,能量和时间.就像你被"允许"在办公室大声打嗝一样.如果你走出界限,你就有可能因为无能而被解雇. (2认同)

cod*_*ger 10

此处列出了SQL Server的限制

每个查询的表数仅受可用资源量的限制.


Ada*_*Dev 10

在SQL Server 2008中,SELECT中可以拥有的最大表数仅受可用资源()的限制.

在SQL Server 2005中,单个SELECT()有256个表限制.

但是,如果你正在接受那些数字,那么我会有点担心这个问题!

  • 我见过有人达到极限的唯一一次是他们愚蠢地使用视图调用视图调用视图等.如果你使用视图来调用视图,现在是时候在你的系统仍在运行时停止了(不是只有你会遇到限制,但是在你遇到可以调用的极限之前很久就会出现严重的性能问题. (3认同)
  • "Raymond Chen指出,如果你不得不问问操作系统的限制在哪里,你可能做错了什么"http://www.codinghorror.com/blog/2007/10/pushing-operating-system-limits.html (2认同)