net.sf.jaxme.sqls.db2
Interface TableSpace

All Known Implementing Classes:
DB2SQLFactoryImpl.PredefinedTableSpace, TableSpaceImpl

public interface TableSpace

Interface of a DB2 TableSpace. An object of this kind is used to create a CREATE TABLESPACE ... statement.

A TableSpace can be associated to a BufferPool. If it is, it inherits certain settings from the BufferPool, in particular the pageSize.

A tablespace needs to know where data is stored physically. DB2 distinguishes between two possible data locations: System managed (Files handled by the operating system) and Database managed (Files handled by the database or Devices). In the latter case the database will preallocate space for the files or devices, giving a slightly faster operation. On the other hand, database managed files cannot grow automatically.

A tablespaces data location is called container. Any tablespace must have at least one container. Note, that one tablespace cannot have both system managed containers and database managed containers. If the first container is system managed, then all containers are, and vice versa.

Author:
Jochen Wiedmann

Nested Class Summary
static interface TableSpace.Container
          Interface of a TableSpace Container.
static interface TableSpace.DatabaseManagedContainer
          Interface of a database managed container.
static interface TableSpace.Name
           
static interface TableSpace.SystemManagedContainer
          Interface of a system managed container, aka operating system file.
static class TableSpace.Type
          A DB2 TableSpace type.
 
Method Summary
 BufferPool getBufferPool()
          Returns the BufferPool used by this TableSpace.
 java.util.Iterator getContainers()
          Returns an Iterator to the table spaces containers.
 java.lang.Long getExtentSize()
          Returns the number of pageSize pages that will be written to a container before skipping to the next container.
 TableSpace.Name getName()
          Returns the tablespace name.
 java.lang.Number getOverhead()
          Returns the I/O controller overhead and disk seek and latency time, in milliseconds.
 PageSize getPageSize()
          Returns the tablespaces page size.
 java.lang.Long getPrefetchSize()
          Returns the number of pageSize pages that will be read from the tablespace when data prefetching is being performed.
 DB2SQLFactory getSQLFactory()
          Returns the SQLFactory that created this TableSpace object.
 java.lang.Number getTransferRate()
          Returns the transfer rate, which is defined as the time to read one page into memory, in milliseconds.
 TableSpace.Type getType()
          Returns the tablespace type.
 java.lang.Boolean hasDroppedTableRecovery()
          Returns whether dropped tables in the specified tablespace may be recovered using the RECOVER TABLE ON option of the ROLLFORWARD command.
 boolean isPredefined()
          Returns whether this TableSpace is predefined by the system.
 TableSpace.Container newDatabaseManagedContainerInDevice(java.lang.String pDevice, long pNumPages)
          Creates a new database managed container with the given raw operating system device and the given number of pages.
 TableSpace.Container newDatabaseManagedContainerInFile(java.lang.String pFile, long pNumPages)
          Creates a new database managed container with the given file or device and the given number of pages.
 TableSpace.Container newSystemManagedContainer(java.lang.String pFile)
          Creates a new system managed container with the given file.
 void setBufferPool(BufferPool pBufferPool)
          Sets the BufferPool used by this TableSpace.
 void setDroppedTableRecovery(java.lang.Boolean pRecoverable)
          Sets whether dropped tables in the specified tablespace may be recovered using the RECOVER TABLE ON option of the ROLLFORWARD command.
 void setExtentSize(java.lang.Long pSize)
          Sets the number of pageSize pages that will be written to a container before skipping to the next container.
 void setOverhead(java.lang.Number pOverhead)
          Sets the I/O controller overhead and disk seek and latency time, in milliseconds.
 void setPageSize(PageSize pSize)
          Sets the tablespaces page size.
 void setPrefetchSize(java.lang.Long pSize)
          Sets the number of pageSize pages that will be read from the tablespace when data prefetching is being performed.
 void setTransferRate(java.lang.Number pNumber)
          Sets the transfer rate, which is defined as the time to read one page into memory, in milliseconds.
 

Method Detail

getSQLFactory

public DB2SQLFactory getSQLFactory()

Returns the SQLFactory that created this TableSpace object.


getName

public TableSpace.Name getName()

Returns the tablespace name. Tablespace names must be unique in the database.


getType

public TableSpace.Type getType()

Returns the tablespace type.


getPageSize

public PageSize getPageSize()

Returns the tablespaces page size. If the TableSpace has an associated BufferPool, returns the BufferPool's page size. Otherwise returns the page size configured via setPageSize(PageSize).


setPageSize

public void setPageSize(PageSize pSize)

Sets the tablespaces page size. This value will be ignored, if the TableSpace has an associated BufferPool.


getExtentSize

public java.lang.Long getExtentSize()

Returns the number of pageSize pages that will be written to a container before skipping to the next container. The database manager cycles repeatedly through the containers as data is stored. Defaults to null, in which case the DB2 configuration parameter DFT_EXTENT_SZ applies.


setExtentSize

public void setExtentSize(java.lang.Long pSize)

Sets the number of pageSize pages that will be written to a container before skipping to the next container. The database manager cycles repeatedly through the containers as data is stored. Defaults to null, in which case the DB2 configuration parameter DFT_EXTENT_SZ applies.


getPrefetchSize

public java.lang.Long getPrefetchSize()

Returns the number of pageSize pages that will be read from the tablespace when data prefetching is being performed. Prefetching reads in data needed by a query prior to it being referenced by the query, so that the query need not wait for I/O to be performed. Defaults to null, in which case the DB2 configuration parameter DFT_PREFETCH_SZ applies.


setPrefetchSize

public void setPrefetchSize(java.lang.Long pSize)

Sets the number of pageSize pages that will be read from the tablespace when data prefetching is being performed. Prefetching reads in data needed by a query prior to it being referenced by the query, so that the query need not wait for I/O to be performed. Defaults to null, in which case the DB2 configuration parameter DFT_PREFETCH_SZ applies.


getOverhead

public java.lang.Number getOverhead()

Returns the I/O controller overhead and disk seek and latency time, in milliseconds. The number should be an average for all containers that belong to the tablespace, if not the same for all containers. This value is used to determine the cost of I/O during query optimization. Defaults to null, in which case the DB2 default (24.1) applies.


setOverhead

public void setOverhead(java.lang.Number pOverhead)

Sets the I/O controller overhead and disk seek and latency time, in milliseconds. The number should be an average for all containers that belong to the tablespace, if not the same for all containers. This value is used to determine the cost of I/O during query optimization. Defaults to null, in which case the DB2 default (24.1) applies.


getTransferRate

public java.lang.Number getTransferRate()

Returns the transfer rate, which is defined as the time to read one page into memory, in milliseconds. The number shouldbe an average for all containers that belong to the tablespace, if not the same for all containers. This value is used to determine the cost of I/O during query optimization. Defaults to null, in which case the DB2 default (0.9) applies.


setTransferRate

public void setTransferRate(java.lang.Number pNumber)

Sets the transfer rate, which is defined as the time to read one page into memory, in milliseconds. The number shouldbe an average for all containers that belong to the tablespace, if not the same for all containers. This value is used to determine the cost of I/O during query optimization. Defaults to null, in which case the DB2 default (0.9) applies.


hasDroppedTableRecovery

public java.lang.Boolean hasDroppedTableRecovery()

Returns whether dropped tables in the specified tablespace may be recovered using the RECOVER TABLE ON option of the ROLLFORWARD command. This clause can only be specified for a TableSpace.Type.REGULAR tablespace (SQLSTATE 42613). For more information on recovering dropped tables, refer to the Administration Guide. Defaults to null, in which case the DB2 default applies.


setDroppedTableRecovery

public void setDroppedTableRecovery(java.lang.Boolean pRecoverable)

Sets whether dropped tables in the specified tablespace may be recovered using the RECOVER TABLE ON option of the ROLLFORWARD command. This clause can only be specified for a TableSpace.Type.REGULAR tablespace (SQLSTATE 42613). For more information on recovering dropped tables, refer to the Administration Guide. Defaults to null, in which case the DB2 default applies.


newSystemManagedContainer

public TableSpace.Container newSystemManagedContainer(java.lang.String pFile)

Creates a new system managed container with the given file.


newDatabaseManagedContainerInFile

public TableSpace.Container newDatabaseManagedContainerInFile(java.lang.String pFile,
                                                              long pNumPages)

Creates a new database managed container with the given file or device and the given number of pages.


newDatabaseManagedContainerInDevice

public TableSpace.Container newDatabaseManagedContainerInDevice(java.lang.String pDevice,
                                                                long pNumPages)

Creates a new database managed container with the given raw operating system device and the given number of pages.


getContainers

public java.util.Iterator getContainers()

Returns an Iterator to the table spaces containers. Any element in the Iterator is an instance of TableSpace.Container, which was created using newSystemManagedContainer(String), newDatabaseManagedContainerInFile(String, long), or newDatabaseManagedContainerInDevice(String, long).


setBufferPool

public void setBufferPool(BufferPool pBufferPool)

Sets the BufferPool used by this TableSpace.


getBufferPool

public BufferPool getBufferPool()

Returns the BufferPool used by this TableSpace.


isPredefined

public boolean isPredefined()

Returns whether this TableSpace is predefined by the system.