1. Как прервать текущий запрос (select)
а) с получением уже обработанных данных
б) без получения уже обработанных данных
2. После большого select-а машина находится в состоянии "напряга" - много свопится и т.п. Как избавить?
Пока 2 вопроса общего плана
Re: Пока 2 вопроса общего плана
Пока 2 ответа не менее общего плана.
Завалить сервер целиком если это супер или этот процесс если это классика. С риском повредить базу. В буфере клиента останутся уже переданные на него записи, если таковые есть. Возможность их посмотреть зависит целиком и полностью от клиентских компонентофф.WAKE-UP писал(а):1. Как прервать текущий запрос (select)
а) с получением уже обработанных данных
б) без получения уже обработанных данных
Не писать плохие запросы и следить за тем, чтоб в базе не копился мусор тоннами.WAKE-UP писал(а): 2. После большого select-а машина находится в состоянии "напряга" - много свопится и т.п. Как избавить?
Re: Пока 2 вопроса общего плана
это как это? пока данные не обработаны целиком, серверу и выдавать нечего.WAKE-UP писал(а):1. Как прервать текущий запрос (select)
а) с получением уже обработанных данных
в момент обработки данных прервать текущий запрос могут только IB6.5 через IB API и IB 7.x через tmp$statements.
тут и прерывать нечего. просто не выбираешь данные (fetct), а закрываешь запрос.б) без получения уже обработанных данных
много свопится куда и чего?2. После большого select-а машина находится в состоянии "напряга" - много свопится и т.п. Как избавить?
Re: Пока 2 вопроса общего плана
Дим, поселекть isql без ордер бай какую-нить таблицу-миллионник (чтоб успеть процесс грохнуть до завершения) и таки грохни его. Если фетч уже пошёл, то часть передана. С какого объёма он начинает формировать сетевые пакеты и выпихивать я толком не знаю, но точно не после формирования всего курсора, если он не требует натуральной сортировки.kdv писал(а): это как это? пока данные не обработаны целиком, серверу и выдавать нечего.
А, ну да, про этих забылkdv писал(а): в момент обработки данных прервать текущий запрос могут только IB6.5 через IB API и IB 7.x через tmp$statements.

to Merlin - под выполнением запроса я имею в виду от excecute до ответа сервера, что можно делать fetch. это может быть считывание одной страницы, сортировка в памяти, на диске, буферизация и т.п. (хотя вроде больше ничего). Поэтому про "прервать запрос с получением данных" - я не понимай.
to WAKE-UP. SQLQuery.Open по-моему ничего не выбирает, ну разве что выполняет запрос и выбирает одну запись. SQLClientDataSet использовать НЕ РЕКОМЕНДУЕТСЯ. ClientDataSet при открытии открывает то, из чего он будет брать данные, и делает fetchall. Поэтому тут "прервать" нельзя.
В общем, учите матчасть.
to WAKE-UP. SQLQuery.Open по-моему ничего не выбирает, ну разве что выполняет запрос и выбирает одну запись. SQLClientDataSet использовать НЕ РЕКОМЕНДУЕТСЯ. ClientDataSet при открытии открывает то, из чего он будет брать данные, и делает fetchall. Поэтому тут "прервать" нельзя.
В общем, учите матчасть.