• Sorry for dragging the discussion. I setup a small test below.

    CREATE TABLE DUMMY_TABLE

    (

    ID_COL INT,

    DESC_COL CHAR(8000),

    )

    GO

    INSERT INTO DUMMY_TABLE

    VALUES

    (1, REPLICATE('X',8000)),

    (2, REPLICATE('X',8000)),

    (3, REPLICATE('X',8000)),

    (4, REPLICATE('X',8000)),

    (5, REPLICATE('X',8000)),

    (6, REPLICATE('X',8000)),

    (7, REPLICATE('X',8000)),

    (8, REPLICATE('X',8000)),

    (9, REPLICATE('X',8000))

    GO

    CREATE CLUSTERED INDEX IX_DUMMY_TABLE ON DBO.DUMMY_TABLE

    (

    ID_COL

    )

    GO

    SET STATISTICS IO ON

    -- Query 1

    SELECT * FROM DUMMY_TABLE WHERE ID_COL > 1 --AND ID_COL < 9

    ------------------------

    -- Query 2

    SELECT * FROM DUMMY_TABLE

    ------------------------

    -- Query 3

    SELECT * FROM DUMMY_TABLE WHERE ID_COL = 1 --AND ID_COL < 9

    GO

    DROP TABLE DUMMY_TABLE

    SET STATISTICS IO OFF

    Scott, you were right. Execution plans (actual/estimate) show SEEK operation for 1st & 3rd queries. It’s quite surprising to me but I have to accept the fact, it’s SEEK operation.

    BUT when I see the IO statistics, I see no difference between first two queries. So the SEEK predicate on in first query is fake IMO.

    (9 row(s) affected)

    (8 row(s) affected)

    Table 'DUMMY_TABLE'. Scan count 1, logical reads 11, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

    (9 row(s) affected)

    Table 'DUMMY_TABLE'. Scan count 1, logical reads 11, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

    (1 row(s) affected)

    Table 'DUMMY_TABLE'. Scan count 1, logical reads 3, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.