![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Долгий поиск [D5, MSSQL]
Marat © (2005-08-11 14:48:00)Я делаю следующее:
1. Запрос из БД Oracle.
2. Все что нашел построчно вставляю в StringGrid.
3. Проходя в цикле по строкам StringGrid делаю запрос из БД MSSQL (через представление) используя в качестве параметра значение из одной ячейки. И тут же заполняю в эту же строку нужные значения из полученных данных.
Все это работает, но очень медленно. Если из БД Oracle достать 100 срок, то все вместе осуществляется за 1,5 минуты. Причем в самих запросах нет никаких сложностей. Я пробовал поставить "стоп" и вручную пошагово пройти весь алгоритм- получается гораздо быстрее чем автоматически.
Не подскажете в чем тут проблема?
Marat (2005-08-12 07:57:00) [1]Ого! Ребята, работай со свистом!!!
Marat (2005-08-12 07:20:00) [2]Из всего сказанного придумал так:
Сейчас пробую засунуть все из первого запроса в массив. Потом пробежаться по массиву 2 запросом. И только потом все из массива засунуть в StringGrid. Интересно, так быстрее будет или нет?
Slym (2005-08-12 05:03:00) [3]Не заметил что базы разнобокие... Тогда 3 частично (через линк)
Slym (2005-08-12 05:01:00) [4]Как к ораклу цепляешся?
1. Prepared:=true;
2. Requery+Parameters вместо Open/Close+изменение Sql;
3. Делать все в 1 запросе (JOIN)
4. DBGrid вместо StringGrid (это к производительности не относится)
Nikolay M. (2005-08-11 16:13:00) [5]
> ANB © (11.08.05 16:05) [12]
Не скину :(
Когда на sql.ru поиск по форумам заработает, тогда м.б. :)
ANB (2005-08-11 16:05:00) [6]
> Nikolay M. © (11.08.05 16:01) [11]
- не скинешь инструкцию по созданию db link оракл - ms sql ? Мы ставили, но потом при работе полно глюков и чуть что не так сделал - все виснет.
Nikolay M. (2005-08-11 16:01:00) [7]
> ANB © (11.08.05 15:54) [10]
> - тоже не фонтан. И глюков много.
Первое - да, но что делать. Второе - при наличии curvehands.sys :)
ANB (2005-08-11 15:54:00) [8]
> Nikolay M. © (11.08.05 15:51) [7]
- тоже не фонтан. И глюков много.
Автору : Засеки время выполнения одного запроса из MS SQL. Долговато у тебя что то. Кстати, в стринг грид можно не складывать - тебя никто не заставляет закрывать дейтасет после выполнения запроса из оракла и гулять по нему курсором.
Marat (2005-08-11 15:51:00) [9]Не убирайте пожалуйста этот вопрос до завтра. У нас рабочий день кончился.
Fay (2005-08-11 15:51:00) [10]2 Marat © (11.08.05 14:48)
Возьми все значения из StrigGrid. Запихай в запрос, верни набор данных, дополни StringGrid
Nikolay M. (2005-08-11 15:51:00) [11]Какой ужас... :(
Может, прилинковать оракл к мс скл linked-server-ом кошернее будет?
Anatoly Podgoretsky (2005-08-11 15:38:00) [12]В компонент xxxQuery, про UNION слышал?
Виталий Панасенко (2005-08-11 15:37:00) [13]А если использовать БДЕ гетерогенные запросы ?
Sergey13 (2005-08-11 15:33:00) [14]2[3] Marat © (11.08.05 15:25)
Таблица в памяти (типа RxMemoryData) или в клиентский датасет например.
Marat (2005-08-11 15:25:00) [15]Sergey13
А в какой объект сливать два запроса из разных БД?
ANB
KeepConnection у обоих Database= true
ANB (2005-08-11 15:05:00) [16]
> Marat © (11.08.05 14:48)
- KeepConnection проверь.
Sergey13 (2005-08-11 14:56:00) [17]А зачем тут StringGrid и/или цикл по нему?