diff --git a/include/Log.h b/include/Log.h
index 557051c077..f5818fece7 100644
--- a/include/Log.h
+++ b/include/Log.h
@@ -58,6 +58,28 @@ public:
         zone_id = zid;
     }
 
+    // -------------------------------------------------------------------------
+    // Profiler Interface
+    // -------------------------------------------------------------------------
+    static void start_timer(struct timespec * estart)
+    {
+        clock_gettime(CLOCK_MONOTONIC, estart);
+    }
+
+    static double stop_timer(struct timespec * estart)
+    {
+        double sec;
+
+        struct timespec eend;
+
+        clock_gettime(CLOCK_MONOTONIC, &eend);
+
+        sec = (eend.tv_sec + (eend.tv_nsec * 1e-9)) - (estart->tv_sec +
+            (estart->tv_nsec * 1e-9));
+
+        return sec;
+    }
+
     // -------------------------------------------------------------------------
     // Logger interface
     // -------------------------------------------------------------------------
diff --git a/src/sql/MySqlDB.cc b/src/sql/MySqlDB.cc
index bc9b23b96a..767cf563c2 100644
--- a/src/sql/MySqlDB.cc
+++ b/src/sql/MySqlDB.cc
@@ -169,6 +169,10 @@ int MySqlDB::exec(ostringstream& cmd, Callbackable* obj, bool quiet)
 
     Log::MessageType error_level = quiet ? Log::DDEBUG : Log::ERROR;
 
+    struct timespec timer;
+
+    Log::start_timer(&timer);
+
     MYSQL * db = get_db_connection();
 
     int rc = mysql_query(db, c_str);
@@ -272,6 +276,18 @@ int MySqlDB::exec(ostringstream& cmd, Callbackable* obj, bool quiet)
 
     free_db_connection(db);
 
+    double sec = Log::stop_timer(&timer);
+
+    if ( sec > 0.5 )
+    {
+        std::ostringstream oss;
+
+        oss << "Slow query (" << one_util::float_to_str(sec) << "s) detected: "
+            << str;
+
+        NebulaLog::log("SQL", Log::WARNING, oss);
+    }
+
     return rc;
 }