Что такое курсор в sql?
В PostgreSQL предлагают читать большой результат курсором через FETCH. Это цикл по таблице или способ получать готовую выборку небольшими порциями?
Дом, ремонт, стройка
Животные и питомцы
Учёба и образование
Фотография
Психология
Пока нет лидеров с лучшими ответами.
Ваш вопрос
В PostgreSQL предлагают читать большой результат курсором через FETCH. Это цикл по таблице или способ получать готовую выборку небольшими порциями?
Курсор задает управляемый доступ к результату SQL-запроса. В PostgreSQL его можно объявить командой DECLARE, затем получать строки через FETCH и завершить использование через CLOSE. Это удобно, когда потребитель обрабатывает большой результат порциями, но не требует превращать сам запрос в ручной обход каждой записи. Обычный курсор без WITH HOLD связан с текущей транзакцией. Варианты срока жизни и прокрутки нужно выбирать явно по задаче. Курсор не гарантирует отсутствия серверной памяти или предварительной работы: стоимость зависит от плана запроса и параметров курсора. Если задачу можно выразить одной операцией над набором строк, сначала рассматривают ее, а не добавляют цикл только потому, что слово курсор встретилось в примере.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Лучший ответ
4.1 Fast
4.1 Fast
Что такое курсор в sql?
Курсор PostgreSQL позволяет получать результат запроса порциями. Учебный пример: BEGIN; DECLARE c CURSOR FOR SELECT id FROM training.people ORDER BY id; FETCH 10 FROM c; CLOSE c; COMMIT;. Обычный курсор используется внутри транзакции. Он не означает, что каждый расчет нужно переписывать в медленный построчный цикл.