diff options
author | Joas Schilling <coding@schilljs.com> | 2020-09-25 14:47:14 +0200 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2020-09-25 14:55:53 +0200 |
commit | 3212c074b95b7526767c33138dfa580790765aef (patch) | |
tree | cce9890e93c2fe492f8a7aeecccb13f3d78265bc /lib/private/DB | |
parent | 02e037174e4bb1f5f6e80bcd37e3069b7125bf09 (diff) | |
download | nextcloud-server-3212c074b95b7526767c33138dfa580790765aef.tar.gz nextcloud-server-3212c074b95b7526767c33138dfa580790765aef.zip |
Log the number of queries built and executed
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'lib/private/DB')
-rw-r--r-- | lib/private/DB/Connection.php | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/private/DB/Connection.php b/lib/private/DB/Connection.php index c5766dcd7e0..ba3e6aae5bc 100644 --- a/lib/private/DB/Connection.php +++ b/lib/private/DB/Connection.php @@ -59,6 +59,12 @@ class Connection extends ReconnectWrapper implements IDBConnection { protected $lockedTable = null; + /** @var int */ + protected $queriesBuilt = 0; + + /** @var int */ + protected $queriesExecuted = 0; + public function connect() { try { return parent::connect(); @@ -68,12 +74,20 @@ class Connection extends ReconnectWrapper implements IDBConnection { } } + public function getStats(): array { + return [ + 'built' => $this->queriesBuilt, + 'executed' => $this->queriesExecuted, + ]; + } + /** * Returns a QueryBuilder for the connection. * * @return \OCP\DB\QueryBuilder\IQueryBuilder */ public function getQueryBuilder() { + $this->queriesBuilt++; return new QueryBuilder( $this, \OC::$server->getSystemConfig(), @@ -90,6 +104,7 @@ class Connection extends ReconnectWrapper implements IDBConnection { public function createQueryBuilder() { $backtrace = $this->getCallerBacktrace(); \OC::$server->getLogger()->debug('Doctrine QueryBuilder retrieved in {backtrace}', ['app' => 'core', 'backtrace' => $backtrace]); + $this->queriesBuilt++; return parent::createQueryBuilder(); } @@ -102,6 +117,7 @@ class Connection extends ReconnectWrapper implements IDBConnection { public function getExpressionBuilder() { $backtrace = $this->getCallerBacktrace(); \OC::$server->getLogger()->debug('Doctrine ExpressionBuilder retrieved in {backtrace}', ['app' => 'core', 'backtrace' => $backtrace]); + $this->queriesBuilt++; return parent::getExpressionBuilder(); } @@ -191,6 +207,7 @@ class Connection extends ReconnectWrapper implements IDBConnection { public function executeQuery($query, array $params = [], $types = [], QueryCacheProfile $qcp = null) { $query = $this->replaceTablePrefix($query); $query = $this->adapter->fixupStatement($query); + $this->queriesExecuted++; return parent::executeQuery($query, $params, $types, $qcp); } @@ -211,6 +228,7 @@ class Connection extends ReconnectWrapper implements IDBConnection { public function executeUpdate($query, array $params = [], array $types = []) { $query = $this->replaceTablePrefix($query); $query = $this->adapter->fixupStatement($query); + $this->queriesExecuted++; return parent::executeUpdate($query, $params, $types); } |