gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:48:53 25 4
gpt4 key购买 nike

当我在 SQL Server Mgt Studio 中执行查询时,我有一个快速运行的查询(不到 1 秒),但是当我在 PHP 中运行完全相同的查询时(在同一个数据库实例上)使用 FreeTDS v8,mssql_query(),需要更长的时间(70 多秒)。

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

会不会是 PHP 的 mssql 函数没有使用索引?

我也试过将查询放在存储过程中,然后从 PHP 执行 SP - 发生时差的结果相同。

我还尝试在具有日期索引的表上添加一个 WITH ( INDEX( .. ) ) 子句,但也没有成功。

查询如下:

SELECT
1 History,
h.CUSTNMBR CustNmbr,
CONVERT(VARCHAR(10), h.ORDRDATE, 120 ) OrdDate,
h.SOPNUMBE OrdNmbr,
h.SUBTOTAL OrdTotal,
h.CSTPONBR PONmbr,
h.SHIPMTHD Shipper,
h.VOIDSTTS VoidStatus,
h.BACHNUMB BatchNmbr,
h.MODIFDT ModifDt

FROM SOP30200 h
WITH (INDEX (AK2SOP30200))
WHERE
h.SOPTYPE = 2 AND
h.DOCDATE >= DATEADD(dd, -61, GETDATE()) AND
h.VOIDSTTS = 0 AND
h.MODIFDT = CONVERT(VARCHAR(10), DATEADD(dd, -1*@daysAgo, GETDATE()) , 120 )
;

最佳答案

打开了什么设置,通常 ARITHABORT 是罪魁祸首,它在 SSMS 中打开,但您可能正在关闭它

在运行查询时在 SSMS 中运行它,并查看从 PHP 连接的 session 的第一列是什么

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

关于php - SQL Server 查询从 PHP 慢,但从 SQL Mgt Studio 查询快 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2886592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com