Форум: "Базы";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];
ВнизПомогите оптимизировать запрос, плз. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c