Open main menu

Gramps β

Changes

Tips for large databases

1,810 bytes added, 00:55, 19 July 2025
no edit summary
{{man tip|The advice on this page was for older versions of Gramps so may not work for you. Please update as needed.}}{{stub}}<!--check accuracy / Incorporate "Import tested with the GRANDMA Mennonite database of 1.4 million people. by user on reddit!! https://www.reddit.com/r/gramps/comments/dzevcl/database_size_limit_for_gramps/fb6hdbj/ " --> Large family tree data files, what to do, and what not to do.
==Loading the file==
[[Image:EditPreferencesGeneral226.png|thumb|General tab of Edit->Preferences dialog box]]
For small files, you can work on GEDCOM or GRAMPS XML format. This works great.
However, these formats are completely loaded in your computer memory so, for larger files, this becomes slow and might bring your computer to a standstill.
Therefore===BSDDB backend==={{man note|Should work for BSDDB versions of Gramps version 5.1.x and earlier|}}Initial import of a large (100, 000+) database from either Gramps XML formats or GEDCOM can take a few hours. You will need to adjust the number of allowable locks. For 140,000 people you should only handle large files by using the GRAMPS GRDB format. You use: * ''max_locks'' 300000* ''max_objects'' 300000 The easiest way to do this by creating is to:# create a new GRDB Family Tree# exit Gramps# add a '''<code>DB_CONFIG</code>''' file and to the database directory before importing (see '''<code>gramps -l</code>''' output for the large directory of a specific family tree.) Contents of this DB_CONFIG file into it. This can take a long time, so do it should be: #may want to fiddle with cachesize also #set_cachesize 0 200000000 2 set_lk_max_locks 300000 set_lk_max_objects 300000 ===SQLite backend=== Insert following line after the connect statement at line 103 in the evenings! If you [https://github.com/gramps-project/gramps/blob/maintenance/gramps52/gramps/plugins/db/dbapi/sqlite.py '''enable database transactions'gramps/plugins/db/dbapi/sqlite.py'' ] file.  self.__connection.execute("PRAGMA cache_size = -50000") A positive value sets the size in bytes. A negative value sets the size in pages. Edit->PreferencesThe size of a typical page is 4096 bytes. The default value is ->General menu tab, the importing 2000 which means 2000 pages of data will then be much faster4096 bytes each.
Also if you have a file that large it might be prudent to break up file into smaller pieces (i.e. Maternal & Paternal lines in different files, if they are not interrelated) so you only have to use a smaller file.<br clear="all">{{-}}
== Default view: bookmarks and active person ==
As there are many people, loading the person view might take some time. See a comparison of [[GRAMPS Performance|performance]] on large datasets, between different GRAMPS versions.
As there are many people, loading the person view might take some time. See a comparison of [[Gramps Performance|performance]] on large datasets, between different Gramps versions. You can circumvent this load time by going to the [[Gramps_{{man version}}_Wiki_Manual_-_Categories#Relationships_Category|Relationships screenshot|relationships Category view]] before opening the grdb filefamily tree. This will open the active person and their family extremely fast, independent of the amount of data you gathered.
You can add bookmarks to common people, or in the branch you are researching. This allows to change person in the relationships view without the need to activate the person in the person view first.
 
== Avoid relationship calculation ==
 
Avoid displaying relationships on the status bar. From the {{man menu|Edit > Preferences}} ''Display'' tab change the '''Status bar''' option from {{man label|Relationship to the home person}} to {{man label|Active person's name and ID}}.
 
== Avoid Gramplets ==
Avoid gramplets which do a lot of database work. The '''[[Addon:Deep_Connections_Gramplet|Deep Connections]]''' Gramplet seems to be the worst case. Those type of gramplets slow everything down enormously.
== Avoid general filters ==
 
Filters search all the data looking for the people who satisfy your query. Try to avoid this on large files.
{{man tip|Search letters|Fast search can be done by enabling column search (disable {{man label|Sidebar}} on {{man menu|View}} menu), but this will search all letters on words into the column, not only the first letters.}} For name searches do the followinga surname search:* click Click on a person in the [[Gramps_6.0_Wiki_Manual_-_Categories#People_Category|People screenshot|people Grouped Category view]]. Now start typing the family name of the person you need. The view will automatically go to the family name as you complete your typing.* for For a more detailed search, click ''use the keyboard shortcut {{man key press|CTRL-|F'' first}}. This will expand all the nodes and allows to search more specifically. == Flat views are faster than Tree views == Using a large family tree database and the People grouped tree view needs to often rebuild the view especially after adding or deleting an object eg: Flat People (list) view is faster than grouped view.
=See also= Please contribute ==If you have more tips for working with large databases, please share them here.* [[Gramps Performance]]* [[GEPS 016: Enhancing Gramps Processing Speed]]
[[Category:Documentation]]
15,091
edits