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

Откуда:
Сообщений: 660
есть большая таблица 500 000 000 строк
поля а1 а2 а3
индекс по полю а1 а2

запрос select a3 from tbl where a1=1 and a2=2
выполняется 1 сек и возвращает 100 строк
но вот
запрос select a3 from tbl
where a1=1 and a2=2
group by a3

выполняется очень долго
я так думаю что этот запрос приводит к чтению всех данных
но почему не выполняется сначала select а потом группировка?
29 сен 12, 00:52    [13242513]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить порядок выполнения запроса  [new]
а так ?
Guest
Alexander_fx
есть большая таблица 500 000 000 строк
поля а1 а2 а3
индекс по полю а1 а2

запрос select a3 from tbl where a1=1 and a2=2
выполняется 1 сек и возвращает 100 строк
но вот
запрос
select a3 from tbl 
where a1=1 and a2=2
group by a3


выполняется очень долго
я так думаю что этот запрос приводит к чтению всех данных
но почему не выполняется сначала select а потом группировка?


select distinct a3 from tbl 
where a1=1 and a2=2
29 сен 12, 01:21    [13242639]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить порядок выполнения запроса  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Alexander_fx
я так думаю что этот запрос приводит к чтению всех данных
но почему не выполняется сначала select а потом группировка?
Надо не думать, а смотреть план.

а так ?
select distinct a3 from tbl 
where a1=1 and a2=2
А в чем разница?
29 сен 12, 01:51    [13242731]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить порядок выполнения запроса  [new]
а так ?
Guest
Mind
а так ?
select distinct a3 from tbl 
where a1=1 and a2=2
А в чем разница?

судя по этому - 12182875 - разницы-то быть не должно и в случае запросов ТС,
но она, как "тот суслик" - есть
29 сен 12, 02:05    [13242753]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить порядок выполнения запроса  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
Alexander_fx
я так думаю что этот запрос приводит к чтению всех данных
Нужно действительно посмотреть планы.

1 сек для первого запроса тоже долго...
29 сен 12, 08:45    [13242876]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить порядок выполнения запроса  [new]
забавно
Guest
Alexander_fx
есть большая таблица 500 000 000 строк
поля а1 а2 а3
индекс по полю а1 а2

запрос select a3 from tbl where a1=1 and a2=2
выполняется 1 сек и возвращает 100 строк
но вот
запрос select a3 from tbl
where a1=1 and a2=2
group by a3

выполняется очень долго
я так думаю что этот запрос приводит к чтению всех данных
но почему не выполняется сначала select а потом группировка?
как понимать ?
по полЮ,
а любом случае - по полЯм
но что там у вас -- 1-н составной или 2-а индивидуальных (на что какбе намекает по полЮ) - 2 большие разницы.
29 сен 12, 12:02    [13243017]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите как изменить порядок выполнения запроса  [new]
есть большая табл
Guest
Alexander_fx
есть большая таблица 500 000 000 строк
поля а1 а2 а3
индекс по полю а1 а2

запрос select a3 from tbl where a1=1 and a2=2
выполняется 1 сек и возвращает 100 строк
но вот
запрос select a3 from tbl
where a1=1 and a2=2
group by a3

выполняется очень долго
я так думаю что этот запрос приводит к чтению всех данных
но почему не выполняется сначала select а потом группировка?

возможно статистика по полю a3 лучше статистики поля a1
29 сен 12, 12:23    [13243052]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить