SQL Server从PHP查询速度慢,但从SQL Mgt Studio查询速度快-为什么?

SQL Server从PHP查询速度慢,但从SQL Mgt Studio查询速度快-为什么?,php,sql-server,Php,Sql Server,在SQL Server Mgt Studio中执行查询时,我有一个快速运行的查询(不到1秒),但在PHP中运行完全相同的查询时(在同一个db Instance上) 使用FreeTDS v8,mssql_query(),需要更长的时间(70秒以上) 我正在访问的表在我在Where子句中使用的日期字段上有一个索引 可能是PHP的mssql函数没有使用索引吗 我还尝试将查询放入一个存储过程中,然后从PHP执行SP——同样的结果是出现时间差 我还尝试在表中添加一个WITH(INDEX(..)子句,其中包

在SQL Server Mgt Studio中执行查询时,我有一个快速运行的查询(不到1秒),但在PHP中运行完全相同的查询时(在同一个db Instance上) 使用FreeTDS v8,mssql_query(),需要更长的时间(70秒以上)

我正在访问的表在我在Where子句中使用的日期字段上有一个索引

可能是PHP的mssql函数没有使用索引吗

我还尝试将查询放入一个存储过程中,然后从PHP执行SP——同样的结果是出现时间差

我还尝试在表中添加一个WITH(INDEX(..)子句,其中包含日期索引,但也没有成功

问题是:
什么设置是开启的,通常情况下,
ARITHABORT
是罪魁祸首,它在SSMS中是开启的,但您可能正在关闭连接

在运行查询时,在SSMS中运行此命令,查看从PHP连接的会话的第一列是什么

select arithabort,* from sys.dm_exec_sessions
where session_id > 50

运行SQL事件探查器,并设置跟踪,查看两次运行之间是否存在任何差异。

使用SQL事件探查器中的登录事件(和现有连接)和文本列将显示许多重要集合命令的连接设置——arithaport、隔离级别、引号标识符和其他。比较并对比快连接和慢连接,看看是否有什么突出的地方。

Ray,你发现问题所在并找到解决方法了吗?我遇到了一个类似的问题,一个MySQL查询在SQLYG中运行得快,而在PHP中使用MySQL_查询运行得慢……我也遇到了同样的问题。唯一的区别是我使用的是codeigniter。请让我知道,当你有一个解决这个问题的办法。谢谢谢洛,谢谢你的回答。我有个问题。我将其设置为打开状态,并且我的查询现在运行得非常快,但是当我运行您推荐的查询时,它仍然显示ArithaPort在PHP连接上处于关闭状态(即使查询现在运行得非常快),您知道它为什么会这样做吗?
select arithabort,* from sys.dm_exec_sessions
where session_id > 50