Главная страница
    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.46 MB
Время: 0.006 c
7-24252
SergeyDon
2002-05-23 13:59
2002.08.08
Как заставить Win_XP


1-24022
Denvor
2002-07-25 02:37
2002.08.08
Events Excel in Delphi?


6-24143
Alibaba
2002-05-27 10:43
2002.08.08
МАС адрес


3-23944
Explorer
2002-07-18 14:55
2002.08.08
Как из StringGrid вставить данные в БД(MSSQL)?


3-23885
First_May
2002-07-16 10:11
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский