Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/db/DatabasePersistenceManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/db/DatabasePersistenceManager.java	(revision 757203)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/db/DatabasePersistenceManager.java	(working copy)
@@ -34,6 +34,7 @@
 import org.apache.jackrabbit.core.state.NodeReferencesId;
 import org.apache.jackrabbit.core.state.NodeState;
 import org.apache.jackrabbit.core.state.PropertyState;
+import org.apache.jackrabbit.core.util.db.DbUtility;
 import org.apache.jackrabbit.core.value.BLOBFileValue;
 import org.apache.jackrabbit.core.value.InternalValue;
 import org.apache.jackrabbit.util.Text;
@@ -208,7 +209,9 @@
         prepareSchemaObjectPrefix();
 
         // check if schema objects exist and create them if necessary
-        checkSchema();
+        if (DbUtility.schemaCheckEnabled()) {
+        	checkSchema();
+        }
 
         // build sql statements
         buildSQLStatements();
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java	(revision 757203)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleDbPersistenceManager.java	(working copy)
@@ -55,6 +55,7 @@
 import org.apache.jackrabbit.core.persistence.bundle.util.ErrorHandling;
 import org.apache.jackrabbit.core.persistence.bundle.util.NodePropBundle;
 import org.apache.jackrabbit.core.util.StringIndex;
+import org.apache.jackrabbit.core.util.db.DbUtility;
 import org.apache.jackrabbit.core.persistence.util.BLOBStore;
 import org.apache.jackrabbit.core.persistence.util.FileSystemBLOBStore;
 import org.apache.jackrabbit.core.persistence.util.Serializer;
@@ -586,7 +587,9 @@
         prepareSchemaObjectPrefix();
 
         // check if schema objects exist and create them if necessary
-        checkSchema();
+        if (DbUtility.schemaCheckEnabled()) {
+        	checkSchema();
+        }
 
         // create correct blob store
         blobStore = createBlobStore();
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DatabaseFileSystem.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DatabaseFileSystem.java	(revision 757203)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/fs/db/DatabaseFileSystem.java	(working copy)
@@ -21,6 +21,7 @@
 import org.apache.jackrabbit.core.fs.FileSystemException;
 import org.apache.jackrabbit.core.fs.FileSystemPathUtil;
 import org.apache.jackrabbit.core.fs.RandomAccessOutputStream;
+import org.apache.jackrabbit.core.util.db.DbUtility;
 import org.apache.jackrabbit.util.Text;
 import org.apache.jackrabbit.util.TransientFileFactory;
 import org.slf4j.Logger;
@@ -187,7 +188,9 @@
             prepareSchemaObjectPrefix();
 
             // check if schema objects exist and create them if necessary
-            checkSchema();
+            if (DbUtility.schemaCheckEnabled()) {
+            	checkSchema();
+            }
 
             // build sql statements
             buildSQLStatements();
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/DbDataStore.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/DbDataStore.java	(revision 757203)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/DbDataStore.java	(working copy)
@@ -23,6 +23,7 @@
 import org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager;
 import org.apache.jackrabbit.core.persistence.bundle.util.TrackingInputStream;
 import org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager.StreamWrapper;
+import org.apache.jackrabbit.core.util.db.DbUtility;
 import org.apache.jackrabbit.util.Text;
 import org.apache.jackrabbit.uuid.UUID;
 import org.slf4j.Logger;
@@ -581,7 +582,7 @@
             ResultSet rs = meta.getTables(null, null, schemaObjectPrefix + tableSQL, null);
             boolean exists = rs.next();
             rs.close();
-            if (!exists) {
+            if (!exists && DbUtility.schemaCheckEnabled()) {
                 // CREATE TABLE DATASTORE(ID VARCHAR(255) PRIMARY KEY, 
                 // LENGTH BIGINT, LAST_MODIFIED BIGINT, DATA BLOB)
                 conn.executeStmt(createTableSQL, null);
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseJournal.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseJournal.java	(revision 757203)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseJournal.java	(working copy)
@@ -17,6 +17,7 @@
 package org.apache.jackrabbit.core.journal;
 
 import org.apache.jackrabbit.core.persistence.bundle.util.ConnectionFactory;
+import org.apache.jackrabbit.core.util.db.DbUtility;
 import org.apache.jackrabbit.spi.commons.namespace.NamespaceResolver;
 import org.apache.jackrabbit.util.Text;
 import org.slf4j.Logger;
@@ -302,9 +303,13 @@
         try {
             connection = getConnection();
             setAutoCommit(connection, true);
-            checkSchema();
+            if (DbUtility.schemaCheckEnabled()) {
+            	checkSchema();
+            }
             // Make sure that the LOCAL_REVISIONS table exists (see JCR-1087)
-            checkLocalRevisionSchema();
+            if (DbUtility.schemaCheckEnabled()) {
+            	checkLocalRevisionSchema();
+            }
 
             buildSQLStatements();
             prepareStatements();
Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/util/db/DbUtility.java
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/util/db/DbUtility.java	(revision 0)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/util/db/DbUtility.java	(revision 0)
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.core.util.db;
+
+/**
+ * This is a general utility class for JDBC related methods.
+ */
+public final class DbUtility {
+
+    private static final String SCHEMA_CHECK_PROP = "org.apache.jackrabbit.core.util.db.schemacheck";
+
+    /**
+     * Empty private constructor to implement utility class.
+     */
+    private DbUtility() {
+    }
+
+    /**
+     * @return whether the schema checks should done (default {@code true})
+     */
+    public static boolean schemaCheckEnabled() {
+        return Boolean.parseBoolean(System.getProperty(SCHEMA_CHECK_PROP, "true"));
+    }
+}
