ca.sqlpower.architect.profile
Class RemoteDatabaseProfileCreator

java.lang.Object
  extended by ca.sqlpower.architect.profile.AbstractTableProfileCreator
      extended by ca.sqlpower.architect.profile.RemoteDatabaseProfileCreator
All Implemented Interfaces:
TableProfileCreator

public class RemoteDatabaseProfileCreator
extends AbstractTableProfileCreator

A profile creator implementation that makes the RDBMS do all the hard work. This profiler is best used when the database is separated from the local JVM by a slow network, since only the results of the profile are transmitted over the network. This profile creator is a poor choice when the database table being profiled is larger than the remote database's available work memory, since the SQL queries it issues require several full passes over the table, as well as several partial sorts of the table.

Since the profiling is done by asking the remote database to aggregate the data, some aggregates will not always be available on all data types. For example, if the remote database is PostgreSQL, the average date of a date column will be calculated; if the remote database is Oracle, the average date will not be calculated. This class looks for the configuration of which aggregate functions work with which data types in the SPDataSourceType of the given SQLTable's data source. See createProfileFunctions(SPDataSourceType) for details.

For a profiler better suited for use on large tables, see LocalReservoirProfileCreator.


Constructor Summary
RemoteDatabaseProfileCreator(ProfileSettings settings)
           
 
Method Summary
protected  void doColumnProfile(ColumnProfileResult cpr, ca.sqlpower.util.MonitorableImpl pm)
          Performs profiling at the column level by issuing a SELECT statement against the column referenced by cpr.
 boolean doProfileImpl(TableProfileResult tpr)
           
 java.lang.String toString()
           
 
Methods inherited from class ca.sqlpower.architect.profile.AbstractTableProfileCreator
doProfile
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RemoteDatabaseProfileCreator

public RemoteDatabaseProfileCreator(ProfileSettings settings)
Method Detail

doProfileImpl

public boolean doProfileImpl(TableProfileResult tpr)
Specified by:
doProfileImpl in class AbstractTableProfileCreator

doColumnProfile

protected void doColumnProfile(ColumnProfileResult cpr,
                               ca.sqlpower.util.MonitorableImpl pm)
                        throws java.sql.SQLException,
                               ArchitectException
Performs profiling at the column level by issuing a SELECT statement against the column referenced by cpr.

Parameters:
cpr - The profile result to populate
pm - The progress monitor. This progress monitor is only used for checking if the operation is canceled; it is not updated with progress information.
Throws:
java.sql.SQLException
ArchitectException

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object


Copyright © 2003-2007 SQL Power Group Inc. www.sqlpower.ca