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

Откуда:
Сообщений: 8
Есть запрос:

Update [Back].[dbo].[Textract]
set who_is_it = 'P',br=aCards.branch,uni=kod_pr,U = subString(aCards.Type,1,1) from [Back].[dbo].[Textract] aTExtract with(index=idxCalcEnd),
[Back].[dbo].[Cards] aCards
where calcEnd=0 and aTExtract.pan =aCards.card_no

Таблица Textract содержит индекс по полю CalcEnd со значениями 0 или 1
Таблица Cards - индекс по полю card_no
В Textract содержится ~ 12 000 000 записей из них с CalcEnd=0 - 3 250 000
В Cards содержится 3 500 000 записей.
В данном виде запрос выполняется около 4,5 часа.
Как его можно оптимизировать?
10 дек 03, 18:05    [455729]     Ответить | Цитировать Сообщить модератору
 Re: Как быть???  [new]
Glory
Member

Откуда:
Сообщений: 104760
Таблица Textract содержит индекс по полю CalcEnd со значениями 0 или 1
Бесполезный индекс.


1. А почему у Extract нет индекса по pan ??
2. Каковы план выполнения и вермя выполнения запроса

select aCards.branch,kod_pr,subString(aCards.Type,1,1) 

from [Back].[dbo].[Textract] aTExtract with(index=idxCalcEnd),
[Back].[dbo].[Cards] aCards
where calcEnd=0 and aTExtract.pan =aCards.card_no
10 дек 03, 18:36    [455795]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить