Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Курсоры...  [new]
Azvaal
Member

Откуда: Москва
Сообщений: 215
Вот такой вопрос у нас возник тут с коллегой:

Есть таблицы в рабочей базе. Создаю курсор и для него запрос. Как будет быстрее работать с-ма, если вначале создать временную таблицу, в нее загнать запрос и сней уже работать курсором или запрос оставить в курсоре?

MSSQL 2k
17 июл 09, 14:42    [7429506]     Ответить | Цитировать Сообщить модератору
 Re: Курсоры...  [new]
Azvaal
Member

Откуда: Москва
Сообщений: 215
например:

create tbl(...)

insert tbl
select ....

declare Cur cursor
for
select * from tbl

или

declare Cur cursor
for
select ......
17 июл 09, 14:45    [7429526]     Ответить | Цитировать Сообщить модератору
 Re: Курсоры...  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Система будет работать быстрее БЕЗ КУРСОРА. Зачем Вам курсор?

ЗЫ. Курсор с опцией STATIC сделает всю работу за вас, используя для хранения резалтсета tempdb.

Сообщение было отредактировано: 17 июл 09, 14:45
17 июл 09, 14:45    [7429527]     Ответить | Цитировать Сообщить модератору
 Re: Курсоры...  [new]
Azvaal
Member

Откуда: Москва
Сообщений: 215
pkarklin,

курсор нужен :)

обьясните разницу между STATIC и SCROLL

только своими словами :)
17 июл 09, 14:47    [7429548]     Ответить | Цитировать Сообщить модератору
 Re: Курсоры...  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
2Azvaal
лучше вы объясните, что вы вычитали из БОЛ, и как это поняли.

для спящего время бодрствования равносильно сну
17 июл 09, 14:52    [7429594]     Ответить | Цитировать Сообщить модератору
 Re: Курсоры...  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Azvaal
pkarklin,

курсор нужен :)

обьясните разницу между STATIC и SCROLL

только своими словами :)


Да зачем же своими... Вот первоисточник: http://msdn.microsoft.com/ru-ru/library/ms180169.aspx
17 июл 09, 14:53    [7429597]     Ответить | Цитировать Сообщить модератору
 Re: Курсоры...  [new]
Владимир СА
Member

Откуда:
Сообщений: 7825
Azvaal
например:
create tbl(...)
insert tbl
select ....

declare Cur cursor
for
select * from tbl

или

declare Cur cursor
for
select ......
Непонятна дальнейшая цель создания курсора!?
Хотелось бы отметить, что если есть возможность обойтись без создания курсора, то лучше курсором и не пользоваться. Т.е. если нужно построить сложный запрос, то его и надо строить, чем использовать курсор. Ну а если невозможно обойтись без курсора, то его надо использовать. Теперь, незачем, на мой взгляд, создавать временную таблицу из которой затем строим курсор. Лучше сразу строить курсор из SELECT ...
Другое дело, какой курсор хотим строить? На этот вопрос Вы сами и должны себе ответить. Чаще всего используют статический курсор. Вот как раз опция STATIC и говорит, что будет создаваться статический кусор. Можно еще обратить внимание на опцию INSENSITIVE (ISO Syntax). Если мы хотим просматривать курсор последовательно от первой записи к последней, то опция SCROLL не нужна. Ну, а если хотим использовать различные параметры выборки, то опция SCROLL нужна.
18 июл 09, 16:27    [7432346]     Ответить | Цитировать Сообщить модератору
 Re: Курсоры...  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 765
Azvaal


курсор нужен :)



Зачем, в цикле обрабатывать данные построчно? Лучше обрабатывать все данные, отвечающие условию, одной SQL командой. А если уж небходима построчная обработка, то table переменная и цикл while вполне подходят для использования.
18 июл 09, 19:08    [7432472]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить