2014-01-15 52 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的任何訪問都必須跨越硬盤的較大部分。但哇,我懷疑這將是一個大問題。

我想可能會有後臺進程,比如累計優化器的表統計信息,這些後臺進程會像在對小表進行查詢時那樣在大表上啓動。也許有更多內部知識的人可能會考慮這樣的問題。