从MS SQL Server 2012查询链接的Oracle数据库时性能下降

时间:2015-11-04 18:16:49

标签: sql sql-server sql-server-2012

更新

我注意到,当我从这个表中做一个简单的视图时,结果会很快恢复,但是一旦我做出WHERE子句限制,它就会慢下来。

我正在运行一个运行良好的查询,大约1.5分钟。然而,当我从链接的Oracle数据库中包含一个列时,查询需要19分钟。性能会像这样正常退化吗?

我也不熟悉应该从哪里开始解决此类问题,并且是新的链接服务器。

谢谢,

更新

以下是创建Oracle链接服务器数据库视图的代码

 SELECT Patient
,Account
,MR#
,Diagnosis
,ICD9
,TransferEMTALAFormsCmpltd
,Disposition
,AdmittingDxTranscribed
,AxisIPrimaryDx
,AgeDOB
,sex
,age
,EDRecordSentToEDM
,TimeRNSignature
,timemdsignature
,RNSgntr
,TriageByNameEntered as 'Triage_End'
,TriageStartTime as 'Triage_Start'
,AddedToAdmissionsTrack
,StatusAdmitConfirmed
,SUBSTRING(statusadmitconfirmed,1,4)+'-'+SUBSTRING(statusadmitconfirmed,7,2)+'-'+SUBSTRING(statusadmitconfirmed,1,4)+' '+SUBSTRING(statusadmitconfirmed,9,2)+':'+SUBSTRING(statusadmitconfirmed,11,2)+':00.000' as 'Admit_Cnrfm_String'
,AdmittingMD
,AreaOfCare
,EDMD
,EDMDID
,Specialty
,AccessProceduresED
,MDSgntr
,Arrival
,ArrivalED
,ChiefComplaint
,TransferringFacility
,ReferMD
,PrivateName

FROM [BMH-EDIS-CL]..[WELLUSER].[Patient_Chart] a 
LEFT OUTER JOIN [BMH-EDIS-CL]..[WELLUSER].[Patient_Diagnoses] b
ON a.Master_Rec_Id=b.Master_Rec_Id 
    AND a.Slave_Rec_Id=b.Slave_Rec_Id



WHERE TriageStartTime > '201299999999'

从这个视图中获取单个结果需要一些时间。当我尝试将EDMD添加到我正在处理的查询中时,这就是导致大幅减速的原因,我还没有能够查看评论中提到的物化视图。

0 个答案:

没有答案