Я выполняю простой запрос с драйвером sqlsrv для PHP, возвращая 104586 строк x 30 столбцов следующим образом:
$sql = 'SELECT [columns] FROM [table]'
$stmt = sqlsrv_query($conn, $sql, $params);
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_NUMERIC)) {
$dataSet[] = $row;
}
Если я повторяю все $row
, все работает и страница загружается в 4 -5 секунд, но если попытаться присвоить их массиву, PHP исчерпает ошибку памяти со следующим сообщением в файле журнала:
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes)
Мне нужны данные в формате массива для дальнейшего использования. Есть ли более эффективный способ получить это? Я скучаю по somenthing?
Выполнение запроса с SSMS занимает 2 секунды, поэтому в нем нет ничего тяжелого.
PHP версия 7.0.23, если это может иметь значение.