| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS SQL Server > Вопрос о времени на засыпку |
| Автор: Fedorenkoda 21.8.2002, 20:51 |
| Уважаемые знатоки! 1 запрос Select 'ДГТС ','Абонентная плата','КВС', (select isnull(sum(p.Summa),0.00) from Client c , Pers_Account p , DEVICENUMBER d where d.Fine>10 and p.Number=d.Number and (c.Branch=1) and c.Client=p.Client and p.ServiceType=2 and (p.Period between '07/01/02' and '08/01/02')) 2 запрос (select isnull(sum(p.Summa),0.00) from Client c , Pers_Account p , DEVICENUMBER d where d.Fine>10 and p.Number=d.Number and (c.Branch=1) and c.Client=p.Client and p.ServiceType=2 and (p.Period between '07/01/02' and '08/01/02')) Давайте абстрагируемся от индексов и всего прочего. Почему первый запрос работает 5 секунд, а второй 7 секунд. |
| Автор: Vit 21.8.2002, 22:11 |
| Давай вернёмся к нашему разговору - ты пробовал поставить индексы на это поле? И вообще совет - поставь индекс на каждое поле в конструкции Where. Разница во времени может быть связана с стадией приготовления квери для выполнения. Кроме того в Query Analyser, я уже не помню где точно, можно посмотреть схему выполнения квери, возможно из-за незначительных изменений SQL сервер выбрал из 2х приблизительно равнозначных(по предварительным оценкам) вариантов разные... |