2013-10-03 24 views
2

我有一種情況,即鏈接服務器與訪問數據庫崩潰我的SQL服務器。OPENDATASOURCE而不是鏈接服務器

此處崩潰意味着添加鏈接服務器會導致使用該提供程序的所有其他鏈接服務器停止工作。對這些鏈接服務器的任何查詢都會掛起並且無法完成。這種情況一直存在,直到服務器重新啓動。

但是,當我使用OPENDATASOURCE連接到相同的數據源時,我沒有這個問題。

爲什麼一個會工作而另一個會崩潰?

我使用的提供商是Microsoft.ACE.OLEDB.12.0。我有動態參數並允許進程啓用。下面

select 
* 
from OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0', 
    'Data Source=\\networkPath\Reporting.accdb')...MyAccessTable 
+1

當你說「墜毀」你究竟是什麼意思? –

+0

添加鏈接服務器會導致使用該提供程序的所有其他鏈接服務器停止工作。對這些鏈接服務器的任何查詢都會掛起並且無法完成。這種情況一直存在,直到服務器重新啓動。 – FistOfFury

回答

-1

的SQL Server實例查詢可能崩潰,因爲SQLSERV.EXE調用堆棧得到了由OLEDB對象或因爲數據訪問庫的配置不正確填寫。

試試這個:

  1. 確保選中允許InProcess選項您提供商
  2. 開始SQLSERV.EXE一個更大的調用棧激活使用-g 512個啓動參數

Activate Allow inprocess

+0

最大服務器內存爲10240 MB,每個查詢的最小內存大小爲1024.如上所述,Allow inprocess已啓用。 – FistOfFury

+0

您是否嘗試過使用-g 512作爲啓動參數?最大服務器內存不會影響調用堆棧大小。所有OLE對象都分配在調用堆棧中,而不是在緩衝池中。 – PollusB