1. There is no magic number for this. Partitioning is just a tool that can be used to help load bulk data, query bulk data, manage bulk data, or a number of other things, but it's not a solution for all problems.
2. How many rows is it returning? To find out why it takes this amount of time you need to do some analysis of the waits involved, ad for that you need to read up on event 10046 tracing. a google search ought to suffice, or look at http://asktom.oracle.com
3. You need to disgnose (ie. identify and measure) exactly what the problem is before dabbling with partitioning or any other remedy.