|
Чем заменить курсор
|
|||
---|---|---|---|
#18+
Доброго времени суток! Я выполнял тестовое задание при трудоустройстве и меня не взяли. Одна из причин была повсеместное использование курсоров. Курсоры я использовал для перебора списка (списка имён сотрудников, товаров и тд) и вот сейчас у меня вопрос: чем можно заменить курсоры? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 15:51 |
|
Чем заменить курсор
|
|||
---|---|---|---|
#18+
BBS_BOSS Доброго времени суток! Я выполнял тестовое задание при трудоустройстве и меня не взяли. Одна из причин была повсеместное использование курсоров. Курсоры я использовал для перебора списка (списка имён сотрудников, товаров и тд) и вот сейчас у меня вопрос: чем можно заменить курсоры? select -ами ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 15:55 |
|
Чем заменить курсор
|
|||
---|---|---|---|
#18+
BBS_BOSS, циклом: 0) нужное кол-во записей выносите в #таблицу 1) пока есть записи выбираете одну в нужном порядке 2) обрабатываете ее 3) удаляете выбранную из #таблицы и см. п.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 16:19 |
|
Чем заменить курсор
|
|||
---|---|---|---|
#18+
komrad BBS_BOSS, циклом: 0) нужное кол-во записей выносите в #таблицу 1) пока есть записи выбираете одну в нужном порядке 2) обрабатываете ее 3) удаляете выбранную из #таблицы и см. п.1 Осподе, милосердный! Доколе изобретать самопальные курсоры? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 17:13 |
|
Чем заменить курсор
|
|||
---|---|---|---|
#18+
komrad BBS_BOSS, циклом: 0) нужное кол-во записей выносите в #таблицу 1) пока есть записи выбираете одну в нужном порядке 2) обрабатываете ее 3) удаляете выбранную из #таблицы и см. п.1 Для начала бы узнать, что именно юзер делал курсорами, может там все по-другому решается ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 17:33 |
|
Чем заменить курсор
|
|||
---|---|---|---|
#18+
Я курсором делал партионный учет. Ну или список ключей, чтобы передать его в сложную сторонюю ХП. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 18:06 |
|
Чем заменить курсор
|
|||
---|---|---|---|
#18+
BBS_BOSS повсеместное использование курсоров. и меня не взяли BBS_BOSS чем можно заменить курсоры? Если вы, например, все математические операции выполняете циклами по буквам в символьных представлениях чисел, это явно может не понравиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 19:43 |
|
Чем заменить курсор
|
|||
---|---|---|---|
#18+
BBS_BOSS Я выполнял тестовое задание при трудоустройстве и меня не взяли. Одна из причин была повсеместное использование курсоров. Думаю, основной причиной были не курсоры как таковые, а императивный подход при решении заданий. В разработке для MSSQL такое не поощряется. И вот это, кстати komrad BBS_BOSS, циклом: 0) нужное кол-во записей выносите в #таблицу 1) пока есть записи выбираете одну в нужном порядке 2) обрабатываете ее 3) удаляете выбранную из #таблицы и см. п.1 BBS_BOSS вот сейчас у меня вопрос: чем можно заменить курсоры? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2022, 06:10 |
|
Чем заменить курсор
|
|||
---|---|---|---|
#18+
BBS_BOSS Одна из причин была повсеместное использование курсоров. К стыду своему, я синтаксис курсора каждый раз гуглю. ... а так то еще 6.5 живым застал, хоть и шапочно... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2022, 08:29 |
|
Чем заменить курсор
|
|||
---|---|---|---|
#18+
Как вариант - использование CTE рассмотрите. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2022, 13:34 |
|
Чем заменить курсор
|
|||
---|---|---|---|
#18+
DaniilSeryi Как вариант - использование CTE рассмотрите. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2022, 16:00 |
|
Чем заменить курсор
|
|||
---|---|---|---|
#18+
В моей многолетней практике практически не было ни одного случая, когда нельзя было заменить курсор на select/update/insert и т.д. Имеется в виду выборка или изменение записей. SQL Server не оптимизирован на использование курсоров от слова совсем никак. На объеме, условно 100 миллионов записей, курсор подвесит Вам всё. Единственная причина, по которой есть смысл использовать курсор, это специализированная обработка записей, невозможная селектами. Например, есть список email и нужно им отправить ежемесячные отчёты по продажам. Тогда да, делаем курсор, и для каждой записи шлём письмо. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2022, 22:49 |
|
Чем заменить курсор
|
|||
---|---|---|---|
#18+
Pingvin2021 Например, есть список email и нужно им отправить ежемесячные отчёты по продажам. Тогда да, делаем курсор, и для каждой записи шлём письмо. И даже в этом случае можно обойтись без курсора, если список этих емейлов ограничивается парой-тройкой тысяч, максимум. Через динамический sql. Что-нибудь типа Код: sql 1. 2. 3. 4.
Причем в @s можно предусмотреть и обработку исключений try - catch, и транзакции, да всё, что угодно. Идиотизм, конечно... Но иногда писать курсоры - такая лень. Да и пример в мсдн нагуглить лениво, а синтаксис всё равно не вспоминается. )))) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2022, 23:19 |
|
Чем заменить курсор
|
|||
---|---|---|---|
#18+
uaggster, Да, возможно. Но из практики, в данном, конкретном случае, надо делать задержку. Секунд 10 перед каждым письмом. WAITFOR DELAY '00:00:10'; Иначе почтовый сервер раком встанет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2022, 00:18 |
|
Чем заменить курсор
|
|||
---|---|---|---|
#18+
uaggster, Да, но с динамическими запросами вляпываемся с проблемами доступа. Нужно иметь прямой доступ ко всем объектам в запросе. Но это совсем другая тема. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2022, 00:24 |
|
Чем заменить курсор
|
|||
---|---|---|---|
#18+
Pingvin2021, зависит от настроек почтового сервера или релея. У нас было настроено на пачки не более 50 писем, чтобы не спамили. И 5 секундные интервалы. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2022, 01:23 |
|
Чем заменить курсор
|
|||
---|---|---|---|
#18+
BBS_BOSS Я выполнял тестовое задание при трудоустройстве и меня не взяли. Одна из причин была повсеместное использование курсоров. Курсоры я использовал для перебора списка (списка имён сотрудников, товаров и тд) и вот сейчас у меня вопрос: чем можно заменить курсоры? наверное сами не подозревали о существовании курсоров) вот и не взяли) а как еще распечатать имена сотрудников, например? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2022, 03:10 |
|
Чем заменить курсор
|
|||
---|---|---|---|
#18+
Pingvin2021 uaggster, Да, возможно. Но из практики, в данном, конкретном случае, надо делать задержку. Секунд 10 перед каждым письмом. WAITFOR DELAY '00:00:10'; Иначе почтовый сервер раком встанет. не встанет. sendmail умный сам по-себе. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2022, 03:12 |
|
|
start [/forum/topic.php?fid=46&msg=40125732&tid=1683938]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 230ms |
total: | 378ms |
0 / 0 |