Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];

Вниз

Долгий поиск   Найти похожие ветки 

 
Marat ©   (2005-08-11 14:48) [0]

Я делаю следующее:
1. Запрос из БД Oracle.
2. Все что нашел построчно вставляю в StringGrid.
3. Проходя в цикле по строкам StringGrid делаю запрос из БД MSSQL (через представление) используя в качестве параметра значение из одной ячейки. И тут же заполняю в эту же строку нужные значения из полученных данных.
Все это работает, но очень медленно. Если из БД Oracle достать 100 срок, то все вместе осуществляется за 1,5 минуты. Причем в самих запросах нет никаких сложностей. Я пробовал поставить "стоп" и вручную пошагово пройти весь алгоритм- получается гораздо быстрее чем автоматически.
Не подскажете в чем тут проблема?


 
Sergey13 ©   (2005-08-11 14:56) [1]

А зачем тут StringGrid и/или цикл по нему?


 
ANB ©   (2005-08-11 15:05) [2]


> Marat ©   (11.08.05 14:48)
- KeepConnection проверь.


 
Marat ©   (2005-08-11 15:25) [3]

Sergey13
А в какой объект сливать два запроса из разных БД?

ANB
KeepConnection у обоих Database= true


 
Sergey13 ©   (2005-08-11 15:33) [4]

2[3] Marat ©   (11.08.05 15:25)
Таблица в памяти (типа RxMemoryData) или в клиентский датасет например.


 
Виталий Панасенко   (2005-08-11 15:37) [5]

А если использовать БДЕ  гетерогенные запросы ?


 
Anatoly Podgoretsky ©   (2005-08-11 15:38) [6]

В компонент xxxQuery, про UNION слышал?


 
Nikolay M. ©   (2005-08-11 15:51) [7]

Какой ужас... :(

Может, прилинковать оракл к мс скл linked-server-ом кошернее будет?


 
Fay ©   (2005-08-11 15:51) [8]

2 Marat ©   (11.08.05 14:48)
Возьми все значения из StrigGrid. Запихай в запрос, верни набор данных, дополни StringGrid


 
Marat ©   (2005-08-11 15:51) [9]

Не убирайте пожалуйста этот вопрос до завтра. У нас рабочий день кончился.


 
ANB ©   (2005-08-11 15:54) [10]


> Nikolay M. ©   (11.08.05 15:51) [7]
- тоже не фонтан. И глюков много.
Автору : Засеки время выполнения одного запроса из MS SQL. Долговато у тебя что то. Кстати, в стринг грид можно не складывать - тебя никто не заставляет закрывать дейтасет после выполнения запроса из оракла и гулять по нему курсором.


 
Nikolay M. ©   (2005-08-11 16:01) [11]


> ANB ©   (11.08.05 15:54) [10]
> - тоже не фонтан. И глюков много.

Первое - да, но что делать. Второе - при наличии curvehands.sys :)


 
ANB ©   (2005-08-11 16:05) [12]


> Nikolay M. ©   (11.08.05 16:01) [11]
- не скинешь инструкцию по созданию db link оракл - ms sql ? Мы ставили, но потом при работе полно глюков и чуть что не так сделал - все виснет.


 
Nikolay M. ©   (2005-08-11 16:13) [13]


> ANB ©   (11.08.05 16:05) [12]

Не скину :(
Когда на sql.ru поиск по форумам заработает, тогда м.б. :)


 
Slym ©   (2005-08-12 05:01) [14]

Как к ораклу цепляешся?
1. Prepared:=true;
2. Requery+Parameters вместо Open/Close+изменение Sql;
3. Делать все в 1 запросе (JOIN)
4. DBGrid вместо StringGrid (это к производительности не относится)


 
Slym ©   (2005-08-12 05:03) [15]

Не заметил что базы разнобокие... Тогда 3 частично (через линк)


 
Marat ©   (2005-08-12 07:20) [16]

Из всего сказанного придумал так:
Сейчас пробую засунуть все из первого запроса в массив. Потом пробежаться по массиву 2 запросом. И только потом все из массива засунуть в StringGrid. Интересно, так быстрее будет или нет?


 
Marat ©   (2005-08-12 07:57) [17]

Ого! Ребята, работай со свистом!!!



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

Форум: "Базы";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.039 c
1-1125627631
SergProger
2005-09-02 06:20
2005.09.25
Сообщения Windows


1-1125406065
vecna
2005-08-30 16:47
2005.09.25
TThread + TTimer


4-1122903549
Shopot
2005-08-01 17:39
2005.09.25
Как послать сообщение потоку процесса и отловить его?


2-1123952654
Андрей Молчанов
2005-08-13 21:04
2005.09.25
Диалоги


2-1124097041
root187
2005-08-15 13:10
2005.09.25
ustanovka BDE





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский