Large Database Support

Breeders Assistant supports databases with a maximum of 1,000,000 records of each type (Professional/Commercial Edition; Personal Edition limited to 75,000).

BA runs with the entire database held in memory. This may seem surprising but it makes many operations, e.g. inbreeding calculations, incredibly fast. If you consider the potential memory required to store all the different fields - e.g., consider that most variants of BA have animal records with over 100 fields each, many of which are text fields that can be up to 64Kbytes - this obviously could use a vast amount of memory. In practice the memory actually used is a lot less than it could be, due to advanced proprietary compression techniques employed when a database is held both in memory and on disk. If you plan to operate BA with a large database, you should ensure that your computer has sufficient memory and processor power. This page will help you check that your system specification is up to the job.

NOTE: The statistics shown on this page were all taken using Breeders Assistant for Dogs, version 4.60. Similar performance should be expected for the other variants. All tests were carried out using an Athlon XP1800 processor running Windows XP Professional.


Actual Memory Usage


Actual Memory Usage Chart - click to enlarge

The following table shows actual memory usage for the worst case operations on a 'typical' data set with varying numbers of animal records. The actual memory used will vary from one database to another, depending on the extent to which the various database fields are used and the size of the data in them. Use these figures as a rough guide.

The table shows three series of figures:
 Import New is the max. memory usage as a result of importing the given no. of animal records (from a CSV file) into a new (empty) database;
 Import Merge is the same, but followed by the re-importation of the same data set; this tests out a merge on every record in the database, an expensive operation in terms of both CPU time and memory overhead.
 System Memory is the amount of system memory (physical memory) present.

#Records 10,000 50,000 100,000 200,000 500,000 1,000,000
Import New 52Mb 74Mb 87Mb 112Mb 211Mb 369Mb
Import Merge 54Mb 84Mb 96Mb 126Mb 244Mb 421Mb
System Memory 64Mb 128Mb 128Mb 256Mb 512Mb 512Mb

Recommended System Memory


Recommended System Memory Chart - click to enlarge

The following table shows recommended system memory to support 'typical' data sets with varying numbers of animal records. If your usage is 'non-standard' then you might need more or less memory than quoted - the actual memory used will vary from one database to another, depending on the extent to which the various database fields are used and the size of the data in them. Use these figures as a rough guide.

The table shows two series of figures:
 Minimum is the minimum system memory required to support a database with the given number of animal records;
 Recommended is the recommended amount of memory; operating with the minimum memory size can slow the program down.

#Records 10,000 50,000 100,000 200,000 500,000 1,000,000
Minimum 64Mb 128Mb 128Mb 256Mb 256Mb 512Mb
Recommended 128Mb 128Mb 256Mb 256Mb 512Mb 1Gb

Size of Database Files


Database File Size Chart - click to enlarge

The following table shows disk space requirements for a 'typical' database file with varying numbers of animal records. The actual disk space used will vary from one database to another, depending on the extent to which the various database fields are used and the size of the data in them. Use these figures as a rough guide.

#Records 10,000 50,000 100,000 200,000 500,000 1,000,000
Database File Size 3Mb 10Mb 18Mb 35Mb 86Mb 171Mb

NOTE: You will need more disk space than this to actually use BA - these figures are purely for the database files themselves. Typically you will need an additional 50Mb or so for the basic installation files (program files etc.), plus as much space again as occupied by the database files. BA uses temporary disk files for certain operations such as importing.


CPU Usage


CPU Usage Chart - click to enlarge

For most operations, BA uses little CPU time except during the opening and closing of a database. However, two operations of note are expensive in CPU time: inbreeding calculations and importing.

BA calculates inbreeding very quickly when compared to most programs, but this can still be a very CPU intensive task when computing it to great depths for a large database - click here for further information.

The following table shows CPU time usage for the worst case importing operations on a 'typical' data set with varying numbers of animal records. The actual CPU time used will vary from one database to another, depending on the extent to which the various database fields are used and the size of the data in them. And needless to say, it will depend greatly on the speed of your computer. The following times were measured using an Athlon XP1800 system (1.4Ghz) - by no means top of the range by todays standards.

The table shows two sets of timings:
 Import New is the CPU time required to import the given no. of animal records (from a CSV file) into a new (empty) database;
 Import Merge is the CPU time required to re-import of the same data set into a database containing that data; this tests out a merge on every record in the database, an expensive operation in terms of both CPU time and memory overhead.

#Records 10,000 50,000 100,000 200,000 500,000 1,000,000
Import New 0:50s 4:27s 9:27s 21:48s 1:23:45s 3:19:09s
Import Merge 1:15s 5:25s 11:45s 31:18s 2:04:23s 5:01:38s

See Also:

  Inbreeding
  Editions of Breeders Assistant
  Data Conversion (Importing)
  System Requirements