Производительность: PHP и MS SQL Server: SQLCMD с использованием Exec или драйвера

В настоящее время я делаю запросы к моему SQL Server, используя SQLCMD, и я запускаю это из функции exec() PHP. Я надеялся уточнить, что это не так эффективно, как драйвер для SQL Server для PHP: http://www.microsoft.com/sqlserver/2005/en/us/PHP-Driver.aspx. Я не уверен, что это то же самое, что и http://us3.php.net/manual/en/book.mssql.php?

Я обнаружил, что каждый раз, когда я запускаю команду exec, это довольно медленный ответ, и я надеялся получить подтверждение этого, прежде чем я перейду к этому новому драйверу и реализую его. Есть ли разница в производительности при использовании этого драйвера по сравнению с использованием функции exec для запуска SQLCMD?

Я знаю, что это немного пушисто, но я очень ценю помощь в этом решении.

Спасибо всем


person Abs    schedule 05.10.2009    source источник


Ответы (2)


Запуск другой команды с помощью exec или одной из других функций выполнения программы занимает время ; использование некоторых функций/классов PHP, вероятно, всегда будет быстрее и проще:

  • нет необходимости запускать другую команду
  • нет проблем с передачей параметров
  • без разбора вывода: вы получите собственные данные PHP в качестве вывода
  • меньше таких проблем, как «команда не найдена» или различия между UNIX/Linux и Windows
  • нет проблем с safe_mode и т.п.

Я бы определенно использовал некоторые функции, предоставляемые расширением PHP, вместо использования exec.


Кстати, в данном конкретном случае:

  • драйвер SQL Server для PHP в настоящее время доступен только на платформах Windows — не существует для Linux :-(
  • он недоступен в качестве драйвера PDO: вы должны использовать определенные функции sqlsrv_*
person Pascal MARTIN    schedule 06.10.2009

Угг, да, избавься от своего exec и используй клиентскую библиотеку php. Вам также не придется иметь дело с разбором наборов результатов из командной строки.

person Zak    schedule 05.10.2009