I tried a clustered index....didn't seem to help....
DECLARE @RecordID bigint
DECLARE @Hi varchar(2)
DECLARE @Bye varchar(2)
DROP TABLE Central.DBO.TempRecordCompInfo
CREATE TABLE Central.DBO.TempRecordCompInfo (
[RECORD_ID] [bigint] NOT NULL ,
[Hi] [varchar] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Bye] [varchar] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
ALTER TABLE Central.DBO.TempRecordCompInfo WITH NOCHECK ADD
CONSTRAINT [PK_TempRecordCompInfo] PRIMARY KEY CLUSTERED
(
[RECORD_ID]
) ON [PRIMARY]
INSERT INTO Central.DBO.TempRecordCompInfo
SELECT RECORD_ID, null, null
FROM Central.DBO.RecordsToProcess
SET @RecordID = (SELECT Min(RECORD_ID) FROM Central.DBO.RecordsToProcess)
WHILE @RecordID IS NOT NULL
BEGIN
SELECT Top 1 @Hi = Hi,
@Bye = Bye
FROM Tables.DBO.Process a, Central.DBO.RecordsToProcess b
WHERE a.BUSINESS IN ('GOOD', 'ZZZZ')
AND a.LINE IN (b.LINE, 'ZZZ')
AND a.CUSTOMER IN (b.CUSTOMER, 'ZZ')
AND a.CUSTOMER_IND IN (b.CUSTOMER_IND, '99')
AND a.STATE IN (b.STATE, 'ZZZ')
AND a.CRIT_CD = b.CRIT_CD
AND a.DIS_CD IN (b.DIS_CD, '99')
AND a.NBR1 <= My1
AND a.NBR2 <= My2
AND a.NBR3 <= My3
AND a.NBR4 <= My4
AND a.BEGIN_DT <= '07/25/2005'
AND a.END_DT >= '07/25/2005'
ORDER BY
BUSINESS,
LINE,
CUSTOMER,
CUSTOMER_IND,
STATE,
CRIT_CD,
DIS_CD,
NBR1 DESC,
NBR2 DESC,
NBR3 DESC,
NBR4 DESC
UPDATE Central.DBO.TempRecordCompInfo
SET Hi = @Hi,
Bye = @Bye
WHERE RECORD_ID = @RecordID
SET @RecordID = (SELECT Min(RECORD_ID) FROM Central.DBO.RecordsToProcess WHERE RECORD_ID > @RecordID)
END -- WHILE