OK, biggest problem I see here is that date fields contain time as well as date, namely DD-MON-YYYY HH24:MI:SS and all you want is date. That being the case a function based index as: create index <pick_a_name> on <table_name> (trunc(<date_column>)); Would do the job since the date field is truncated all the time, so A query of the type: select * from <table_name> where trunc(d<date_field>) = trunc(sysdate-1); Would suffice. OH, BTW 5 Billion rows of indexed data is quite douable. I've done 100billion rows, no problems. Dick Goulet Senior Oracle DBA/NA Team Lead PAREXEL International ________________________________ From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of dd yakkali Sent: Monday, August 02, 2010 7:36 PM To: oracle-l@xxxxxxxxxxxxx Subject: oracle equivalent of teradata's sparse index hello dbas, Some one asked me that teradata can create index for only a subset of rows of a table. We have a huge table (5 billion) which is for few months of data but the data for most part is accessed for yesterday. So the question is: is there any way to create index only for yesterday. Google did not come up wth any hits. thanks Deen