Использование mssql_close () перед mssq_fetch_array ()

Мы разрабатываем сценарий, который читает данные из SQL Server 2005, расположенного на другом сервере.

В данный момент у нас возникают проблемы со временем соединения, потому что данные, которые мы получаем, довольно велики.

Одним из решений, которое пришло к нам, было вызов mssql_close () сразу после mssql_query () и до mssql_fetch_array (), потому что после mssql_query () данные находятся на нашем PHP-сервере, или это то, что документация говорит. Это значительно сократило бы время соединения из-за манипуляций с данными, которые мы должны выполнить с возвращаемыми записями.

Это возможно? Нужно ли нам иметь открытое соединение для выполнения mssql_fetch_array ()?

-1

Решение

Если у вас есть большой набор данных для извлечения, вы можете:

  1. Вытащить данные кусками (несколько запросов к БД)
  2. Увеличьте время ожидания соединения (если БД находится под вашим контролем)

Я также надеюсь, что вы прочитали эту часть из руководства:

Недостатком буферизованного режима является то, что для больших наборов результатов может потребоваться достаточно много памяти. Память будет оставаться занятой до тех пор, пока все ссылки на набор результатов не будут сброшены или набор результатов не будет явно освобожден, что автоматически произойдет во время самого последнего запроса.

По вопросу:

Нужно ли нам иметь открытое соединение для выполнения mssql_fetch_array ()?

Не требуется, если вы уже получили данные.

0

Другие решения

Других решений пока нет …