Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 select раз через раз подгружает данные в пхп  [new]
wet11
Member

Откуда:
Сообщений: 6
$result = sqlsrv_query($conn, "SELECT * FROM table WHERE TimeVal >= Dateadd(Month, Datediff(Month, 0, DATEADD(m, -1, current_timestamp)), 0) AND Par1='10' AND Par2='20' ORDER BY CONVERT(datetime,TimeVal) DESC");

От такого запроса пхп выкидывает ошибку: Fatal error: Maximum execution time of 25 seconds exceeded in
Данных там около 3 600 000.
Кто-нибудь подскажите пожалуйста как оптимизировать запрос.
19 сен 16, 10:01    [19681495]     Ответить | Цитировать Сообщить модератору
 Re: select раз через раз подгружает данные в пхп  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Какая версия SQL Server? Структура таблицы? Все ли колонки нужны возвращать на клиент?
CREATE NONCLUSTERED INDEX IX
ON [table] (TimeVal)
--INCLUDE (...)
WHERE Par1 = '10' AND Par2 = '20'

Покажите план выполнения до создания индекса и после.
19 сен 16, 10:13    [19681530]     Ответить | Цитировать Сообщить модератору
 Re: select раз через раз подгружает данные в пхп  [new]
wet11
Member

Откуда:
Сообщений: 6
AlanDenton,

версия 2008, возвращать нужно около 6 колонок
19 сен 16, 10:42    [19681677]     Ответить | Цитировать Сообщить модератору
 Re: select раз через раз подгружает данные в пхп  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31959
wet11
AlanDenton,

версия 2008, возвращать нужно около 6 колонок
Так индексы есть или нет? Если нет, то понятно, что скан таблицы будет небыстрый. Впрочем, тут ещё дело и в блокировках, потому что 25 секунд даже для скана многовато. Судя по всему, приложение написано на коленке, мышкой :-)
19 сен 16, 12:05    [19682125]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить