我有使用SQLserver的Web應用程序。在分貝我有一個大表(3GB)。所有的數據庫都有4GB。問題在於來自另一個表(不是那麼大)的查詢有時非常緩慢。有時查詢需要幾秒鐘,但有時相同的查詢需要幾分鐘。sqlserver中的大表
我的問題是:一個大表可以減慢來自另一個表的查詢嗎?
因爲我使用sql-server-2008 express版本,限制1 GB RAM和10 GB數據庫大小,這可能是一個問題嗎?更改SQL Server版會解決我的問題嗎?使用應用程序總是有大約50個用戶。
我有使用SQLserver的Web應用程序。在分貝我有一個大表(3GB)。所有的數據庫都有4GB。問題在於來自另一個表(不是那麼大)的查詢有時非常緩慢。有時查詢需要幾秒鐘,但有時相同的查詢需要幾分鐘。sqlserver中的大表
我的問題是:一個大表可以減慢來自另一個表的查詢嗎?
因爲我使用sql-server-2008 express版本,限制1 GB RAM和10 GB數據庫大小,這可能是一個問題嗎?更改SQL Server版會解決我的問題嗎?使用應用程序總是有大約50個用戶。
一般而言,表A的簡單存在不應該對不涉及表A的查詢產生任何影響。也就是說,如果應用程序X正在查詢表B並且同時應用程序Y正在查詢表A,而針對A的查詢需要花費大量的工作,因爲服務器只有這麼多的功能,可能會降低對錶B的查詢速度。
我可以想象一下,大表的存在會減慢對另一個表的查詢速度。例如,如果磁盤碎片化爲小表B的部分,那麼大表A就是大表A,然後是更多的小表B,而針對B的任何訪問都必須跨越硬盤的較大部分。但哇,我懷疑這將是一個大問題。
我想可能會有後臺進程,比如累計優化器的表統計信息,這些後臺進程會像在對小表進行查詢時那樣在大表上啓動。也許有更多內部知識的人可能會考慮這樣的問題。
它可能與內存有關,SQL服務器在RAM中緩存數據,並且如果一個非常大的表被緩存,這可能是以其他表沒有被緩存爲代價的,因此從磁盤訪問較慢。
這只是一種理論,但你可能想嘗試查詢在
https://www.mssqltips.com/sqlservertip/2393/determine-sql-server-memory-use-by-database-and-object/
有多少RAM你分配給SQL Server,以及有多少其他數據庫/東西怎麼回事?