I completely agree with Joseph.

A database link is a great way to combine data from different hardware and memory structures that wouldn't normally live together. A single database connection can bring back data from a number of databases, even a SQL Server database (via a gateway).

Joins across a db_link will not perform well if the joining tables have many rows so I use them sparingly. And then there's the overhead of making the connection to consider also.