2012-06-10 240 views
25

當我單擊「對象資源管理器」中的「數據庫」節點時,它只是保持「正在加載項目」,直到它剛剛掛起。SQL Server Management Studio 2012掛起

只有連接到遠程服務器時纔會發生這種情況,而不是在訪問我的PC上的數據庫時。

它也不會與任何其他節點發生。

網絡託管公司的人沒有任何麻煩。 (但他們正在運行2008年,那裏的SQL服務器也是如此)

我重新安裝了整個SQL服務器等,但無濟於事。

可能是什麼問題?

+0

你可以訪問多個數據庫,使用這些憑據,在託管公司? (通常情況並非如此。) –

+0

也可以定義「掛起」?這是否意味着你剛剛放棄了它,還是它實際上進入了「不響應」模式?您在等待期間是否運行某種網絡分析器來查看在此期間傳輸的數據?它可能被阻塞在另一端,或者它可能只是傳輸數據,因此您需要... –

回答

5

假設您只能訪問託管公司中的一個數據庫(幾乎總是這樣,至少使用某個用戶名/密碼),您可以通過設置註冊服務器來避免使用下拉列表默認爲你應該訪問數據庫:

enter image description here

(這可能需要更長的時間在這裏了,但是這將是一次性的,您也可以鍵入它,而不是等待名單)

這樣,即使爲您創建的主機登錄路由到tempdb o r默認情況下,Management Studio仍然會將您置於數據庫的上下文中。

我現在看到你正在談論對象瀏覽器節點,而不是我以某種方式解釋不正確的「使用數據庫」下拉菜單。要嘗試的練習可能是突出顯示數據庫節點(不要展開它)並單擊F7(對象資源管理器詳細信息)。如果這爲你加載,那麼它可以作爲瀏覽層次結構的替代方案,並且作爲獎勵,您可以在此顯示大量實體屬性,也可以在對象資源管理器中進行多選,這是您無法控制的兩件事情。

如果這沒有幫助,那麼你的主人應該幫助你比他們看起來更好。如果支持SSMS 2012,那麼他們應該能夠在SSMS 2012中進行測試,並確認或否認他們可以複製它。如果它不被支持,那麼我認爲你的追求是安裝SSMS 2008(它們可以共存)並用它來管理這個特定的服務器。

當然,在對象瀏覽器中可以做的任何事情(以及許多你不能做的事情),你可以通過使用catalog views和/或DMVs來完成。因此,在決定要做什麼之前,您可能需要查看(或與我們分享)使用對象資源管理器的確切內容 - 如果有方法在沒有對象資源管理器的情況下執行此操作,則可能需要比兩個版本更好的解決方法(因爲2012年SSMS的改進與Object Explorer完全無關)。

+0

感謝您的詳細解答。/ 我試圖將數據庫名稱放在「連接屬性」中 - 它只是像以前一樣連接到服務器。 / 我試過「Object Explorer Details」 - 同樣的問題。 / 網絡主機不支持2012. / 我目前正在下載SSMS 2008,但希望避免該選項,因爲擔心它可能會干擾2012(是否記錄了2可以共存?)。 / 至於目錄視圖和DMV - 聽起來有希望的 - 它們是什麼? / 並再次感謝。 – ispiro

+0

我不知道,如果它的記錄,但只要你不使用Visual Studio或BIDS等話,我可以給你我的個人保證,他們不會打破對方(雖然我不是100%地肯定誰贏在首選項/鍵盤自定義等,如果你安裝2008年第二 - 我總是以相反的方式)。我不認爲使用2008版本會改變任何事情,但至少會給你一個合理的抱怨,你可以在他們支持的版本中打破它。他們應該能夠嘗試從他們舒適的小網絡(我確信它可以工作)的* outside *之外重現。 –

+0

至於你的評論以上 - 很長一段時間後,我不得不使用「任務管理器」來結束這個過程。 /至於「網絡分析器」 - 希望我知道那是什麼。 – ispiro

44

