在項(xiàng)目中,經(jīng)常會(huì)遇到一個(gè)數(shù)據(jù)庫(kù)訪問(wèn)另一個(gè)數(shù)據(jù)庫(kù),【CNVFERPDB】為服務(wù)器名,【CE3】為庫(kù)名
1 SELECT Dtl. * 2 FROM CNVFERPDB. CE3.ce3.ZTLE0125 Dtl 3 INNER JOIN CNVFERPDB.CE3.ce3.ZTLE0124 Mst 4 ON Dtl.RECVSUPPNO = Mst.RECVSUPPNO AND Dtl.MANDT = Mst.MANDT 5 WHERE Mst.MANDT = ' 100 ' and Dtl.BRANDCODE = ' MD '
上面的方式是通過(guò)服務(wù)器名和庫(kù)名直接訪問(wèn),這樣有多次連接另一個(gè)服務(wù)器,執(zhí)行速度會(huì)很慢
可以換做下面的形式,執(zhí)行速度將得到提升:
1 SELECT * 2 FROM OPENQUERY (CNVFERPDB 3 , 4 ' 5 SELECT Dtl.* 6 FROM CE3.ce3.ZTLE0125 Dtl 7 INNER JOIN CE3.ce3.ZTLE0124 Mst 8 ON Dtl.RECVSUPPNO = Mst.RECVSUPPNO AND Dtl.MANDT = Mst.MANDT 9 WHERE Mst.MANDT = '' 100 '' and Dtl.BRANDCODE= '' MD '' 10 ' 11 )
OPENQUERY ( linked_server ,'query' )
使用注意事項(xiàng):
linked_server?
表示鏈接服務(wù)器名稱的標(biāo)識(shí)符。
' query '
在鏈接服務(wù)器中執(zhí)行的查詢字符串。 該字符串的最大長(zhǎng)度為 8 KB。
補(bǔ)充
1 declare @Day VARCHAR ( 10 ) = CONVERT ( CHAR ( 8 ), DATEADD ( DAY , - 1 , GETDATE ()), 112 ) 2 3 -- set @Day='20140605' 4 5 IF EXISTS ( select * from AppLog where Dates = @Day ) 6 return 7 8 declare @sql VARCHAR ( 2000 ) = ' select * 9 INTO #temp 10 from openquery 11 ([CNSASPLOGDB01], 12 '' 13 select 14 A.ProgramId 15 , ''''' + @Day + ''''' AS Dates 16 ,COUNT(Duration) as Count 17 ,SUM(CAST(Duration AS DECIMAL(12,3)))/1000 AS SumTime 18 ,AVG(CAST(Duration AS DECIMAL(12,3)))/1000 as AvgTime 19 ,MAX(CAST(Duration AS DECIMAL(12,3)))/1000 as MaxTime 20 from 21 ( 22 select * from LogCSLK01.dbo.AppLog_ ' + @Day + ' with(nolock) 23 union 24 select * from LogCSLK02.dbo.AppLog_ ' + @Day + ' with(nolock) 25 union 26 select * from LogCSLK03.dbo.AppLog_ ' + @Day + ' with(nolock) 27 ) A 28 group by A.ProgramId 29 '' 30 ) 31 32 insert into AppLog 33 select * 34 from #temp 35 36 drop table #temp 37 ' 38 -- print @sql 39 40 exec ( @sql )
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
