有一張報表需求會同時用到sql 2000和informix 的table.
採用linked server的方式,分散式查詢最好要組好完成sql語句,再送到遠端伺服器進行查詢後傳回結果.
之前使用者為了方便,把openquery的語法建成view, 像這樣
create view vTest as
select * from openquery (linkedsvr, 'select * from remoteTable")
想當然耳, 雖然查詢時 select * from vTest where condiditon.... 有指定條件,
但以openquery 來說, 可是會先把remote table所有的資料下傳回sql server後再進行處理的.
造成整個resource都被吃光了.
所以改寫成以sp_executesql的方法組出sql字串送到 remote db去查詢完成後送回結果
declare @sql as nvarchar(4000)
set @sql = N'select * into #tmpTest from openquery (linkedsvr, ''select * from remoteTabl where condition'') ;
select * from #tmpTest inner join tableInSQLServer ......'
exec sp_executesql @sql
這樣就可以利用tmp table, 一次包在同一個transaction與sql server 的table做join查詢了
雖然很不方便 ,但拿sql server當跳板做事總要犧牲一點吧.
2010年1月5日 星期二
訂閱:
張貼留言 (Atom)
IIS 網站無法下載中文檔名檔案因為取消高位元字元
網址+中文檔案名稱方式下載檔案顯示 404 - 找不到檔案或目錄。 但英數字檔案名稱則可下載。 因為設定GCB IIS,其中1項 將高位元字元預設取消勾選了。 27 TWGCB-04-014-0028 要求篩選與其他限制模組 允許高位元字元 這項原則設定決定查詢...
-
一個老舊的aspx web form專案,調了一些功能建置成功,但進行部署時顯示以下錯誤。 在應用程式層級之外使用註冊為 allowDefinition='MachineToApplication' 的區段發生錯誤。錯誤的原因可能是虛擬目錄尚未在 IIS 中設定為...
-
Row.Cells[2].Text == "abc" ? "ok" : "not ok" ; 或加入Microsoft. VisualBasic 參考使用 vb namespace using Microsoft...
-
freeFTPd是套免費的SFTP SERVER支援22 port SFTP及21port FTP,一般找到免費的都不支援SFTP只有技援FTPS。 之前一直有個困擾在幾台主機安裝後,有幾台重開機後,SFTP SERVER必須手動去啟動,一直以來老是搞不懂為什麼,今天看到一篇文...
沒有留言:
張貼留言