|
задача на оптимизицию SQL запроса
|
|||
---|---|---|---|
#18+
Добрый день всем, Нужна помощь по оптимизации запроса (у меня нет под рукой таких объемов данных для тестов) В процедуре временная таблица tCardsToDeleted2(serno) - содержит 2000 записей. Временная таблица tCardsToDeleted3(serno) - это копия временной таблицы tCardsToDeleted2 Постоянная таблица newcards(около 120 полей) - содержит 400000 записей. Индексов нет ни в одной из них. Ниже сам проблематичный sql Delete from tCardsToDeleted2 where exists(select * from newcards where card2serno = tCardsToDeleted2.serno and card2serno is not Null and card2serno not in (select serno from tCardsToDeleted3)) or exists(select * from newcards where card2serno = tCardsToDeleted2.serno and card1serno is not Null and card1serno not in (select serno from tCardsToDeleted3)); Думаю создать 2 индекса на newcards.card1serno и newcards.card2serno ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2015, 11:05 |
|
задача на оптимизицию SQL запроса
|
|||
---|---|---|---|
#18+
faid, Есть план запроса c продуктивной системы ? Что если .... select ... union .. select ... into temp temp_t; delete from temp_t; С уважением, Вадим. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2015, 13:01 |
|
|
start [/forum/topic.php?fid=44&tid=1606830]: |
0ms |
get settings: |
17ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
22ms |
get topic data: |
4ms |
get forum data: |
1ms |
get page messages: |
96ms |
get tp. blocked users: |
1ms |
others: | 282ms |
total: | 430ms |
0 / 0 |