У меня быстро выполняется запрос (менее 1 секунды), когда я выполняю запрос в SQL Server Mgt Studio, но когда я выполняю точно такой же запрос в PHP (на том же самом хранилище БД), используя FreeTDS v8, mssql_query ()это занимает намного больше времени (70+ секунд).
У таблиц, которые я нажимаю, есть индекс поля даты, которое я использую в предложении Where.
Может быть, это PHPФункции mssql не используют индекс?
Я также пытался поместить запрос в хранимую процедуру, а затем выполнить SP из PHP - такие же результаты с разницей во времени.
У меня естьтакже попытался добавить предложение 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 )
;