Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 ms sql VS interbase  [new]
nubnub
Guest
изучаю MS SQL и встала следующая задача, для каждой строки выборки проделать некую операцию.

как я делала это в InterBase:
for select поле1, поле2 \
from таблица1
where условие
into :переменная1, :переменная2
do
begin

делаю с записью что угодно...

end

В MS SQL, мне сказали, что эту операцию я смогу проделать только используя курсор. Причем в справке и учебнике по MS SQL написано много раз: крепко подумайте прежде чем использовать курсору, ато сервер это напряжет.

Вот и возник вопрос: а реально ли так страшны курсоры???
Является ли пример из InterBase курсором (например, каким-нибудь неявным)?
18 апр 08, 21:04    [5568792]     Ответить | Цитировать Сообщить модератору
 Re: ms sql VS interbase  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54840

nubnub

Является ли пример из InterBase курсором (например, каким-нибудь неявным)?

Да, является. Но курсоры там не напрягают сервер.

Posted via ActualForum NNTP Server 1.4

18 апр 08, 22:06    [5568998]     Ответить | Цитировать Сообщить модератору
 Re: ms sql VS interbase  [new]
Andaim
Member

Откуда: то тут, то там
Сообщений: 404
nubnub

В MS SQL, мне сказали, что эту операцию я смогу проделать только используя курсор. Причем в справке и учебнике по MS SQL написано много раз: крепко подумайте прежде чем использовать курсору, ато сервер это напряжет.

в большинстве случае все можно сделать без курсоров, надо только отойти от процедурного мышления =) поэтому и пишут, мол крепко подумайте, а нужен ли здесь курсор
19 апр 08, 11:46    [5569631]     Ответить | Цитировать Сообщить модератору
 Re: ms sql VS interbase  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
Andaim
nubnub

В MS SQL, мне сказали, что эту операцию я смогу проделать только используя курсор. Причем в справке и учебнике по MS SQL написано много раз: крепко подумайте прежде чем использовать курсору, ато сервер это напряжет.

в большинстве случае все можно сделать без курсоров, надо только отойти от процедурного мышления =) поэтому и пишут, мол крепко подумайте, а нужен ли здесь курсор

+1

С данными надо работать, а не с записями
19 апр 08, 12:27    [5569664]     Ответить | Цитировать Сообщить модератору
 Re: ms sql VS interbase  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709

nubnub пишет:
> В MS SQL, мне сказали, что эту операцию я смогу проделать только
> используя курсор.

То, что вы делали на Интербейзе, тоже курсор.

> Вот и возник вопрос: а реально ли так страшны курсоры???

нет, если ими правильно пользоваться. И только когда реально нужно.
Реально это нужно редко, например, когда нужно обработать записи одну за
другой в определённом порядке.

Posted via ActualForum NNTP Server 1.4

19 апр 08, 12:31    [5569666]     Ответить | Цитировать Сообщить модератору
 Re: ms sql VS interbase  [new]
nubnub
Guest
как тогда "отойти от процедурного мышления"
пример:
нужно обработать определенную выборку, в зависимости от значения определенного поля в записи в этой выборке - совершать действия (вставка, изменение).
порядок обработки записей не важен.


что делают MS SQL-щики в этом случае?? а InterBase-щики??
19 апр 08, 14:19    [5569768]     Ответить | Цитировать Сообщить модератору
 Re: ms sql VS interbase  [new]
ScareCrow
Member

Откуда: Белый город
Сообщений: 17472

>MS SQL-щики в этом случае
CASE
>А InterBase-щики
курсор

Posted via ActualForum NNTP Server 1.4

19 апр 08, 14:23    [5569771]     Ответить | Цитировать Сообщить модератору
 Re: ms sql VS interbase  [new]
nubnub
Guest
Dimitry Sibiryakov

nubnub

Является ли пример из InterBase курсором (например, каким-нибудь неявным)?

Да, является. Но курсоры там не напрягают сервер.
Posted via ActualForum NNTP Server 1.4


