我目前面臨的問題是需要花費相當長的時間來處理來自服務器的信息,並且我希望爲用戶提供主動反饋,以便知道應用程序看起來正在發生什麼。C#:從SqlConnection對象獲取反饋?
有關應用程序:它允許用戶從指定的服務器中提取所有數據庫以及這些數據庫中的所有內容。這可能需要相當長一段時間,因爲我們的一些數據庫可以達到2TB的大小。每個服務器可以包含數百個數據庫,因此,如果我嘗試使用100個數據庫加載服務器,並且其中30%的數據庫大小超過100GB,那麼在應用程序能夠運行之前需要幾分鐘的時間再次有效。
目前我只是有一個簡單的加載消息說:「請稍等,這可能需要一段時間...」。但是,在我看來,這對於需要幾分鐘時間的事情來說並不足夠。
因此,我想知道是否有辦法跟蹤SqlConnection
對象的進度,因爲它正在執行指定的查詢?如果是這樣,我可以提供什麼類型的細節,並且是否有現成的資源可供查看並更好地理解解決方案?
我希望有一種方法可以做到這一點,而不必重新創建SqlConnection
對象。
謝謝大家的幫助!
編輯
此外,作爲另注;我不在這裏尋找代碼的講義。如果有任何可用的情況,我正在尋找能夠幫助我解決這種情況的資源。我一直在調查這個問題已經有幾天了,我想這裏最好的地方就是尋求幫助。
額外
一個更詳盡的解釋:我想知道是否有提供與當前正在接收數據庫,表,視圖等名用戶的方式。
例如:
- 負載表X從數據庫是開服務器ž
- 加載表格從數據庫B在服務器ž
只是一個想法在這裏。讓您的代碼在啓動SQL作業後立即返回的SPROC啓動。該sproc應該返回一個標識用戶作業的GUID,以便用戶可以查詢狀態。該作業可以將進度記錄寫入表中,您可以查詢該表。連接不需要保持打開狀態,用戶應用程序不需要保持打開狀態。它全部斷開連接。 GUID將用於檢索有關作業的信息並有選擇地控制作業。 – Amy
您可以將查詢分解爲較小的查詢,並在每個階段完成後向用戶界面報告。 – Amicable
請看,這就是爲什麼當我卡住時,我會問StackOverflow問題。但是,性能會有什麼影響?這是否會顯着降低處理速度?在加載每個數據庫的詳細信息之前,我可以輕鬆地提取數據庫名稱列表,並通過該列表循環以提供反饋。 – lxxtacoxxl