Laravel 5

Soucis Mémoire et OCI_8

  • Avatar de LaraSharp
    Membre depuis :
    03/01/2018
    Messages :
    18
    Bonjour,

    Je constate une grosse consommation de mémoire quand je fais une simple requete via OCI8 (Yajra) avec Laravel.
    Est-ce que certains ont été dans le même cas et ont trouvé une solution ?

    Exemple : Table contenant 60000 enregistrements environ

    $data = DB::connection('baseOracle')
    ->table('tableOracle')
    ->get();

    [19-Apr-2019 13:14:48 Europe/Paris] PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes) in .......\vendor\yajra\laravel-pdo-via-oci8\src\Pdo\Oci8\Statement.php on line 315

    [19-Apr-2019 13:14:48 Europe/Paris] PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 32768 bytes) in ........vendor\symfony\debug\Exception\FatalErrorException.php on line 1

    Le memory_limit du php.ini était à 256M, je l'ai monté à 512M et là j'ai pu passer ma requete.
    Par contre, j'ai eu à nouveau rapidement le même message d'erreur même à 512M pour quelques actions supplémentaires. Je ne pense pas que la solution soit d'augmenter, à 1024, puis 2048, etc... mais plutôt essayer de trouver d'où vient cette sur-consommation.

    J'ai testé sur différents serveurs (wamp, ubuntu), même sur un laravel fraichement installé sans utilisation , et j'ai le même problème à chaque fois.
    J'ai copié la même table avec données sous Mysql (pour test) et là par contre aucun soucis. (je suis obligé malgré tout d'utiliser oracle)
    Est-ce que quelqu'un à une idée pour résoudre ce soucis de mémoire ?

    Fabien

  • Avatar de MaitrePylos
    Membre depuis :
    27/05/2013
    Messages :
    264

    Bonjour, avez-vous essayé avec des requêtes plus simplifiés ?

    $data = DB::connection('baseOracle');

    $result = $data->select('select * from tableOracle');

    voir direct en PDO

    $data = DB::connection('baseOracle');
    $pdo = $data->getPdo();

    $sql = 'select * from tableOracle';

    $pdo->prepare(.........
  • Avatar de LaraSharp
    Membre depuis :
    03/01/2018
    Messages :
    18

    Même en simple requete avec $data->select ou getPdo.... , c'est le même message d'erreur.

  • Avatar de MaitrePylos
    Membre depuis :
    27/05/2013
    Messages :
    264

    Ok, mais le getPdo passe par votre composant Yajra
    Si vous faites une connexion toute simple en PDO de A - Z , vous avez aussi des problème ?
    Si c'est le cas alors votre souci est ailleurs

Vous ne pouvez pas répondre à ce sujet.