pras2007
Posting Yak Master
216 Posts |
Posted - 2007-11-14 : 00:38:10
|
Hello All,I have a user-defined function that been working for quite some time now, recently the Oracle team upgraded from Oracle 8i to Oracle 9i. The process that used to take about 10 minutes to run now takes about 45 minutes to run. Below is the user-defined function and the DTS that runs it. Does anyone know how I can rewrite this process to improve runtime? Also does anyone know if I needed to install Oracle 9i client to my SQL Server box, because I’m still using the Oracle 8i client to connect to the Oracle 9i db? Please advice. Thanks.-----------------------------------DECLARE @server varchar(50)DECLARE @dtRptDateDetail datetimeDECLARE @sqlString varchar(8000)SET @server='IGS_IL'SET @dtRptDateDetail=round(convert(float,Getdate()-1),0,1)SET @sqlString=dbo.usf_igs_sql_string(@server,@dtRptDateDetail)PRINT @dtRptDateDetailEXEC (@sqlString)--------------------------------- CREATE FUNCTION dbo.usf_IGS_SQL_STRING(@strIGS varchar(10), @dtRptDateDetail datetime) RETURNS varchar(5000)ASBEGINDECLARE @dtRptDateDetailPlusOne datetimeSET @dtRptDateDetailPlusOne=dateadd(d,1,@dtRptDateDetail)DECLARE @strSQL varchar(5000)SET @strSQL='INSERT INTO dbo.igs_staging2 (RL_TRACE, SITE_CODE, AA_STAFF, AA_TIME_STAMP, AA_TYPE, AA_LINK_ID, AA_DIGIT_TYPE, AA_DIGITS, AA_DNIS_DIGITS, AA_CALL_DURATION, AA_TALK_TIME, AA_HOLD_TIME, AA_APPL_ID, AA_AGRP_ID, AA_ACTIVITY, AA_LINE_INSTANCE_TEXT, AA_DIGIT_TYPE_TEXT, AA_NOTES_TEXT, TRANSACTION_CODE_NAME, STAFF_NAME, STAFF, SUPERVISOR, STAFF_TYPE, SUP_NAME, AA_REC_DISPOSITION, AA_LINE_INSTANCE) SELECT ''' + @strIGS + ''' RL_TRACE, * FROM openquery(' + @strIGS +',''SELECT VW_CFG_SYSTEM.SITE_CODE, VW_EVT_AGENT_ACTIVITY.AA_STAFF, VW_EVT_AGENT_ACTIVITY.AA_TIME_STAMP, VW_EVT_AGENT_ACTIVITY.AA_TYPE, VW_EVT_AGENT_ACTIVITY.AA_LINK_ID, VW_EVT_AGENT_ACTIVITY.AA_DIGIT_TYPE, VW_EVT_AGENT_ACTIVITY.AA_DIGITS, VW_EVT_AGENT_ACTIVITY.AA_DNIS_DIGITS, VW_EVT_AGENT_ACTIVITY.AA_CALL_DURATION, VW_EVT_AGENT_ACTIVITY.AA_TALK_TIME, VW_EVT_AGENT_ACTIVITY.AA_HOLD_TIME, VW_EVT_AGENT_ACTIVITY.AA_APPL_ID, VW_EVT_AGENT_ACTIVITY.AA_AGRP_ID, VW_EVT_AGENT_ACTIVITY.AA_ACTIVITY, VW_EVT_AGENT_ACTIVITY.AA_LINE_INSTANCE_TEXT, VW_EVT_AGENT_ACTIVITY.AA_DIGIT_TYPE_TEXT, VW_EVT_AGENT_ACTIVITY.AA_NOTES_TEXT, VW_CFG_TRANSACTION_CODE.TRANSACTION_CODE_NAME, VW_CFG_STAFF.STAFF_NAME, VW_CFG_STAFF.STAFF, VW_CFG_STAFF.SUPERVISOR, VW_CFG_STAFF_SUPV.STAFF_TYPE, VW_CFG_STAFF_SUPV.STAFF_NAME "SUP_NAME", VW_EVT_AGENT_ACTIVITY.AA_REC_DISPOSITION, VW_EVT_AGENT_ACTIVITY.AA_LINE_INSTANCEFROM IGS.VW_CFG_SYSTEM VW_CFG_SYSTEM, IGS.VW_EVT_AGENT_ACTIVITY VW_EVT_AGENT_ACTIVITY, IGS.VW_CFG_TRANSACTION_CODE VW_CFG_TRANSACTION_CODE, IGS.VW_CFG_STAFF VW_CFG_STAFF, IGS.VW_CFG_STAFF VW_CFG_STAFF_SUPVWHERE VW_CFG_SYSTEM.SITE = VW_EVT_AGENT_ACTIVITY.AA_SITE AND VW_EVT_AGENT_ACTIVITY.AA_SITE = VW_CFG_TRANSACTION_CODE.SITE (+) AND VW_EVT_AGENT_ACTIVITY.AA_DNIS_DIGITS = VW_CFG_TRANSACTION_CODE.TRANSACTION_CODE (+) AND VW_EVT_AGENT_ACTIVITY.AA_DNIS_VERSION = VW_CFG_TRANSACTION_CODE.TRANSACTION_CODE_VERSION (+) AND VW_EVT_AGENT_ACTIVITY.AA_SITE = VW_CFG_STAFF.SITE AND VW_EVT_AGENT_ACTIVITY.AA_STAFF = VW_CFG_STAFF.STAFF AND VW_EVT_AGENT_ACTIVITY.AA_STAFF_VERSION = VW_CFG_STAFF.STAFF_VERSION AND VW_CFG_STAFF.SITE = VW_CFG_STAFF_SUPV.SITE AND VW_CFG_STAFF.SUPERVISOR = VW_CFG_STAFF_SUPV.STAFF AND VW_CFG_STAFF.SUPERVISOR_VERSION = VW_CFG_STAFF_SUPV.STAFF_VERSION AND VW_EVT_AGENT_ACTIVITY.AA_TIME_STAMP >= TO_DATE(''''' + CONVERT(varchar(12),@dtRptDateDetail,101) + ''''',''''MM/DD/YYYY'''') AND VW_EVT_AGENT_ACTIVITY.AA_TIME_STAMP < TO_DATE(''''' + CONVERT(varchar(12),@dtRptDateDetailPlusOne,101) + ''''',''''MM/DD/YYYY'''') AND VW_CFG_STAFF_SUPV.STAFF_TYPE = 2'')'RETURN @strSQLEND |
|