我正在针对MS SQL Server执行查询和存储过程。php脚本和sql服务器都位于同一台服务器上。有时执行需要花费太多时间,PHP脚本就会崩溃。但是,SQL Server继续在后台执行查询。
如何强制SQL Server停止任何执行时间超过X秒的查询?
您可以使用服务器级设置,请参阅Microsoft文档。
- 在对象资源管理器中,右键单击服务器,然后选择"属性"
- 单击"连接"节点
- 在"远程服务器连接"下的"远程查询超时"框中,键入或选择一个从0到2147483647的值,以设置SQL server在超时前等待的最大秒数
此外,您还可以通过php.ini文件中的max_execution_time设置或使用php文件中的函数set_time_limit来增加php的执行时间
PHP中有一个配置参数:mssql.timeout,默认为60秒,并限制执行查询的时间。在此之后,MSSQLPHP驱动程序将中止查询并报告查询超时错误。
但是SQL Server本身并没有"查询超时"这回事:-)