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

Откуда: Брест, Белоруссия
Сообщений: 27
Добрый вечер.
Есть очень большая таблица где хранятся повторяющиеся данные. Например: в таблице 1 млн. записей и только 5 тыс. уникальных строк, остальные повторяющиеся. Нужно выбрать уникальные записи. Запрос вида

select distinct * from Table

работает очень медленно. Может быть есть альтернатива отбора уникальных записей, работающая быстрее?
9 авг 11, 21:10    [11094112]     Ответить | Цитировать Сообщить модератору
 Re: Альтернатива distinct  [new]
iljy
Member

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

индексы на таблице хоть какие-нибудь есть? ПК?
9 авг 11, 21:41    [11094225]     Ответить | Цитировать Сообщить модератору
 Re: Альтернатива distinct  [new]
ninchik
Member

Откуда: Брест, Белоруссия
Сообщений: 27
Ага, есть, а толку? По условию отбора попадаю в индекс. Посмотрела по планировщику запросов при отборе из-за distinct создается временная таблица worktable, что замедляет процесс выборки :(
9 авг 11, 21:53    [11094285]     Ответить | Цитировать Сообщить модератору
 Re: Альтернатива distinct  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
ninchik
Может быть есть альтернатива отбора уникальных записей, работающая быстрее?
Есть. Завести таблицу, в которой не хранить дубликаты.
9 авг 11, 21:55    [11094295]     Ответить | Цитировать Сообщить модератору
 Re: Альтернатива distinct  [new]
ninchik
Member

Откуда: Брест, Белоруссия
Сообщений: 27
Гавриленко Сергей Алексеевич
Есть. Завести таблицу, в которой не хранить дубликаты.


Не рационально. Такой селект нужен только в одном месте проги, а инсерты в таблицу идут очень часто.
9 авг 11, 22:01    [11094328]     Ответить | Цитировать Сообщить модератору
 Re: Альтернатива distinct  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
ninchik
Гавриленко Сергей Алексеевич
Есть. Завести таблицу, в которой не хранить дубликаты.


Не рационально. Такой селект нужен только в одном месте проги, а инсерты в таблицу идут очень часто.
Хозяин - барин.
9 авг 11, 22:07    [11094358]     Ответить | Цитировать Сообщить модератору
 Re: Альтернатива distinct  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
ninchik
Гавриленко Сергей Алексеевич
Есть. Завести таблицу, в которой не хранить дубликаты.


Не рационально. Такой селект нужен только в одном месте проги, а инсерты в таблицу идут очень часто.

Купите железо помощнее и рейды по-производительней. Это улучшит показатели полного скана. Хотя ИМХО дешевле не допускать дубликатов, чем потом героически с ними бороться.
9 авг 11, 22:10    [11094368]     Ответить | Цитировать Сообщить модератору
 Re: Альтернатива distinct  [new]
yado4eg
Member

Откуда:
Сообщений: 202
ninchik
Может быть есть альтернатива отбора уникальных записей, работающая быстрее?


можно попробовать group by replied_rows, не факт что будет быстрее.
9 авг 11, 22:11    [11094372]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить