2017-08-08 95 views
1

我有一個SQL視圖,需要4-5秒運行,沒有過濾器,如果我在SSMS內運行。如果我嘗試在Access 2010中打開鏈接的「表」,它會超時。SQL查看鏈接訪問超時

在選項 - 客戶端設置中,我將OLE/DDE超時設置爲0,將ODBC超時設置爲0.我仍然得到ODBC調用失敗。 [Microsoft] [ODBC SQL Server驅動程序]查詢超時已過期(#0)。一旦我點擊確定,我收到另一條消息[當前應用程序名稱]無法在數據表視圖中打開表格。

我只是不明白我不能在Access中打開這個鏈接表,但底層視圖現在只有88條記錄。有很多列,但很少有結果,只需要幾秒鐘就可以在SSMS中運行。爲什麼它會超時並且存在Access中鏈接表等問題?

任何幫助,非常感謝。

謝謝!

+0

當您在Access中的Design View中打開鏈接表時,它是否顯示主鍵(在一個或多個字段旁邊的小金鑰匙圖標)? –

+0

不,沒有主鍵。實際上沒有一個,因爲這個sql視圖基本上是應用程序中所有表的左連接(或多或少),以提供應用程序中的所有字段和信息,因此它可以作爲構建自己的基礎報表。他們從這些字段列表中選擇字段,並從列表框中過濾,這些列表框以標準形式提供給相應的字段。從本質上講,它始終會應用一個過濾器,但應該能夠在訪問中完全運行,就像它在sql中一樣。 – missscripty

+0

您是否可以確認在Access中SELECT COUNT(*)AS n FROM dbo_YourViewName'是否返回行計數而不超時?另外,偶然SQL視圖返回超過255列? –

回答

1

所以我和同事一起看着這個難題。將這個帶有30個表連接的118行查詢翻譯爲Access查詢會很困難,而且性能仍然很差。

相反,我打破了巨大看法的部分,成爲單獨的小視圖。每個獨立的視圖將被加入一個訪問查詢中,這樣查詢的每個部分都可以被獨立過濾,並允許更小的結果集,從而提高整體性能。

+0

是否將這個龐大的查詢設置爲SQL Server中的視圖,並且您正在鏈接到該視圖?或者它是一個在鏈接表上運行的Access中的查詢對象?或者將一個Query對象設置爲在SQL Server上執行的傳遞查詢? – Brad

+0

這是一個巨大的SQL視圖,我正在鏈接到。現在它有17個小視圖。我正在研究如何以更快的速度加入他們。仍在努力。我希望能夠動態加入我需要的視圖,基於它們在列表中選擇的列(從字段列表框),但這可能有點複雜。我會到達那裏。 – missscripty