1. Depends. I've partitioned tables with only 100K rows, and I've not partitioned tables with 200M rows. It really depends on how you are going to access the data.

To me, if a table has transactional data that can be grouped by date, it is the ideal candidate for partitioning.

Test your queries against a properly indexed non-partitioned table vs. a properly indexed partitioned table. Partitioning is not the silver bullet for "large" tables.

2. none.

3. Indexes are the biggest pain with partitioned tables. If you move a partition or drop a partition, some or all of your index will become UNUSABLE and you will have to rebuild.