Without more details the best I can say is that you need to store something that you can search on.
If it's a find that doesn't change then you could do the find once, create a new field and store a Marker, e.g. 1 in that new field in all found records, then next time you only need to search for that same marker.
Searching on indexed fields is very fast, searching on calculation fields is slow.
Searching on related indexed fields is also fast, so don't worry about searching through a relationship.
Thanks for the Reply!!
In my case user will enter the search data and then I need to find accordingly. some calculation fields also include in the search because of this calculation fields search is taking time.
To avoid this I made a relationships so that I can find on original tables it is better than previous one but not upto my expectations.
Interesting, are all fields indexed? Are you doing a find through "sorted" relationships? Could there be another reason?
A find on an indexed fields should be pretty instant.
Are you NOT storing the result of calculation? Storing the result will definitely improve the performance of search rather than unstored calculations