SQL Server 2008 devuelve “Límite de memoria de 10240 KB excedido para consulta almacenada en el búfer”

Intento llenar una tabla HTML con algunos datos de SQL Server 2008 r2, el controlador (php_sqlsrv) funciona bien, las tablas se llenan muy bien, pero cuando trato de recuperar un 2000 o más filas (quizás menos) se bloquea y muestra este mensaje:

Error SQL: Matriz ([0] => Matriz ([0] => IMSSP [SQLSTATE] => IMSSP [1] => -59 [código] => -59 [2] => Límite de memoria de 10240 KB excedido para consulta tamponada [mensaje] => Límite de memoria de 10240 KB excedido para la consulta almacenada en el búfer))

¿Cómo puedo arreglar esto? ¿Es esto un problema de PHP o sqlsrv? ¿Puedo solucionar esto desde SQL Server Management Studio?

    Cambie la configuración en php.ini.

    Sección: sqlsrv

    Directiva: sqlsrv.ClientBufferMaxKBSize.

    agrega dos líneas en php.ini

    extension=php_pdo_sqlsrv_55_ts.dll extension=php_sqlsrv_55_ts.dll client_buffer_max_kb_size = '50240' sqlsrv.ClientBufferMaxKBSize = 50240 

    También puede cambiar la configuración durante el tiempo de ejecución si no requiere que el servidor de producción modifique php.ini (verifique si esto es aplicable a su hosting).

    Actualiza el código con las siguientes líneas:

     ini_set('memory_limit','256M'); // This also needs to be increased in some cases. Can be changed to a higher value as per need) ini_set('sqlsrv.ClientBufferMaxKBSize','524288'); // Setting to 512M ini_set('pdo_sqlsrv.client_buffer_max_kb_size','524288'); // Setting to 512M - for pdo_sqlsrv 

    Para verificar si su servidor es compatible con esto, intente imprimir los valores después de configurar lo anterior.

     echo ini_get('memory_limit'); echo ini_get('sqlsrv.ClientBufferMaxKBSize'); echo ini_get('pdo_sqlsrv.client_buffer_max_kb_size'); 

    Los nuevos valores deberían ser los que habíamos establecido en ini_set (). De lo contrario, el servidor no admite cambios en la configuración del tiempo de ejecución.