с какими особенностями архитектуры это связано?? в ms sql, насколько я знаю, напряжение выходит изза выделения области памяти в системных таблицах.... (хотя всеравно непонятно почему)
19 апр 08, 14:23    [5569772]     Ответить | Цитировать Сообщить модератору
 Re: ms sql VS interbase  [new]
ScareCrow
Member

Откуда: Белый город
Сообщений: 17472

>изза выделения области памяти в системных таблицах
а можно ссылку на статью майкрософт?

Posted via ActualForum NNTP Server 1.4

19 апр 08, 14:24    [5569773]     Ответить | Цитировать Сообщить модератору
 Re: ms sql VS interbase  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54840

nubnub
с какими особенностями архитектуры это связано??

С тем, наверное, что любая выборка представляет собой курсор. Ну а если
большое количество одновременных селектов напрягают сервер, это
неправильный сервер.

Posted via ActualForum NNTP Server 1.4

19 апр 08, 14:29    [5569780]     Ответить | Цитировать Сообщить модератору
 Re: ms sql VS interbase  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
Dimitry Sibiryakov

nubnub
с какими особенностями архитектуры это связано??

С тем, наверное, что любая выборка представляет собой курсор. Ну а если
большое количество одновременных селектов напрягают сервер, это
неправильный сервер.
Posted via ActualForum NNTP Server 1.4

В MS SQL всё-таки выборка и курсор это разные вещи.

Дело не в особенностях архитектуры, а в идеологии работы с сервером. MS SQL предполагает работу с массивами данных, а позаписная обработка для него не "родная"
21 апр 08, 10:49    [5572671]     Ответить | Цитировать Сообщить модератору
 Re: ms sql VS interbase  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54840

SergSuper
В MS SQL всё-таки выборка и курсор это разные вещи.

Ну так человек-то спрашивал отнюдь не про его архитектуру. У мелкомягких
курсор это не только набор данных, но и локи. Отсюда проблематичность.

Posted via ActualForum NNTP Server 1.4

21 апр 08, 11:13    [5572841]     Ответить | Цитировать Сообщить модератору
 Re: ms sql VS interbase  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Dimitry Sibiryakov
У мелкомягких
курсор это не только набор данных, но и локи. Отсюда проблематичность.


Ой, ну не надо, пожалуйста. Локи... Проблематичность... Нет уже этой проблематичности давно!!! Да и до 2005 не всякий курсор держал локи, ибо это управляется!!!
21 апр 08, 11:16    [5572858]     Ответить | Цитировать Сообщить модератору
 Re: ms sql VS interbase  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54840

pkarklin
Ой, ну не надо, пожалуйста. Локи... Проблематичность...

Хочешь сказать, что курсоры уже подешевели и автору можно о них не
заботиться?

Posted via ActualForum NNTP Server 1.4

21 апр 08, 11:32    [5572975]     Ответить | Цитировать Сообщить модератору
 Re: ms sql VS interbase  [new]
ScareCrow
Member

Откуда: Белый город
Сообщений: 17472

>что курсоры уже подешевели
2 года как.

Posted via ActualForum NNTP Server 1.4

21 апр 08, 11:34    [5572984]     Ответить | Цитировать Сообщить модератору
 Re: ms sql VS interbase  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Dimitry Sibiryakov

Хочешь сказать, что курсоры уже подешевели и автору можно о них не
заботиться?


Хочу сказать, что сам по себе навигационный подход - так себе, но, тем не менее, есть ряд задач, которые курсорами только можно и решить, и не все таки с ними плачевно, как выше описывалось.
21 апр 08, 11:42    [5573046]     Ответить | Цитировать Сообщить модератору
 Re: ms sql VS interbase  [new]
Nariman Kurbanoff
Guest
Andaim
nubnub

В MS SQL, мне сказали, что эту операцию я смогу проделать только используя курсор. Причем в справке и учебнике по MS SQL написано много раз: крепко подумайте прежде чем использовать курсору, ато сервер это напряжет.

в большинстве случае все можно сделать без курсоров, надо только отойти от процедурного мышления =) поэтому и пишут, мол крепко подумайте, а нужен ли здесь курсор


В ПОДАВЛЯЮЩЕМ большинстве случаев

+1
19 авг 08, 09:12    [6081377]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить