Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.08;
Скачать: CL | DM;

Вниз

Помогите оптимизировать запрос, плз.   Найти похожие ветки 

 
madmike ©   (2002-07-19 03:20) [0]

Вот такой запрос:
("UPDATE reportbase SET reportbase.numb = (select name from firmbase WHERE reportbase.code=firmbase.idcode)"+
""" from reportbase,firmbase where reportbase.numb=""""");

Знач так, он рабочий, но, дело в том, что в таблице firmbase около 25000 элементов, а в reportbase где-то 200000, в обеих таблицах прим. по 20 полей, общий размер таблиц 90 метров(!).Так вот, запрос длился около 4 часов и, когда я его прервал, то оказалось, что выполнено(обновлено) 1/3 записей! Это же гемор. Ребят, посоветуйте, что-нить. Я пока тугой, с серъёзными базами недавно, простенькие ваще без головняка делаются, а тут напоролся... Не забуду указать конфу тачки, а то щас посыпется типа: меняй проц и т.д. Конфа:
morgan1000$1260(140x9)/75kav/256/GF2MX400/WD20_5400/ХРень_про
Во время запроса почти "не свопит", загрузка камня 100%


 
ЮЮ   (2002-07-19 07:17) [1]

странно, но у меня твоя конструкция не работает

UPDATE reportbase
SET reportbase.numb = (select name from firmbase WHERE reportbase.code=firmbase.idcode)
FROM reportbase,firmbase /* invalid usu of keyword */
where reportbase.numb=""

Без третьей строки работает:(4 сек на модификацию 8 строк из 16) :-)





 
Шамиль   (2002-07-19 08:16) [2]

Дяденьки, простите засранца :), но я немножко не въехал: в подзапросе в клаузе FROM reportbase отсутствует, а в клаузе WHERE - присутствует. Это ничего? Нормально?


 
ЮЮ   (2002-07-19 08:20) [3]

В запросе их по две штуки, вы о которых?


 
ЮЮ   (2002-07-19 08:23) [4]

Подзапрос, как и положено :-) выполняется для каждой строки таблицы reportbase, УЖЕ указанной в UPDATE


 
-=Sergeante=- ©   (2002-07-19 09:04) [5]

ОТКУДА в операторе UPDATE может быть FROM ????????? Превый раз такую дикую конструкцию вижу...

А какие поля у тебя проиндексированы?

Ещё вопрос. Может ли подзапрос select name from firmbase WHERE reportbase.code=firmbase.idcode вернуть несколько значений?


 
Desdechado ©   (2002-07-19 11:51) [6]

1. с парадоксом, имхо, через TTable быстрее будет
2. любой подзапрос, как было сказано, выполняется для каждой строки. поэтому попробуй обойтись без него.


 
ЮЮ   (2002-07-19 12:09) [7]

to -=Sergeante=-
Вопрошавшего в конфе, увы, нету
>ОТКУДА в операторе UPDATE может быть FROM
я сказал о том же еще в самом первом посте.



Страницы: 1 вся ветка

Текущий архив: 2002.08.08;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
1-24067
Ученик
2002-07-26 11:05
2002.08.08
Добавление свойств компонентов в Run-Time


1-24043
MaxSit
2002-07-25 17:58
2002.08.08
Связь с COM-портом по локальной сети.


14-24187
BAY
2002-07-13 00:14
2002.08.08
VB


1-24009
Солер
2002-07-28 14:14
2002.08.08
Как записать в Label значение combobox


14-24202
Snake bite
2002-07-13 19:50
2002.08.08
С добрым временем суток