2011-07-07 42 views
2

我剛剛注意到我的一個MSSQL數據庫顯着減速。奇怪的是,它是它們中最小的數據庫,但它需要最長時間才能打開。MSSQL/PHP:mssql_select_db()在某些數據庫上需要2秒

在使用mssql_select_db()打開數據庫後,查詢很好,但最初的mssql_select_db()需要2秒。什麼可能造成這種情況?

數據庫1更大,並且有更多的表/行,然後是數據庫2,它們都在同一個MSSQL服務器上,所以它不是網絡問題。

Database 1 
Connection/Selecting DB Time: 0.00554800033569 
Query Time: 0.035463809967 

Database 2 (Slow One) 
Connection/Selecting DB Time: 2.40434789658 
Query Time: 0.144586801529 

更新:時,我有 「數據庫2」 在Server Management Studio中打開。 mssql_select_db()似乎正常運行,並連接快速見下文

Database 1 
Connection/Selecting DB Time: 0.00480604171753 
Query Time: 0.0346729755402 

Database 2 (Slow One) 
Connection/Selecting DB Time: 0.00085186958313 
Query Time: 0.0340950489044 

這不是由過多的活動連接造成的,我已經排除了這種可能性。有任何想法嗎?

更新2: 我使用MSSQL FreeTDS Library運行PHP版本5.2.6-1 + lenny13。我直接通過IP連接不使用主機名,所以它不是一個解決問題。

+0

這些數據庫與網絡服務器在同一臺機器上嗎?請提供有關基礎設施的更多信息。 –

+0

Raffael,這兩個數據庫都在同一臺Windows機器上,並且我使用Linux服務器通過PHP連接到它們。數據庫1加載速度非常快,這就是爲什麼我不認爲它的網絡問題,因爲他們都在同一臺機器/ IP。 – x9821

+0

您使用的是什麼版本的PHP? – niktrs

回答

0

我重建了數據庫並重新導入了所有數據,這似乎解決了問題。這整個過程可能只是數據庫碎片。

0

難道是其他進程打開連接到該數據庫,並且沒有其他可用的連接?

+0

都鐸,感謝您的建議,但這似乎不是問題。我注意到,如果我有SQL Management Studio打開編輯緩慢的「數據庫2」,mssql_select_db()只需要0.008秒。我猜這是因爲數據庫已經預裝了?你有沒有聽說過這樣的事情? – x9821

+0

我從來沒有與MSSQL合作過 - 無論如何,這是一個合理性問題 - 所以數據庫有多大並不重要。嘗試看這裏http://stackoverflow.com/questions/216007/how-to-determine-total-number-of-open-active-connections-in-ms-sql-server-2005並檢查活動連接的數量時你有很長的延遲 –

+0

都鐸王朝,只有2個活躍的連接,所以我不認爲這是造成問題。無論如何感謝您的幫助。 – x9821

相關問題