HELP with Custom Page Counter getNbResults() -> SELECT count(DISTINCT u0_.id) took 6782.39 ms

12 views
Skip to first unread message

Andrius Rancevas

unread,
Jan 28, 2020, 7:03:50 AM1/28/20
to sonata-devs
Hi sonata quary :

SELECT 
  count(DISTINCT u0_.id) AS sclr_0 
FROM 
  user u0_ 
  LEFT JOIN contact_phone c1_ ON u0_.id = c1_.user_id 
  LEFT JOIN user_car u2_ ON u0_.id = u2_.user_id 
  LEFT JOIN user_account u3_ ON u0_.id = u3_.user 
  LEFT JOIN user_employment u4_ ON u0_.id = u4_.user_id 
  LEFT JOIN user_document u5_ ON u0_.id = u5_.user_id 
  LEFT JOIN address a6_ ON u0_.id = a6_.user_id 
  LEFT JOIN user_finance u7_ ON u0_.id = u7_.user_id 
  LEFT JOIN file f8_ ON u0_.id = f8_.userId 
  LEFT JOIN loan l9_ ON u0_.id = l9_.userId

actioly what he do its display how much in list i have records 
and it run about 6782.39 ms

how  can i run just custom ~~ getNbResults() or somethink to execiut only
SELECT 
  count(DISTINCT u0_.id) AS sclr_0 
FROM 
  user u0_ 

thats all i need ??


i have custom function (11.25 ms to run this quary) from this quary its build count for list 

createQuery($context = 'list')
/** @var ProxyQuery $query */
$query = parent::createQuery($context);
/** @noinspection PhpUndefinedMethodInspection */
$alias = $query->getRootAlias();
$qb = $query->getQueryBuilder();

$qb->leftJoin("$alias.contactPhones", 'contact_phones');
$qb->leftJoin("$alias.car", 'user_car');
$qb->leftJoin("$alias.userAccount", 'user_account');
$qb->leftJoin("$alias.employment", 'user_employment');
$qb->leftJoin("$alias.document", 'user_document');
$qb->leftJoin("$alias.addresses", 'addresses');
$qb->leftJoin("$alias.finance", 'user_finance');
$qb->leftJoin("$alias.files", 'user_file');
$qb->leftJoin("$alias.loans", 'user_loan');
$qb->addSelect('PARTIAL contact_phones.{id,number,type,comment,contactType}');
$qb->addSelect('PARTIAL user_car.{id}');
$qb->addSelect('user_account');
$qb->addSelect('PARTIAL user_employment.{id,employer,employerAddress,employerActivity,position,experienceLast,monthlyIncome}');
$qb->addSelect('user_document');
$qb->addSelect('PARTIAL addresses.{id,city,street,house,type}');
$qb->addSelect('PARTIAL user_finance.{id}');
$qb->addSelect('PARTIAL user_file.{id}');
$qb->addSelect('PARTIAL user_loan.{id,status}');

return $query;
Reply all
Reply to author
Forward
0 new messages