diff --git a/lib/Db/ExtMapper.php b/lib/Db/ExtMapper.php
index c06cb3f69cc1076e92e1695a16442d224e4d68c6..f1cab3537ea412b2a038609788bf12ddbe0ae1a0 100644
--- a/lib/Db/ExtMapper.php
+++ b/lib/Db/ExtMapper.php
@@ -47,24 +47,6 @@ abstract class ExtMapper extends QBMapper {
 		}
 	}
 
-	protected function chunkedQueryArray(callable $callback, &$data, $users): void {
-
-		$offset = 0;
-		$totalUsers = count($users); // Total number of users
-
-		while ($offset < $totalUsers) {
-			$query = $this->getQueryBuilder();
-
-			$userChunk = array_slice($users, $offset, $this->chunkSize);
-			if (empty($userChunk)) {
-				break;
-			}
-			$callback($query, $userChunk, $data);
-
-			$offset += $this->chunkSize;
-		}
-	}
-
 	protected function addChunkCondition(IQueryBuilder $query, string $field, int $offset, bool $firstWhereClause = false): void {
 		if ($this->chunkSize > 0) {
 			$expr = $query->expr()->gt($field, $query->createPositionalParameter($offset, IQueryBuilder::PARAM_INT));
diff --git a/lib/Db/OC/AccountsMapper.php b/lib/Db/OC/AccountsMapper.php
index f7ef7ecc79af2f72b2e2aa1d8d3fb466b6d9f296..bd9f7c7d7fe247089b058e6909824ccfe3a7cd23 100644
--- a/lib/Db/OC/AccountsMapper.php
+++ b/lib/Db/OC/AccountsMapper.php
@@ -13,6 +13,7 @@ use PDO;
 
 class AccountsMapper extends ExtMapper {
     const PREFERENCES_TABLE = 'preferences';
+	const ACCOUNTS_TABLE = 'accounts';
 	private ConfigService $configService;
 
     public function __construct(IDBConnection $db, int $chunkSize, ConfigService $configService ) {
@@ -27,7 +28,7 @@ class AccountsMapper extends ExtMapper {
 		}
 		$qb = $this->db->getQueryBuilder();
 		$qb->selectAlias($qb->createFunction('COUNT(uid)'), 'c')
-			->from('accounts');
+			->from(self::ACCOUNTS_TABLE);
 
 		$stmt = $qb->execute();
 		$result = $stmt->fetch();
@@ -61,66 +62,58 @@ class AccountsMapper extends ExtMapper {
 		$data = [
 			'storages' => []
 		];
-		$this->chunkedQueryArray(function ($query, $userChunk, &$data) use ($activeUsers) {
-			return $this->queryUserStoragesCallback($query, $userChunk, $data);
-		}, $data, $activeUsers);
 
-		return $data['storages'];
-	}
-
-	protected function queryUserStoragesCallback(IQueryBuilder $query, array $userChunk, &$data): string {
-		$storages = &$data['storages'];
-		if (empty($userChunk)) {
-			return '0';
+		if (empty($activeUsers)) {
+			return $data['storages'];
 		}
+
+		$query = $this->getQueryBuilder();
+
 		$query->selectAlias('fc.size', 's')
 			->selectAlias('a.uid', 'i')
 			->from('accounts', 'a')
 			->join('a', StoragesMapper::STORAGES_TABLE, 's', "s.id = CONCAT('home::', a.uid)")
 			->join('s', FilecacheMapper::FILECACHE_TABLE, 'fc', 'fc.storage = s.numeric_id')
 			->where($query->expr()->eq('fc.path', $query->createPositionalParameter('files')))
-			->andWhere($query->expr()->in('a.uid', $query->createPositionalParameter($userChunk, IQueryBuilder::PARAM_STR_ARRAY)));
+			->andWhere($query->expr()->in('a.uid', $query->createPositionalParameter($activeUsers, IQueryBuilder::PARAM_STR_ARRAY)));
 
 		foreach ($this->queryRows($query) as $row) {
-			$storages[] = intval($row['s']);
+			$data['storages'][] = intval($row['s']);
 		}
-		return '';
+
+		return $data['storages'];
 	}
 
 	public function queryUserQuotas($defaultQuotas) {
 		$activeUsers = $this->getActiveUsers();
 		$data = [
-			'defaultQuotas' => $defaultQuotas,
 			'quotas' => []
 		];
-		$this->chunkedQueryArray(function ($query, $userChunk, &$data) use ($activeUsers) {
 
-			return $this->queryUserQuotasCallback($query, $userChunk, $data);
-		}, $data, $activeUsers);
-		return $data['quotas'];
-	}
-
-	protected function queryUserQuotasCallback(IQueryBuilder $query, $userChunk, &$data): string {
-		$defaultQuotas = $data['defaultQuotas'];
-		$quotas = &$data['quotas'];
-		if (empty($userChunk)) {
-			return '0';
+		if (empty($activeUsers)) {
+			return $data['quotas'];
 		}
 
-		$query->selectDistinct('p.userid')
-			->selectAlias('p1.configvalue', 'quota')
-			->from(self::PREFERENCES_TABLE, 'p')
-			->join('p', self::PREFERENCES_TABLE, 'p1', 'p1.userid = p.userid')
-			->andWhere($query->expr()->eq('p1.configkey', $query->createPositionalParameter('quota')))
-			->andWhere($query->expr()->in('p.userid', $query->createPositionalParameter($userChunk, IQueryBuilder::PARAM_STR_ARRAY)));
+		$query = $this->getQueryBuilder();
+
+		$query->selectDistinct('a.uid')
+			->selectAlias('p.configvalue', 'quota')
+			->from(self::ACCOUNTS_TABLE, 'a')
+			->join('a', self::PREFERENCES_TABLE, 'p', 'a.uid = p.userid')
+			->andWhere($query->expr()->eq('p.configkey', $query->createPositionalParameter('quota')))
+			->andWhere($query->expr()->in('a.uid', $query->createPositionalParameter($activeUsers, IQueryBuilder::PARAM_STR_ARRAY)));
 
+		// Execute query and process results
 		foreach ($this->queryRows($query) as $row) {
 			$defaultQuota = $this->findDefaultQuota($defaultQuotas, $row['quota']);
-			if (($quota = FileSize::ParseQuotaString($row['quota'], $defaultQuota)) !== false) {
-				$quotas[$row['userid']] = $quota;
+			$quota = FileSize::ParseQuotaString($row['quota'], $defaultQuota);
+
+			if ($quota !== false) {
+				$data['quotas'][$row['uid']] = $quota;
 			}
 		}
-		return '';
+
+		return $data['quotas'];
 	}
 
 	private function findDefaultQuota($defaultQuotas, $backend) {
@@ -137,7 +130,7 @@ class AccountsMapper extends ExtMapper {
 		$deactivatedUsers = $this->configService->config()->getUsersForUserValue('core', 'enabled', 'false');
 		$qb = $this->db->getQueryBuilder();
 		$qb->select('uid')
-			->from('accounts');
+			->from(self::ACCOUNTS_TABLE);
 
 		$stmt = $qb->execute();
 		$result = $stmt->fetchAll(PDO::FETCH_COLUMN);
diff --git a/lib/Db/OC/FilecacheMapper.php b/lib/Db/OC/FilecacheMapper.php
index 72da56919dcf58d56fb21f5a667464776f2dfd2a..87156357f48f09c2426b95f763551c6601fbc82a 100644
--- a/lib/Db/OC/FilecacheMapper.php
+++ b/lib/Db/OC/FilecacheMapper.php
@@ -4,6 +4,7 @@ namespace OCA\SccuotNC\Db\OC;
 
 use OCA\SccuotNC\Db\ExtMapper;
 
+use OCA\SccuotNC\Service\ConfigService;
 use OCP\DB\QueryBuilder\IQueryBuilder;
 use OCP\IDBConnection;
 
@@ -11,10 +12,11 @@ class FilecacheMapper extends ExtMapper {
     const FILECACHE_TABLE = 'filecache';
 
 	private string $accountsState = '';
+	private ConfigService $configService;
 
-    public function __construct(IDBConnection $db, int $chunkSize, string $accountsState = '') {
+    public function __construct(IDBConnection $db, int $chunkSize, ConfigService $configService, string $accountsState = '') {
         parent::__construct($db, self::FILECACHE_TABLE, $chunkSize);
-
+		$this->configService = $configService;
 		$this->accountsState = $accountsState;
     }
 
@@ -99,8 +101,7 @@ class FilecacheMapper extends ExtMapper {
 		$values = $this->queryValues($query, ['c', 'm']);
 
 		$data['totalCount'] += $values['c'];
-
-		return $values['m']  == NULL ? $offset + $this->chunkSize : $values['m'];
+		return $values['m'] == NULL? 0 : $values['m'];
 	}
 
 	public function queryTotalFilesSize() {
@@ -124,32 +125,20 @@ class FilecacheMapper extends ExtMapper {
 	    $values = $this->queryValues($query, ['s', 'm']);
 	    $data['totalSize'] += $values['s'];
 
-		return $values['m']  == NULL ? $offset + $this->chunkSize : $values['m'];
+		return $values['m'] == NULL? 0 : $values['m'];
     }
 
 	private function joinUserAccounts(IQueryBuilder $query) {
 		if ($this->accountsState != '') {
 			$query->join('fc', StoragesMapper::STORAGES_TABLE, 's', 's.numeric_id = fc.storage')
-				->join('s', AccountsMapper::PREFERENCES_TABLE, 'p', "CONCAT('home::', p.userid) = s.id");
+				->join('s', AccountsMapper::ACCOUNTS_TABLE, 'a', "CONCAT('home::', a.uid) = s.id");
 		}
 	}
 
 	private function addUserAccountsCondition(IQueryBuilder $query) {
-		if ($this->accountsState != '') {
-
-			$qb = $this->getQueryBuilder();
-			$qb->selectDistinct('userid')
-				->from(AccountsMapper::PREFERENCES_TABLE)
-				->where($qb->expr()->eq('configkey', $qb->expr()->literal('enabled')))
-				->andWhere($qb->expr()->eq('configvalue', $qb->expr()->literal('false')));
-
-			$query->andWhere($query->expr()->eq('configkey', $query->expr()->literal('%quota%')));
-			if ($this->accountsState == 'true') {
-				$query->andWhere($query->expr()->notIn('p.userid', $query->createFunction($qb->getSQL())));
-			} else {
-				$query->andWhere($query->expr()->in('p.userid', $query->createFunction($qb->getSQL())));
-			}
-
+		if ($this->accountsState === 'false') {
+			$deactivatedUsers = $this->configService->config()->getUsersForUserValue('core', 'enabled', 'false');
+			$query->andWhere($query->expr()->in('a.uid', $query->createPositionalParameter($deactivatedUsers, IQueryBuilder::PARAM_STR_ARRAY)));
 		}
 	}
 
diff --git a/lib/Stats/Collector/FileTypesCountsCollector.php b/lib/Stats/Collector/FileTypesCountsCollector.php
index 4e4e9c0ced129d7c2c80b74e481a69af203fca22..f94fffe322fbd93c124a66d9cf192814afe19217 100644
--- a/lib/Stats/Collector/FileTypesCountsCollector.php
+++ b/lib/Stats/Collector/FileTypesCountsCollector.php
@@ -10,7 +10,7 @@ use OCP\IDBConnection;
 class FileTypesCountsCollector extends BaseCollector {
     protected function collectData(IDBConnection $db, int $timestamp, int $chunkSize, ConfigService $config) {
         $fileCounts = [];
-        $mapper = new FilecacheMapper($db, $chunkSize, $config->getSnapshotFiletypesFilterClosedAccounts() ? self::STATE_ENABLED : '');
+        $mapper = new FilecacheMapper($db, $chunkSize, $config, $config->getSnapshotFiletypesFilterClosedAccounts() ? self::STATE_ENABLED : '');
 	    $counts = $mapper->queryFiletypesCounts();
 	    foreach ($config->getSnapshotFileTypes()->groups() as $groupName => $group) {
 		    if (!$group->isCollectEnabled()) {
diff --git a/lib/Stats/Collector/FilesCountCollector.php b/lib/Stats/Collector/FilesCountCollector.php
index 1ed2fbd58844ac7b8dca99b601eeee575407164a..adb2978b835e38a537d24a6559fd6cb42e04f745 100644
--- a/lib/Stats/Collector/FilesCountCollector.php
+++ b/lib/Stats/Collector/FilesCountCollector.php
@@ -11,7 +11,7 @@ use OCP\IDBConnection;
 
 class FilesCountCollector extends BaseCollector {
     protected function collectData(IDBConnection $db, int $timestamp, int $chunkSize, ConfigService $config) {
-        $mapper = new FilecacheMapper($db, $chunkSize);
+        $mapper = new FilecacheMapper($db, $chunkSize, $config);
 		$totalCount = $mapper->queryTotalFilesCount();
 		$mapper->setAccountsState(self::STATE_DISABLED);
 	    $obsoleteCount = $mapper->queryTotalFilesCount();
diff --git a/lib/Stats/Collector/FilesSizeCollector.php b/lib/Stats/Collector/FilesSizeCollector.php
index 62e065de22491e79e5d05b4ad8ae848e5f15f189..c65dcb1a4055e56d98a7c1256455768391bdb2db 100644
--- a/lib/Stats/Collector/FilesSizeCollector.php
+++ b/lib/Stats/Collector/FilesSizeCollector.php
@@ -11,7 +11,7 @@ use OCP\IDBConnection;
 
 class FilesSizeCollector extends BaseCollector {
     protected function collectData(IDBConnection $db, int $timestamp, int $chunkSize, ConfigService $config) {
-        $mapper = new FilecacheMapper($db, $chunkSize);
+        $mapper = new FilecacheMapper($db, $chunkSize, $config);
 	    $totalCount = $mapper->queryTotalFilesSize();
 	    $mapper->setAccountsState(self::STATE_DISABLED);
 	    $obsoleteCount = $mapper->queryTotalFilesSize();