Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Долгий поиск [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 и/или цикл по нему?


Наверх

Титульная страница Поиск, карта сайта Написать письмо