Форум: "Базы";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];
ВнизВыборка N+K записей на FB Найти похожие ветки
← →
BanderLog (2006-03-10 13:23) [0]Здравствуйте! Подскжите каком образом можно организовать постепенную выборку записей из таблице.
Допустим по 100 штук. Выбрал 100 записей, обработал, закрыл запрос, выбрал другие 100 записей и т.д.
использую FB 1.5
← →
Sergey13 © (2006-03-10 13:29) [1]2BanderLog (10.03.06 13:23)
Это тупиковое направление действий.
← →
BanderLog (2006-03-10 13:32) [2]Мне необходимо перекинуть данные из одной таблицы в другую, размер таблицы в районе 3 гигов (блобы), каким образом это можно организовать наиболее эффективно?
← →
Mikhail V © (2006-03-10 13:40) [3]
> Выбрал 100 записей, обработал, закрыл запрос
Выбрал 100 записей, обработал, Commit
← →
BanderLog (2006-03-10 13:42) [4]Как выбрать сначала с 1 по 100, потом со 101 по 200 и т.д.?
← →
Sergey13 © (2006-03-10 13:43) [5]2[2] BanderLog (10.03.06 13:32)
>Мне необходимо перекинуть данные из одной таблицы в другую, размер таблицы в районе 3 гигов (блобы),
В этом случае беру свои слова назад. 8-)
>каким образом это можно организовать наиболее эффективно?
По диапазону ИД-шников например.
← →
BanderLog (2006-03-10 13:47) [6]Как вариант конечно.... :)
← →
Sergey13 © (2006-03-10 13:57) [7]2[6] BanderLog (10.03.06 13:47)
А почему не сразу все? Из-за файловых ограничений?
← →
Johnmen © (2006-03-10 13:59) [8]Не надо никаких диапазонов, никаких "по 100" и т.п.
Просто выполняется запрос на все интересующие записи. Получаем набор данных, при этом делаем его однонаправленным. Взяли из НД запись, обработали, пихнули, куда надо. Взяли следующую...
← →
Sergey13 © (2006-03-10 14:03) [9]2[8] Johnmen © (10.03.06 13:59)
Так тут НД вообще не нужен вроде. Просто insert into... select вроде достаточно.
← →
BanderLog (2006-03-10 14:03) [10]А как же выборка 3 гигов на клиента, запрос то открыт, и дойдя до последней я выберу все 3 гига, которые будут где то на винте храниться... Или не так?
← →
Sergey13 © (2006-03-10 14:08) [11]2[10] BanderLog (10.03.06 14:03)
Зачем на клиента то тащить если просто "перекинуть данные из одной таблицы в другую"?
← →
Petr V. Abramov © (2006-03-10 14:09) [12]Тогда уж лучше на API Firebirda утилитку написать. Записи все равно по одной fetch`атся, а что с выбранными делать, Вам уже рашать будет
← →
BanderLog (2006-03-10 14:09) [13]Выбрал 100 записей, обработал, закрыл запрос
← →
BanderLog (2006-03-10 14:12) [14]В общем пока наиболее простой и быстрый способ получается с ID. В виду того что удалений не так уж много, должно получитсья.
Предыдущий мой ответ был для [11] Sergey13 © (10.03.06 14:08) Обрабатывать надо данные.
← →
Johnmen © (2006-03-10 14:14) [15]
> А как же выборка 3 гигов на клиента, запрос то открыт, и
> дойдя до последней я выберу все 3 гига, которые будут где
> то на винте храниться... Или не так?
Не так. На клиенте в каждый момент времени будет не более 1 считанной записи.
← →
Sergey13 © (2006-03-10 14:14) [16]2[14] BanderLog (10.03.06 14:12)
>Обрабатывать надо данные.
В ХП не получится?
← →
PEAKTOP © (2006-03-10 14:15) [17]Создай ХП, которая будет выбирать данные из таблицы упорядоченно (например, по ID), и генерить на каждом SUSPEND поле ID_SUSPEND, увеличивая его на единицу.
А потом на клиенте
1) SELECT * FROM MY_PROC WHERE (ID_SUSPEND >0) AND(ID_SUSPEND<=100)
2) SELECT * FROM MY_PROC WHERE (ID_SUSPEND >100) AND(ID_SUSPEND<=200)
3) SELECT * FROM MY_PROC WHERE (ID_SUSPEND >200) AND(ID_SUSPEND<=300)
И т.д.
← →
BanderLog (2006-03-10 14:35) [18]2 [8] Johnmen © (10.03.06 13:59)
Объясни плиз, однонаправленный это какой?
И если в определённый момент времени на клиенте будет храниться только одна надпись, то вопрос отпадает.
2 [16]Sergey13 © (10.03.06 14:14)
Только если писать свою UDF по обработке Blob"a (документы ACad, Excel и т.д.)
← →
Johnmen © (2006-03-10 14:38) [19]
> BanderLog (10.03.06 14:35) [18]
> Объясни плиз, однонаправленный это какой?
Это unidirectional.
Если пользовать TIBSQL, то он такой по определению.
Если другой, то см. соотв. свойство.
← →
BanderLog (2006-03-10 14:40) [20]Большое спасибо, ушёл разбираться. :)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.011 c