我們有一個支持大約500多個用戶的Windows應用程序(用.Net編寫)。這個應用程序有一個特定的功能,它將帶回每天運行少量時間的大約40k條記錄(在MS SQL Server上)。影響整個系統的大型數據庫查詢
但是,當運行這個大型查詢時,系統的其他用戶似乎是「定時」,這對我來說似乎意味着大型查詢佔用服務器資源並導致其他用戶無法使用系統正常。
我想了解資源分配是如何工作的,因爲我覺得像一個40k查詢並不完全是巨大的,但體積相當大。
我們的應用程序體系結構的用戶界面 - >服務層 - > Web服務 - >數據庫
難道是導致問題或可能我的查詢可能會被「鎖定」的SQL數據庫,而不是讓Web服務其他用戶與它交互?
SQL查詢非常簡單,它直接從特定表中選擇所有記錄(此表包含從其他表中提取的數據,現在大約有40k條記錄,表中有大約50列):
SELECT *
FROM MyTable
幾乎是查詢。沒有連接,我正在使用存儲過程。
可能是後者,你的查詢佔用數據庫服務器。你能向我們展示查詢和相關表結構嗎?或者也許是一個執行計劃?也可能是查詢返回了一個非常大的結果集,導致Web服務器在內存使用率上激增。 – alexn
你查詢的是什麼樣子?它影響了多少個表格?它有很多連接嗎?你可以使用視圖而不是直接使用表格嗎?你可以使用存儲過程嗎?你能緩存結果嗎? –
執行此查詢並返回SSMS中的所有記錄需要多長時間? –