2014-01-15 51 views
0

我有使用SQLserver的Web应用程序。在分贝我有一个大表(3GB)。所有的数据库都有4GB。问题在于来自另一个表(不是那么大)的查询有时非常缓慢。有时查询需要几秒钟,但有时相同的查询需要几分钟。sqlserver中的大表

我的问题是:一个大表可以减慢来自另一个表的查询吗?

因为我使用sql-server-2008 express版本,限制1 GB RAM和10 GB数据库大小,这可能是一个问题吗?更改SQL Server版会解决我的问题吗?使用应用程序总是有大约50个用户。

回答

0

一般而言,表A的简单存在不应该对不涉及表A的查询产生任何影响。也就是说,如果应用程序X正在查询表B并且同时应用程序Y正在查询表A,而针对A的查询需要花费大量的工作,因为服务器只有这么多的功能,可能会降低对表B的查询速度。

我可以想象一下,大表的存在会减慢对另一个表的查询速度。例如,如果磁盘碎片化为小表B的部分,那么大表A就是大表A,然后是更多的小表B,而针对B的任何访问都必须跨越硬盘的较大部分。但哇,我怀疑这将是一个大问题。

我想可能会有后台进程,比如累计优化器的表统计信息,这些后台进程会像在对小表进行查询时那样在大表上启动。也许有更多内部知识的人可能会考虑这样的问题。