Una técnica que uso para consultar las filas MÁS RECIENTES en tablas muy grandes (más de 100 millones o más de 1 000 millones de filas) está limitando la consulta a "leer" solo el porcentaje "N" más reciente de FILAS RECIENTES. Se trata de aplicaciones del mundo real, por ejemplo, hago esto para datos meteorológicos recientes no históricos, o búsquedas recientes de noticias o datos de puntos de datos de ubicación GPS recientes.
Esta es una gran mejora en el rendimiento si sabe con certeza que sus filas están en el TOP 5% más reciente de la tabla, por ejemplo. De tal manera que incluso si hay índices en las Tablas, limita aún más las posibilidades a solo el 5% de las filas en las tablas que tienen más de 100 millones o 1+ billones de filas. Este es especialmente el caso cuando los datos antiguos requerirán lecturas de disco físico y no solo lógica en memoria lecturas de .
Esto es mucho más eficiente que SELECT TOP | POR CIENTO | LIMIT ya que no selecciona las filas, sino que simplemente limita la parte de los datos a buscar.
DECLARE @RowIdTableA BIGINT
DECLARE @RowIdTableB BIGINT
DECLARE @TopPercent FLOAT
-- Given that there is an Sequential Identity Column
-- Limit query to only rows in the most recent TOP 5% of rows
SET @TopPercent = .05
SELECT @RowIdTableA = (MAX(TableAId) - (MAX(TableAId) * @TopPercent)) FROM TableA
SELECT @RowIdTableB = (MAX(TableBId) - (MAX(TableBId) * @TopPercent)) FROM TableB
SELECT *
FROM TableA a
INNER JOIN TableB b ON a.KeyId = b.KeyId
WHERE a.Id > @RowIdTableA AND b.Id > @RowIdTableB AND
a.SomeOtherCriteria = 'Whatever'