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

Откуда: ☭
Сообщений: 72914
Объявляются две одинаковые таблицы типа:

declare @t1 table  (date smalldatetime, size int, name varchar(100))

В них вставляется примерно по 14тыс записей.
Нужно получить записи из первой, которые отсутствуют во второй, делаю это так:
select t1.name
from @t1 t1
left join @t2 t2 on 
	t2.name = t1.name 
	and t2.size = t1.size 
	and t2.date = t1.date
where t2.name is null
Запрос этот выполняется чудовищно медленно - полторы минуты. Как можно его ускорить?
25 июл 16, 12:25    [19450516]     Ответить | Цитировать Сообщить модератору
 Re: Как ускорить выборку?  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
а план где?
25 июл 16, 12:26    [19450527]     Ответить | Цитировать Сообщить модератору
 Re: Как ускорить выборку?  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
хотя сделай через временные #t1 и #t2 с индексами
25 июл 16, 12:28    [19450538]     Ответить | Цитировать Сообщить модератору
 Re: Как ускорить выборку?  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Antonariy,

во-первых, временные таблицы лучше.
Во-вторых, индекс не помогает?
25 июл 16, 12:28    [19450542]     Ответить | Цитировать Сообщить модератору
 Re: Как ускорить выборку?  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Konst_One
хотя сделай через временные #t1 и #t2 с индексами
Индексы можно попробовать и в переменных.
25 июл 16, 12:29    [19450549]     Ответить | Цитировать Сообщить модератору
 Re: Как ускорить выборку?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Antonariy,

попробуйте переписать через EXCEPT, или как советуют временные таблицы
25 июл 16, 12:29    [19450551]     Ответить | Цитировать Сообщить модератору
 Re: Как ускорить выборку?  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 72914
iap
Antonariy,

во-первых, временные таблицы лучше.
Во-вторых, индекс не помогает?
Что-то про индекс я не подумал...

В общем, временные + create index it1 on #t1 (date, size, name) значительно картину улучшили
25 июл 16, 12:36    [19450604]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить