Php Laravel-SQLSTATE[HY001]无法分配足够的内存-MsSQL

Php Laravel-SQLSTATE[HY001]无法分配足够的内存-MsSQL,php,sql-server,laravel,tinker,Php,Sql Server,Laravel,Tinker,我正在使用MsSql数据库中的视图对laravel中的项目进行第二次连接,我正确配置了my.env和config,但这是内存溢出的错误: $ php artisan tinker Psy Shell v0.10.5 (PHP 7.3.24-3+ubuntu18.04.1+deb.sury.org+1 — cli) by Justin Hileman >>> use App\Condinvest\BoletoPropCondominio as BPC >>> B

我正在使用MsSql数据库中的视图对laravel中的项目进行第二次连接,我正确配置了my.env和config,但这是内存溢出的错误:

$ php artisan tinker
Psy Shell v0.10.5 (PHP 7.3.24-3+ubuntu18.04.1+deb.sury.org+1 — cli) by Justin Hileman
>>> use App\Condinvest\BoletoPropCondominio as BPC
>>> BPC::first();
Illuminate\Database\QueryException with message 'SQLSTATE[HY001] Unable to allocate sufficient memory (meudominio.com.br:5000) (severity 8) (SQL: select top 1 * from [View_Boleto_Prop_Condominio])'
>>> 
已在my php.ini中更改:

memory_limit = 128M
但错误还在继续

我的模型大致如下所示:

BaseView.php

<?php
    
namespace App\Condinvest;

use Illuminate\Database\Eloquent\Model;

class BaseView extends Model
{
    protected $connection = 'condinvest';
}
成功返回我的数据

谁能告诉我可能发生了什么,或者我如何能够更好地调试以了解错误在哪里,请

编辑

>>> DB::connection('condinvest')->getConfig()['driver']
=> "sqlsrv"

由于错误显然是由数据库进程(而不是php进程)报告的,因此我希望php.ini中内存限制的更改会产生任何影响

我发现在MSSQL服务器上使用不推荐的驱动程序时,其中提到了这个特定错误。 要检查Laravel正在使用的驱动程序,请在Tinker控制台中键入
DB::connection()->getConfig()['driver']
。如果看到
sqlsrv
,则此处一切正常,但如果看到
dblib
,则这可能是错误的根源。在Laravel 5.7中,如果有多个可用的驱动程序,这个问题可能是为了更喜欢受支持的驱动程序,但也可能是您的
database.php
config文件使用了错误的驱动程序


也可能是数据库服务器或其所在系统的内存限制实际被超过。能够在命令提示符下运行查询而不出现错误表明情况并非如此,但可能仍然值得研究。如果可用内存非常低,则可能没有足够的内存同时运行php和数据库查询。只要数据库进程与终端在同一台机器上运行,就可以通过在终端中运行
free-h
命令来检查可用的系统内存。但是,如果您使用的是共享主机提供商,则数据库可能位于单独的计算机上。

您将
内存\u限制增加了多少?
我将内存\u限制设置为-1当内存出现问题时,将其设置为-1并不能解决问题,即使我希望它能够解决问题。然后我尝试了2G之类的东西,错误就消除了。我没有试图使用你的软件包,但我想我至少应该分享一下我一个月前的错误经验。@MarciusLeandro从未将内存限制设置为-1,这意味着不再有限制。我认为这不是php内存限制,因为这会引发php错误,而不是sql错误。无论如何,解决方案不应该是增加内存限制,而是减少内存使用。其他查询是否有效?我在几个地方看到可能是这样的,但我在驱动器上修复了它,错误仍然存在persists@MarciusLeandro您正在运行哪个版本的Laravel(
php artisan--version
)?另外,检查可用系统内存的结果是什么,数据库驱动程序被
DB
连接使用了什么?
SELECT TOP 1 * FROM View_Boleto_Prop_Condominio;
>>> DB::connection('condinvest')->getConfig()['driver']
=> "sqlsrv"