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

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

как оптимально обработать разделенный запрос [D6]


Андрусь ©   (2002-12-03 20:37:00) 

Привет всем!Возникла такая вот проблемка.Работаю с Oracle. Работаю через ODAC/OCI.Есть Датасет,заполнение которого происходит хитрым селектом,который обрывает коннект к серваку "ORA-03113 end-of-file on communication channel". Извращались по-разному,патчи что были поставили,клиента переставили на серваках разных версий пробывали. Пошёл только на 9-ке.
Запрос,в принципе, делится на 3 части,которые можно выполнить по отдельности.2-первых находят f1_start и f1_end
SELECT * FROM tabl1 t1
WHERE t1.field1 BETWEEN :f1_start AND :f1_end

Как их запустить с наименьшей потерей быстродействия.
Проще всего запустить сразу 2 первых,затем передав параметры f1_start и f1_end в основной получить данные,но быстродействие - 3 обращ. к серверу..
Другой вариант - запускать всё в хранимой процедуре,возвращающей
PL/SQL таблицу в виде параметра.Но опять же,кажется, - не лучший вариант.


GarryFV   (2002-12-05 19:48:00) [1]

SELECT * FROM tabl1 t1
WHERE t1.field1
BETWEEN
(select f1_start from ...)
AND
(select f1_end from ...)

Тока надо быть уверенным, что подзапросы возвращают одно значение


perov   (2002-12-05 08:13:00) [2]

покажи плиз текст хитрого селекта, который обрывает коннект к серверу?


EternalWonderer   (2002-12-04 19:55:00) [3]

Текст запроса?


Наверх

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