Hi
If you always query data equal to all three columns you can add a computed column as BINARY_CHECKSUM over all three columns. Put an index only on this column and use it in your SELECT statements combined with your usual columns as:
DECLARE
@checksum INT
,@fwdDate DATETIME
,@effDate DATETIME
,@curve INT;
SELECT
@fwdDate = '01/01/2010'
,@effDate = '11/11/2009'
,@curve = 1;
SELECT @checksum = BINARY_CHECKSUM(@fwdDate, @effDate, @curve);
SELECT fValue
FROM yourTable
-- query the checkSum column
WHERE checkSumColumn = @checksum
AND iCurve = @curve
AND dtFwdDate=@fwdDate
AND dtEffDate=@effDate;
Consider, this only works for equality queries over all columns within the index and ensure that you specify all values of your query in correct data type. If you provide your date values as '01/01/2009', the checksum would be calculated as VARCHAR and you will never get a result.
Greets
Flo