我遇到了同樣的問題:使用Object Explorer訪問遠程服務器時,SSMS會無限期掛起。 Windows系統事件日誌將顯示DCOM錯誤10009(「DCOM無法使用任何已配置的協議與計算機MACHINE_NAME通信」)。

解決方案是從我的配置文件中清除MRU歷史和其他設置。要做到這一點:

  1. 關閉SSMS 2012
  2. 在資源管理器中的任何打開的情況下,打開 「%APPDATA%\微軟\ SQL Server Management Studio中」
  3. 重命名 「11.0」 文件夾到別的東西,像 「11.0.old」
  4. 打開SSMS 2012

你會發現你的MRU列表已被清除。然後,您應該能夠重新輸入您的憑據並正常使用SSMS。

如果一切正常,您可以刪除重命名的文件夾。否則,請刪除已創建的新「11.0」文件夾,並將原始文件夾重命名爲「11.0」。

我不知道它實際上是MRU列表是否導致此問題,或者它是否是其他一些配置文件數據。

我們能夠發現SSMS試圖通過端口135與SQL Server建立DCOM連接(可能用於SSIS,T-SQL調試或其他)。我們的防火牆被配置爲阻止端口135.通過打開防火牆中的端口,我們能夠使用SSMS(因此它對本地數據庫有效,但不是遠程數據庫)。不幸的是,一個開放端口135是一個很多攻擊的邀請,所以這對我們來說不是一個實際的解決方案。

+1

刪除11。0文件夾工作了幾天,但是一週後又回到了最初的對象資源管理器在嘗試展開數據庫節點時甚至在我有機會這樣做之前完全鎖定了。它發生在我嘗試連接到的2個獨立的SQL服務器實例上,這些實例在共享的Web主機上,並且其上有許多其他數據庫。我能夠在SSMS 2008中沒有任何問題的情況下連接到相同的2個SQL服務器實例。我可能會再次刪除11.0文件夾,但是很難做到,因爲我需要重新添加所有設置。 –

+0

唯一的永久解決方案將在防火牆上打開端口135,但我不建議這樣做。 – Jaecen

+0

正在刪除爲我工作的文件夾。謝謝! – jkruer01

0

我現在已經應用了SQL 2012 Service Pack 1(通過Windows更新),現在看起來工作正常,但加載需要很長時間。

2

在我的情況下,刪除配置文件文件夾只能工作一次。下次打開SSMS 2012時,它會在連接到服務器時再次凍結。 SP1也沒有解決這個問題。

這是直到我發現了一個ticket by Ben Amada over at connect.microsoft.com描述的以下簡單的解決方法:

    關閉SSMS 2012

    所以對我來說完全解決方法是此之前,請務必關閉對象資源管理器詳細

  1. 按照Jaecen的答案,但接近SSMS 2012後再次它創造了一個乾淨的配置文件夾
  2. 應用流氓的建議,並複製SqlStudio.bin從舊的配置文件夾到新的關閉SSMS 2012確保對象資源管理器詳細窗口關閉

前兩個前(舊的配置文件夾可以事後刪除)

  • 每次步驟只需要一次,或者如果「對象瀏覽器詳細信息」窗口被意外打開。

    編輯

    我只注意到關閉對象資源管理器詳細信息窗口時(重新)連接在同一個SSMS會話的SQL服務器也是必需的。所以基本上每當連接到服務器時,對象瀏覽器細節窗口都必須關閉。

  • 1

    這裏是我工作的連接 打開SSMS 單擊連接到服務器對話框中展開選項對象資源管理器按鈕 >> 點擊重置所有 完成!

    3

    我花了一個多月時間與Microsoft SQL支持解決此問題。它已被提交爲一個錯誤。

    我同時在Win 7(64)上安裝了SQL 2012 SSMS和VS 2012。

    刪除配置文件夾從來沒有工作過任何合理的時間長度。

    我們發現的解決方法是確保我的SSMS配置文件在連接時默認爲Master數據庫。這似乎與我與Windows身份驗證連接的事實有關,並且我屬於多個具有SQL權限分配的AD組,並且我沒有在我的AD帳戶上設置SQL特定權限。

    6

    在所有數據庫上關閉自動關閉。像我的魅力一樣工作! 每次展開或刷新數據庫列表時,服務器都必須喚醒導致掛起的數據庫。

    只要運行這個命令可以找到所有具有自動關閉功能的上

    SELECT name, is_auto_close_on 
    FROM master.sys.databases AS dtb 
    WHERE is_auto_close_on = 1 
    ORDER BY name 
    

    http://social.msdn.microsoft.com/Forums/sqlserver/en-US/99bbcb47-d4b5-4ec0-9e91-b1a23a655844/ssms-2012-extremely-slow-expanding-databases?forum=sqltools

    數據庫要關閉此設置爲一個數據庫 - 右鍵單擊​​數據庫實例在對象資源管理器 - >單擊屬性 - >單擊數據庫屬性窗口中左側導航窗格中的「選項」 - >在右側窗格中將自動關閉屬性的值更改爲「False」,如下面的快照所示:

    Auto close option in database properties window in SQL Server 2008 R2

    +1

    謝謝。如果這是真的 - 數據庫必須被喚醒出現在對象瀏覽器窗口中 - 我想知道_why_就是這樣。我希望看到它,然後_then_選擇我需要的數據庫... – ispiro

    +0

    似乎2012年之前的SSMS沒有必要這樣做。 2012年必須做的事情,需要加載數據庫... –

    +0

    此外,谷歌搜索它似乎有自動關閉數據庫是一個非常糟糕的做法...我切換所有我的(有40個數據庫)和等待時間從1-2分鐘變爲0秒:) –

    0

    「打開SSMS上單擊連接中的對象連接到服務器對話框中展開選項Explorer按鈕>>點擊全部重設」 - 它的工作原理

    2

    我連接到多個遠程服務器rangig從2000年到2012年 本地PC上的SMSS是SQL Server 2012,SMSS是11.0.2100.60

    SSMS每天凍結幾次。當發生這種情況時,我通過RDP去 本地服務器/ SMSS/Activity Monitor並終止我的PC上的進程與數據庫名稱= master,一次一個,直到我的PC上的SMSS解凍。

    然而,這總是奏效,但治療疾病比症狀更受歡迎。

    2

    從2000到2012有一些SQL Server, 然後通過我的桌面上的SMSS進行訪問。 問題發生頻率變化,看起來像這樣:當我在對象資源管理器中摺疊服務器時,SMSS會凍結。

    尋找在活動監視器有問題的服務器上,我找到主人的過程分貝主機=我的桌面上執行以下查詢

    選擇dtb.name [名稱] FROM AS master.dbo.sysdatabases中DTB ORDER BY [Name] ASC SMSS

    查殺SMSS。

    0

    我改變我的默認數據庫恢復到主解決了這個問題。

    +0

    因爲無論您設置了哪個默認數據庫都具有自動關閉功能,這是否奏效? – influent

    +0

    @influent那是哪裏? – Tuan

    1

    我已經測試大約以上所有的答案,但我SSMS被困在擴大數據庫列表。我終於找到了問題。問題是因爲我恢復了它的數據庫,但它在最後正確恢復了。然後當我擴大數據庫列表時,它一直在堅持。

    我運行一個查詢

    SELECT 
    dtb.name AS [Name] 
    ,dtb.database_id AS [ID] 
    ,CAST(has_dbaccess(dtb.name) AS bit) AS [IsAccessible] FROM master.sys.databases AS dtb 
    

    那麼結果花了太長時間,並在年底超時但是當我篩選卡住數據庫我得到的結果。

    SELECT 
    dtb.name AS [Name] 
    ,dtb.database_id AS [ID] 
    ,CAST(has_dbaccess(dtb.name) AS bit) AS [IsAccessible] FROM 
    master.sys.databases AS dtb 
    Where name <> 'StuckDB' ORDER BY [Name] ASC 
    

    最後我決定分離StuckDB來解決我的問題。

    0

    轉到在SSMS數據庫性能和兼容性變更至2012年然後檢查。

    enter image description here

    相關問題