Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.56 MB
Время: 0.022 c
3-23961
Doctor
2002-07-19 11:27
2002.08.08
Year,Month,Day


1-23987
hitek
2002-07-27 18:01
2002.08.08
Можно ли в делфи сделать программу с расширением *.bat?


1-24121
Александр
2002-07-26 16:35
2002.08.08
Форма


1-24029
dim-
2002-07-29 09:28
2002.08.08
ListView


1-24013
Cosinus
2002-07-25 16:09
2002.08.08
По-моему интересная задачка для мастеров :)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский