Originariamente inviato da sandroacchiardi
la select è pressapoco cosi
select righe where vedi = 1 and data < oggi
in questo caso la situazione non è buona, in quanto immagino che lo "stock" di righe (con data precedente ad oggi) sia di gran lunga maggioritaria.

Ricorda che l'rdbms non è "magia", è solo "comodità".

Se hai 10.000 righe, e ne devi ritornare 9.998, questa query sarà lenta qualsiasi metodo ti possa venire in mente.

L'unica cosa che puoi fare (o meglio provare) è un covering index se non ti servono tutte le colonne (o comunque te ne bastano poche).

Se invece ti serve proprio un "select TUTTO tranne pochissimo" => non c'è molto da fare.

A meno che, in realtà, non "storicizzi" i dati ed utilizzo solo i delta [se sono statistiche, ad esempio], appoggiandoti ad una tabella riassuntiva