• 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