diff --git a/app/views/sherlock/transactions/_general.html.haml b/app/views/sherlock/transactions/_general.html.haml
index 4287a0c32036f49cccd1b7ac1482186d7f1f5254..8533b130da684d588917991f92e67acd6715d087 100644
--- a/app/views/sherlock/transactions/_general.html.haml
+++ b/app/views/sherlock/transactions/_general.html.haml
@@ -25,6 +25,12 @@
         %strong
           = @transaction.duration.round(2)
           = t('sherlock.seconds')
+      %li
+        %span.light
+          #{t('sherlock.query_time')}
+        %strong
+          = @transaction.query_duration.round(2)
+          = t('sherlock.seconds')
       %li
         %span.light
           #{t('sherlock.finished_at')}:
diff --git a/config/locales/sherlock.en.yml b/config/locales/sherlock.en.yml
index 683b09dc3294d5710850802193572470bee0f5d9..f24b825f585410490fb44456aef97cbc0e1033d1 100644
--- a/config/locales/sherlock.en.yml
+++ b/config/locales/sherlock.en.yml
@@ -35,3 +35,4 @@ en:
     events: Events
     percent: '%'
     count: Count
+    query_time: Query Time
diff --git a/lib/gitlab/sherlock/transaction.rb b/lib/gitlab/sherlock/transaction.rb
index d87a4c9bb4a82a5e59dc6dbe87dfe0c6436e6673..3489fb251b6be312cd6d63ed5103e289776cad3e 100644
--- a/lib/gitlab/sherlock/transaction.rb
+++ b/lib/gitlab/sherlock/transaction.rb
@@ -36,6 +36,11 @@ module Gitlab
         @duration ||= started_at && finished_at ? finished_at - started_at : 0
       end
 
+      # Returns the total query duration in seconds.
+      def query_duration
+        @query_duration ||= @queries.map { |q| q.duration }.inject(:+) / 1000.0
+      end
+
       def to_param
         @id
       end
diff --git a/spec/lib/gitlab/sherlock/transaction_spec.rb b/spec/lib/gitlab/sherlock/transaction_spec.rb
index bb49fb65cf8c6ec65bcb5f8a02abe5b17aed2f2b..fb80c62c79479018114b643e0b40b80a1cd97a38 100644
--- a/spec/lib/gitlab/sherlock/transaction_spec.rb
+++ b/spec/lib/gitlab/sherlock/transaction_spec.rb
@@ -84,6 +84,19 @@ describe Gitlab::Sherlock::Transaction do
     end
   end
 
+  describe '#query_duration' do
+    it 'returns the total query duration in seconds' do
+      time   = Time.now
+      query1 = Gitlab::Sherlock::Query.new('SELECT 1', time, time + 5)
+      query2 = Gitlab::Sherlock::Query.new('SELECT 2', time, time + 2)
+
+      transaction.queries << query1
+      transaction.queries << query2
+
+      expect(transaction.query_duration).to be_within(0.1).of(7.0)
+    end
+  end
+
   describe '#to_param' do
     it 'returns the transaction ID' do
       expect(transaction.to_param).to eq(transaction.id)