• Id agree - newid() is a performance killer.

    its much faster to do something like this...

    DECLARE @RandomNumber float

    DECLARE @RandomInteger int

    DECLARE @MaxValue int

    DECLARE @MinValue int

    SELECT @MinValue = MIN(Id),

    @MaxValue = MAX(Id)

    FROM dbo.SomeTable

    SELECT @RandomNumber = RAND()

    SELECT @RandomInteger = ((@MaxValue + 1) - @MinValue) * @RandomNumber + @MinValue

    SELECT TOP (1) *

    FROM dbo.SomeTable

    WHERE Id >= @RandomInteger