I'm playing with ways to easily reduce the tame it takes to import a
moderately sized repository (around 50MB in git).

My first attempt looks like this:

Index: src/import.c
==================================================================
--- src/import.c
+++ src/import.c
@@ -731,10 +731,11 @@
   char *zPassword;
   FILE *pIn;
   Stmt q;
   int forceFlag = find_option("force", "f", 0)!=0;
   int incrFlag = find_option("incremental", "i", 0)!=0;
+  int fastFlag = find_option("fast", 0, 0)!=0;
 
   find_option("git",0,0);  /* Skip the --git option for now */
   verify_all_options();
   if( g.argc!=3  && g.argc!=4 ){
     usage("REPOSITORY-NAME");
@@ -749,10 +750,18 @@
     if( forceFlag ) file_delete(g.argv[2]);
     db_create_repository(g.argv[2]);
   }
   db_open_repository(g.argv[2]);
   db_open_config(0);
+
+  if( fastFlag ){
+    db_multi_exec(
+        "PRAGMA journal_mode=OFF;"
+        "PRAGMA synchronous=OFF;"
+        "PRAGMA temp_store=MEMORY;"
+    );
+  }
 
   /* The following temp-tables are used to hold information needed for
   ** the import.
   **
   ** The XMARK table provides a mapping from fast-import "marks" and symbols

However, it doesn't seem to make much difference.  Is there any other
SQLite tunable that can improve performance even at the cost of
resistance to hardware failure?

Thanks in advance.

-- 
Isaac Jurado

"The noblest pleasure is the joy of understanding."
                                  Leonardo da Vinci
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to